VIM 技巧:编程相关

fold

有待扩充

diff

有待扩充

gvim -d file1 file2 # vimdiff (比较不同)

:diffthis

:windo diffthis可以diff一个tab中的多个buffer

:diffsplit <file2>

split一个窗口并打开file2, 与原窗口文件对比

quickfix

copen [height] 打开错误列表
cw[indow] [height] 有列表才打开, 已经打开但无列表时自动关闭

很多命令都可以通过在前面加l来使用位置列表(而非错误列表), 如
lopen [height]
lw[indow] [height]

grep

[Unix 小常识]
Unix 上 "grep" 命令的名字来源于 ":g/re/p",
其中 "re" 是正则表达式 (Regular Expression) 的意思

Vim 有两种寻找模式匹配的方式: 内部方式(vimgrep) 和外部方式(grep)
搜索到的匹配结果会加入错误列表或者位置列表.

内部grep (:vimgrep)

内部 grep 的优点是能适用于所有系统并且使用强大的 Vim 搜索模式。
内部方法会慢一些,因为文件要先读入内存。优点是:

  • 就像编辑文件一样,自动识别换行符和编码。
  • 使用 Vim 搜索模式。可以使用多行模式。
  • 如果打开了插件, 可以搜索压缩和远程文件。

:vim[grep][!] /{pattern}/[g][j] {file} …
在文件 {file} … 里搜索模式 {pattern},并用匹配结果设置错误列表。

外部grep (:grep)

外部 grep 程序可用于 vimgrep 实现不了你需要的功能的场合.

外部grep方式调用外部grep程序(可以通过'grepprg'设置)

派生形式

1. [add] 形式不建立新的错误列表,而是附加到现有的列表之后
[vim]grep
[vim]grepa[dd]
2. l 代表使用位置列表(默认使用错误列表)
[vim]grep
[vim]lgrep

make

:make 和 :grep 的实现方式类似, 不同的是grep 使用 grepprg, 而make 使用 makeprg

:make 调用'makeprg'程序并对输出结果用'errorformat'匹配, 匹配结果置入错误列表(:lmake使用位置列表).

compiler

针对每一种编译器, 都有一套对应的'makeprg'和'errorformat',
一般在单独的compiler文件中通过:setlocal命令进行设置, 见$VIM/compiler/*.vim
然后使用:compiler <compiler>

autocomplete

<C-p/n>
keep pressing CTRL-X CTRL-P to complete all the words
<C-x><C-p/n>.
File completion: <C-X><C-F>
Line completion: <C-X><C-L>
Omni completion: <C-X><C-O>

tags

快捷键

<C-MouseLeft> == <C-]>
<C-MouseRight>== <C-t>

命令

:tag
:ptag preview窗口中打开tag

tags选项中"搜索tag"的特殊语法

set tags=tags;/

Vim will search for the file named 'tags', starting with the
current directory and then going to the parent directory and then
recursively to the directory one level above, till it either
locates the 'tags' file or reaches the root '/' directory.

ctags 程序的用法

参考ctags的介绍

插件(mytags.vim)

/vim:scripts/mytags.vim

评论

Add a New Comment
or Sign in as Wikidot user
(will not be published)
- +

相关话题

vim
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.