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 向上移动到前一折叠的结束处。关闭的折叠也被计入。
当使用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" 时有效。
Example:
[user@localhost] cd ~
[user@localhost] vim .vimrc
#vim里面打开文件注释代码用的紫色,修改数字表示其他color
hi Comment ctermfg=5;
#vim的代码折叠用marker方式set foldmethod=marker
#折叠的代码为白底黑字:highlight Folded ctermfg=0 ctermbg=7
写一个function时
public function test() {/*{{{*/ .... .....}/*}}}*/
在function大括号中间的任何区域,用zc/zo 可以实现折叠和展开。
+-- 4 lines: public function test() {----------------------
在linux端用vim编程时,结合screen是最好的方式,安装一个screen后,可以实现多页面,就不用在多个窗口中切来切去。
一般用: yum install screen 都可以安装
安装成功后,可以修改~/.screenrc 配置个人的喜好。
我的配置如下:
termcapinfo xterm|xterms|xs|rxvt ti@:te@term xtermdefutf8 ondefflow offvbell off
startup_message offdefscrollback 2048
hardstatus onhardstatus alwayslastline "%{= wk} %{by} %H %{wk} | %-Lw%{kw} %{= g}%n%f* %t%{wk} %{wk}%+Lw%< %= %{kw} %{= R} [%m/%d %c] %{-}"
新闻热点
疑难解答