Idle Works, Idle Thoughts

Vim学习笔记

放弃修改和重新加载文件:

:bufdo表示对Buffer中的所有文件执行后面的命令。删除buffer中的某个文件,如删除第5个文件::bd 5

撤销输入(Undo):u

撤销撤销(Redo):Ctrl+r

修改当前文件的文件名:

:saveas NEW-FILE-NAME

注意,saveas 不会删除旧文件。需要手工删除。

在最近编辑的两个文件间跳转:

Ctrl+6(Ctrl+^)

自动补全word,包括那种有连词符号的word:

:se iskeyword+=-

在Vim中查看空白字符:

:se list

每行的结尾会出现一个$,如果有\r,它会显示为^M。

消除^@字符:

:%s/<Ctrl-2>//g             (PC)
:%s/<Ctrl-Shift-2>//g       (Mac)

以上<Ctrl-2>表示你需要按住Ctrl的同时按下2,注意^@是一个字符,不是^和@的组合。

Vim标点错位:

set ambiwidth=double

自动断行:

set wrap

不破坏一个word的自动断行:

set lbr 

保存会话

如果用Vim打开了许多文件,希望在下次打开Vim时, 把这些文件自动加载到buffer,就需要保存当前的Session:

:mksession! ~/.session.vim

!表示如果Session文件存在的话就强制覆盖。

下一次启动Vim后,加载Session:

:source ~/.session.vim

也可直接打开Session启动Vim:

$ vim -S ~/.session.vim

Mac OS X终端下的 Vim

Mac OS X终端下的Vim和Linux终端下的Vim操作有些不同。

.vimrc中配置了<F2>取消高亮:

map <F2> :nohl<CR>

使用时需要用:Fn + F2

在熟练使用Vim的基础上,可以通过Vim脚本来定制Vim的行为。

VimScript脚本语言

使用VimScript脚本语言,可以扩展Vim的能力。

echo

echo 输出一个字符串:

:echo "idle works"

echom 的行为和 echo 一样,也是输出一个字符串:

:echom "idle works again"

echo和echom的区别在于,echom的输出会被保留下来,你可以通过messages命令查看所有echom的输出记录:

:messages

获取文本内容

获取光标所在处的单词:

<cword>

测试:

:echom expand("<cword>")

获取光标所在行的内容:

getline(".")

获取第N行的内容:

getline(N)