最近以来对编辑器的选择比较纠结,最开始时使用vim,因为只要能ssh连接上就可以进行编辑;后来用source in sight,原因是其查看代码非常方便;再后来是用vs2010,原因是其对svn等工具的支持很好另外可以代码折叠,但是痛苦之处是windows下vs2012默认是gb2132编码,没找到改为utf-8的方法,在Linux系统下汉语注释什么的全为乱码。但是暗暗地想了一下,vim这么强大的工具,怎么可能不支持代码折叠和svn呢,于是决定将vim的强大功能慢慢的总结与此。
————————————————————
零、vim的强大功能主要有插件和vim的配置文件(~/.vimrc)来配置。首先在~/目录下创建.vim/doc、.vim/plugin、.vim/syntax三个目录,另外创建~/.vimrc配置文件。
一、基本设置(包括行号显示、语法高亮、tab转换为空格、代码折叠凳)
注:在配置文件中“ " ”行是注释
vimrc-----------------------------------------
" Use Vim setting, rather than Vi settings (much better!)
" This must be first, because it changes other options as a side effect.
set nocompatible
"show line numbers
set number
"syntax on
syntax on
"tab 2 space
set tabstop=4
set shiftwidth=4
vimrc-----------------------------------------
二、代码折叠
VIM代码折叠方式可以用"foldmethod"选项来设置,如: set foldmethod=indent
有6种方式来折叠代码
1. manual //手工定义折叠
2. indent //用缩进表示折叠
3. expr //用表达式来定义折叠
4. syntax //用语法高亮来定义折叠
5. diff //对没有更改的文本进行折叠
6. marker //用标志折叠
vim 配置文件分为全局配置文件和用户配置文件
1. 全局配置文件查找,在.vim 中输入:echo $VIM,一般为:/usr/share/vim/vimrc
2. 用户配置文件在用户主目录下,如:/home/abeen/.vimrc
在vimrc文件中设置折叠方式:如set foldmethod=indent
选定折叠方式后,就可以使用折叠命令进行折叠操作了.常用的折叠方式为indent和marker.
indent折叠命令
indent方式,vim会自动利用缩进进行折叠,我们可以使用现成的折叠成果.
我们可以在折叠处输入以下命令:
zc 折叠
zC 对所在范围内所有嵌套的折叠点进行折叠
zo 展开折叠
zO 对所在范围内所有嵌套的折叠点展开
[z 到当前打开的折叠的开始处。
]z 到当前打开的折叠的末尾处。
zj 向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。
zk 向上移动到前一折叠的结束处。关闭的折叠也被计入。
marker折叠命令
marker折叠方式时,我们需要用标计来标识代码的折叠,系统默认是{{{和}}}
折叠命令
zf 创建折叠,比如在marker方式下:
zf56G,创建从当前行起到56行的代码折叠;
10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。
10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。
在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。
zd 删除 (delete) 在光标下的折叠。仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
zD 循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
zE 除去 (Eliminate) 窗口里“所有”的折叠。仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。