[分享] Vim小技巧几则

Posted by c4pr1c3 on December 26, 2009

一、中文帮助手册页

Vim7.2中文手册页下载:官方地址    我的Dropbox存档

内有详细的使用帮助和说明,默认vim会自动根据系统的当前locale选择显示语言。

如果要强制使用英文手册页,可以:set helplang=en,或切换中文手册页:set helplang=cn

二、启用拼写检查

:set spell或者:setlocal spell spelllang=en_us

它打开 ‘spell’ 选项并指定检查美国英语。

注意:Vim只检查单词的拼写,不做语法检查。

要搜索下一个拼写有问题的单词:

*]s*

]s            移动到光标之后下一个拼写有问题的单词。命令前的计数可以

用来重复。适用 ‘wrapscan’。

*[s*

[s            类似于 “]s” 但反向搜索。寻找光标之前拼写有问题的单词。

不能识别分散在两行的单词,因而可能停在不被高亮为坏词的

单词上。但不会停在行首没有大写开头的单词上。

*]S*

]S            类似于 “]s” 但只检查坏词,不检查偏僻词或其它区域的词。

*[S*

[S            类似于 “]S” 但反向搜索。

要加入词汇到自定义的单词列表:

*zg*

zg            把光标所在的单词作为一个好 (good) 词加入到 ‘spellfile’

的第一个名字对应的文件。命令前加上计数指示使用

‘spellfile’ 的第几个项目。计数 2 使用第二个项目。

可视模式下把选择的字符序列作为一个单词 (包括空白!)。

如果光标在标为坏词的文本上,使用标注的文本。

否则使用非单词字符分隔的光标所在的单词。

如果该单词在其它拼写文件里被显式标注为坏词,结果无法预

测。

详情继续:help spell,以上内容节选自vim的中文帮助手册页。

三、在vim中快速查字典(Linux only)

该功能需要使用到命令行版的stardict,请安装sdvc

ubuntu用户使用apt-get即可迅速安装sdvc

$ sudo apt-get install sdvc

至此,准备工作结束。

下面开始编辑vim的配置文件在vim中光标移动到单词上,使用shift+f可以新分割出来一个窗口显示单词的翻译。

复制粘贴以下内容到~/.vimrc

———————– 我是分割线开始,不要复制我 ———————————

” 使用F查询光标所在处的单词的中文

function!  Mydict()

let  expl=system(‘sdcv  -n  ‘  .

\   expand(“”))

windo  if

\  expand(“%”)==”diCt-tmp” 
\  q! endif

50vsp  diCt-tmp

setlocal  buftype=nofile  bufhidden=hide  noswapfile

1s/^/=expl/

1

endfunction

nmap  F  :call  Mydict()

———————– 我是分割线结束,不要复制我 ———————————

如果在gvim中使用则在~/.gvimrc中添加:

———————– 我是分割线开始,不要复制我 ———————————

function  Mybln()

let  expl=system(‘sdcv  -n  ‘  .

\  v:beval_text  .

\  ‘ fmt  -cstw  40’)

return  expl

endfunction

set  bexpr=Mybln()

set  beval

———————– 我是分割线结束,不要复制我 ———————————

四、在长行中轻松移动

编辑.vimrc,加入以下内容:

———————– 我是分割线开始,不要复制我 ———————————

” 解决超长行移动的困难

” 重新定义

:nmap gk

:imap gka

:nmap gj

:imap gja

———————– 我是分割线结束,不要复制我 ———————————

以后就可以通过键盘的上、下方向键轻松在一个超长行中移动了。

五、不要显示@@@@@

编辑.vimrc,加入以下内容:

———————– 我是分割线开始,不要复制我 ———————————

set display=lastline

———————– 我是分割线结束,不要复制我 ———————————

后记:Chrome编辑水木blog会导致文章的排版中的回车全部丢失,汗死。。。