首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

Welcome to Lin's Space !

Just enjoy yourself .

Contact me:

jerry585@gmail.com


我的分类(专题)

日志更新

最新评论

留言板

我的相册

链接

Blog信息
blog名称:Lin's Space
日志总数:20
评论数量:99
留言数量:0
访问次数:241091
建立时间:2007年5月15日




[Linux]VIM 特性集合
软件技术

Great Void 发表于 2008/10/23 0:01:40

 VIM 特性集合     首先明白四种Vim的模式(有五种,一般只用到四种)1、普通模式:就是刚打开后的那种。2、命令模式:就是在下面输入:后接命令的那种。3、插入模式:就是可以输入的模式。4、可视模式:就是按下v,V或ctrl-v后的模式,用于选中多字符、多行、块来进行操作。 一、代码折叠: 1. 折叠方式可用选项 'foldmethod' 来设定折叠方式:set fdm=*****。有 6 种方法来选定折叠:         manual          手工定义折叠         indent            更多的缩进表示更高级别的折叠         expr               用表达式来定义折叠         syntax            用语法高亮来定义折叠         diff                 对没有更改的文本进行折叠         marker           对文中的标志折叠注意,每一种折叠方式不兼容,如不能即用expr又用marker方式,我主要轮流使用indent和marker方式进行折叠。 使用时,用:set fdm=marker 命令来设置成marker折叠方式(fdm是foldmethod的缩写)。要使每次打开vim时折叠都生效,则在.vimrc文件中添加设置,如添加:set fdm=syntax,就像添加其它的初始化设置一样。 2. 折叠命令选取了折叠方式后,我们就可以对某些代码实施我们需要的折叠了,由于我使用indent和marker稍微多一些,故以它们的使用为例:如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。在可折叠处(大括号中间):zc     折叠zC    对所在范围内所有嵌套的折叠点进行折叠zo     展开折叠zO    对所在范围内所有嵌套的折叠点展开[z      到当前打开的折叠的开始处。]z      到当前打开的折叠的末尾处。zj      向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。zk     向上移动到前一折叠的结束处。关闭的折叠也被计入。zR     打开所有折叠:set foldclose=all 自动关闭折叠:set foldopen=all 自动打开折叠 当使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动之:)我们可以使用下面的命令来创建和删除折叠:zf     创建折叠,比如在marker方式下:                  zf56G,创建从当前行起到56行的代码折叠;                  10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。                  10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。zd     删除 (delete) 在光标下的折叠。仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。zD    循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。         仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。zE    除去 (Eliminate) 窗口里“所有”的折叠。         仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。   二、注释:     法1:可以用一些插件。不想用。      法2:可以使用列选择模式来选中需要编辑的例,这里是用ctrl-v来选中(用上下按键来选中所有的),然后按大I(插入),输入你想插入的,这里显然是//,然后按esc,恩,好了。     如果要取消注释,就像上面一样,只不过不是按大I(插入),而是按小d(删除)。    (附上 visual 模式说明:    可视(visual)模式,用于选定文本块;可以在正常模式下输入"v"(小写)来按字符选定,输入"V"(大写)来按行选定,或输入"Ctrl-V"来按方块选定)      法3:用 :map 做命令到快捷键的映射,这个参考如下:    vim允许覆盖自身绑定的快捷键。正常模式下的 c 和 cc 组合键,对我的用处不大,因此我使用他们完成注释和去掉注释。    注释时将可视模式下选定文本的每行开头插入"//"。意味着,要用v键从正常模式切换到可视模式选定文本后,再输入组合键。:s/^/\/\//g    去掉注释执行相反过程。:s/^\/\///g    键绑定,将以下语句添加到 ~/.vimrc。:map cc v:s/^/\/\//g:map cx v:s/^\/\///g:vmap cc :s/^/\/\//g:vmap cx :s/^\/\///g将 cc 映射到命令 v:s/^/\/\//g ,其余依此类推。其中 :vmap 约束键映射只能在可视模式下有效。更新:在“评论”中发现了更好的"正则表达式"。:map cc v:s!^!//!g:map cx v:s!^\s*//!!g v=:vmap cc :s!^!//!g:vmap cx :s!^\s*//!!g v=   三、鼠标支持:默认没有开启,可以在~/.vimrc中写入set mouse=a来开启。这样,就可以用鼠标滚动等。 四、文件选择及多tab:如果想一下子打开多个tab,输入vim -p * ,这样就打开多个tab。现在的多tab支持鼠标切换。1、输入": tabe ." 表示打开 ".",这里就会在新tab列出文件。然后用鼠标或按键选择,就可以在新的tab打开该文件。如果你用在文件名上按的是t,不是回车,则这个文件列表窗口不会关闭,会在新的tab中打开该文件。2、输入": tabe%" 则会在新的tab再次打开本文件。3、想创建新的程序文件吗: ": tabe new filename.cpp"4、切换tab: normal模式下按 0gt 表示切换到 第 0 个tab。只按 gt,则轮流切换。 使用tab比你使用终端的tab打开多个vim是大有好处的:a、使得文件间的复制和粘贴能够完成;b、.... 五、文件参照:划分窗口写程序,要比对同一文件不同部分,甚至不同文件的部分,这时,用tab就不太好,因为影响比对。这时,就要划分窗口。常用的有垂直划分: ":vsplit" (简写":vsp")水平划分: ":split" (简写":sp") 切换窗口用 Ctrl-w w 可以在打开的窗口间切换。在支持鼠标的情况下,用鼠标切换。   六、文件备份:vim支持文件备份,只要设置":set backup",如果要取消备份支持,则设置: set nobackup : set nowritebackup即可。 实际上,为了安全,还是让vim生产备份文件的好。但是为了不影响查看,最好把备份文件统一放到一个目录。可用 ": set backupdir=~/tmp/vim/ 七、滚动:Ctrl-E: 向下滚动一行 Ctrl-D: 向下滚动指定行 —— 默认是半屏幕,太多了,我用 :set scroll=10 设置为10行Ctrl-Y: 向上滚动一行Ctrl-U: 向上滚动指定行 —— 同Ctrl-D另外,支持鼠标滚动!


阅读全文(4515) | 回复(1) | 编辑 | 精华
 


回复:VIM 特性集合
软件技术

www(游客)发表评论于2010/2/10 10:06:10

感谢分享。


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144758309 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号