全部博文(20)
分类:
2009-12-14 19:59:04
光标停在文件名处按gf会打开此文件,这对快速跳到头文件阅读很有用
[I在path所设定的路径下的文件中查找当前光标处单词的声明;[
:%!xxd 切换到十六进制显示
:%!xxd -r 切回文本方式显示
runtime syntax/2html.vim把当前缓冲区中的内容转换成html代码
shell多行注释
windows下按
要删除注释符的话,按0返回行首,按上面方法选中行,按d即可。
补充:windows和linux下按
:bd 关闭当前缓冲区
多行缩进
进入visual mode后选中要缩进的行,按>。若取消一个缩进按<。
Vim
支持单词的自动完成。比如,你前面使用了一个很长的变量名,叫
aLongVariable,下面你在输入时,就不用完整键入了。很可能,你只需要键入“aL”,然后按下
在normal模式下光标停在某个字符上ga可以查看该字符的ascii码
#复制删除粘贴的操作:按V(shift+v),进入可视模式,jk上下选择需要的行,然后按
y 复制
d 删除
x 剪切
p 粘贴
可视模式很好用,例如想把两行的所有单词变成小写,按V然后按j或k选中这两行,按gu即可
#跳到行首按0,但实际更好用的是^, 跳到行首非空白字符
#折行前空出4字符显示折行标识
set foldcolumn=4
#折叠或展开(在折叠的那一行左右移动光标也可展开折叠)
za
#删除光标所在行所处的范围的折叠
zd
#当在:set foldmethod=marker后,折行会把{{{和}}}之间的内容折叠
#不在单词中间断行。 设置了这个选项后, 如果一行文字非常长, 无法在一行内显示完的话,
它会在单词与单词间的空白处断开, 尽量不会把一个单词分成两截放在两个不同的行里。
set lbr
#sw是shiftwidth的缩写,表缩进列数
fx把光标移动到该行的下个x字符上,这个x也可以是一个汉字,;重复fx操作。Fx把光标移动到该行的上一个x字符上。
gg光标定位到第一行开头,G定位到最后一行开头
H光标跳到当前窗口显示文本的第一行
M光标跳到当前窗口显示文本的中间一行
L光标跳到当前窗口显示文本的最后一行
g*查找包含当前单词的所有单词(*只查找与当前单词精确匹配的单词),
zz屏幕滚动使得当前行成为屏幕的中间一行
normal模式下按J删除此行末尾的换行符,从而合并两行
normal mode下gUw一个单词变大写,gUG从光标所在位置到文件尾所有单词变大写。
:e!重新读进上次保存的此文件内容
:ab myname william_djj
以后再编辑时键入myname,然后空格或回车myname串就会被william_djj代替
:r !date
在当前位置插入系统时间(linux下的date命令),同理当前位置插入某文件的内容就是
:r filename
:set ignorecase
查找时取消case sensitive
:set noignorecase
查找时case sensitive
以下命令递归当前目录下的所有文件创建tags文件,会在当前目录下创建标记文件tags
ctags -R .
vim打开当前目录下的任意一文件,命令模式下键入下面语句以指定刚才创建的tags的位置,以后就可以在不同文件间查阅函数(默认在当前位置找)
set tags=tags
#分割窗口显示当前函数的定义
#如果有多处定义,用下面命令显示列表
g]
##########################################
补充:
ctags --list-kinds列出每种语言中的符号类型
ctags --list-maps列出默认的文件后最对应哪种文件
ctags --list-languages列出支持的语言
如果插件目录下有echofunc.vim,用以下命令生成tags,以后编辑代码函数名后打“(“时有参数提示。
$ ctags -R --fields=+lS .
若加入omnicppcomplete插件,则下面生成的tags有自动补全功能(:h cppcomplete查看详细用法)。
$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
:Tlist打开左边一个taglist的窗口,显示symbols。要注意的是在windows下如果tags文件路径中有空格或中文会报找不到tags文件的错误,
#以下命令分裂出一个窗口显示定义处
ptag 函数名
#以下命令关闭刚才打开的分裂窗口
pclose
#垂直分裂窗口打开一文件
vsplit 文件名
#水平分裂窗口打开一文件
split 文件名
变量名写成\name表示匹配模式
停在某个括号上按%,跳到匹配的括号处,#if跳到匹配的#else或#endif处
set fdm=syntax折叠函数体
双击]往后逐个函数跳读,双击[往前逐个函数跳读
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
#在vim下对比两个文件,原来打开了fnpro.c,现在和fnpro.c.bak对比
#垂直分割
:vert diffsplit fnpro.c.bak
#水平分割
:diffsplit fnpro.c.bak
#跳到下一个不同之处
:]c
#跳到上一个不同之处
:[c
#展开折叠:zo
#折叠:zc
#不论何种情况下
#查看变量和函数的申明
[i
#以下为查看vim环境参数makeprg的值的例子:
:set makeprg?
#重新对文件代码进行缩进
gg=G
:help 打开帮助首页,这个首页分类非常清楚
:help cmd 查找normal mode命令,比如:help dd
:help i_cmd 查找insert mode命令,比如:help i_Ctrl-y
:help :cmd 查找command-line命令,比如:help :s
:help 'option 查找选项,比如:help 'tabstop
如果你记不清命令或者选项的全称,那么可以利用Tab或者Ctrl-d的自动补全功能。
:help options 可以找到所有的选项说明
查看某一个选项的值(实际上选项是VIM中的一种变量,类似SHELL的变量以$符号引用,
VIM的选项以&引用,另外VIM的寄存器以@引用):
:echo &tabstop
:help registers看看vim的神秘的寄存器
在 Vim 的帮助窗口中的关键字上双击鼠标或者键入“Ctrl-]”即可跳转至该关键字相关的帮助主题
宏
Normal mode下按q
操作,包括在模式间切换,最后在Normal模式下按q可以结束宏录制,用@
这个宏,命令前可以带数字前缀表示执行多少次这个宏。
:help q
书签
Normal mode下按m
者`
:help m
map
即可以在Normal mode下插入当前日期。
Vim
对make和grep有着特殊的支持。该支持主要通过访问一个特殊的快速修订窗口(quickfix window)来实现。直接在 Vim
的命令模式里输入相应的 make 或 grep 命令(如“:grep foo
*.c”)即可将命令的执行结果放入该窗口,同时根据返回的结果跳转到第一个错误(make 的情况;在使用 grep
时是匹配成功之处)。以下是常用的“快速修订”命令:
* :cn(显示下一个错误)
* :cp(显示上一个错误)
* :cl(列出所有的错误及其编号)
* :cc(跳转到指定编号的错误)
* :copen(打开快速修订窗口,在其中显示所有错误,可在错误上双击鼠标或按回车键跳转至该错误)
* :cclose(关闭快速修订窗口)
Vim
的这个特性也可以与 make 和 grep 以外的程序一起工作(事实上,在 Windows XP
上,“:grep”命令一般调起的是“findstr /n”)。具体调用那个程序由选项 makeprg(Linux 下缺省为“make”)和
grepprg(Linux 下缺省为“grep -n $* /dev/null”)控制,而如何解析返回的内容则由选项 errorformat
和 grepformat 控制。鉴于在 Unix/Linux 下一般不需更改这些选项的内容,此处不再详述。