vim的的代码折叠

vim也是有代码折叠功能的,以前就知道,然而毕竟用的不多,这个功能基本上很少用。随着最近和gvim的亲密接触,对代码折叠功能逐渐熟悉起来。有一次打开一段php的代码 — 比如PEAR.php,发现里面的代码自动被折叠了,将代码展开后,可以看到只要代码两边有/*{{{*/和/*}}}*/,就会被自动折叠。仔细搜索配置,其中有一句是重点:

foldmethod=marker

这样vim就会自动搜索代码,将{{{和}}}之间的内容折叠起来,而且代码结尾有一段小注释也不是无用的废料:

/* vim600: sw=4 ts=4 fdm=marker syn=php
*/

这段注释会被vim读取,并自动设置到环境变量里面。

关于代码折叠的用法,只要在vim中输入:
:help zo
就可以看到了不少相关的快捷键,需要一定的练习才可以得心应手:)

我的gvim配置内容又增加了:

colo zellner
set guifont=Courier_New:h11:cANSI nobackup tabstop=4 shiftwidth=4 foldmethod=marker
au BufRead * simalt ~x
set langmenu=zh_CN.utf-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set guifont=DejaVu\ Sans\ Mono:h12
source $VIMRUNTIME/../_vimrc
set encoding=utf-8
set fileencodings=utf-8,chinese,latin-1
if has("win32")
set fileencoding=chinese
else
set fileencoding=utf-8
endif
language messages zh_CN.utf-8
set helplang=cn
set iskeyword+=

我的.vimrc

set hlsearch ic ai wildmenu fileencodings=utf-8,gbk cindent tabstop=4 shiftwidth=4 foldmethod=marker nocompatible nopaste pastetoggle= <f11>
syn on

pastetoggle=粘贴模式切换可以避免自动缩进的带来的格式影响

    一点 vim相关小发现:

  • google reader的上一篇,下一篇快捷键分别是j,k,和vim的光标移动键一致,不知道是巧合还是有意为之,如果是后者,那么google reader的开发者想必也是vim的粉丝:)
  • 使用firefox查看网页源代码时,按一下”/”,会显示搜索框,与vim的搜索一致,估计firefox的开发者也是vim爱好者:p

5 Replies to “vim的的代码折叠”

  1. opera的Find…也是可以用/调出来,非常方便,查询网页内容或者源代码都可以。

  2. 是否有方法像notepad++那样实现对括号层次的折叠?如按ALT+4可以将第四层的折叠起来?

  3. 说的是这种吗

    phpfolding.vim - http://www.vim.org/scripts/script.php?script_id=1623

    可以自动折叠class或function

    
    < ?php 
    /** 
    * This is Foo... 
    * @author Foo 
    */ 
    class Foo { 
    +-- 11 lines: function fooFunction($bar) ** ----------------------------------------- 
    +--   8 lines: function fooFunction2($bar) ** ---------------------------------------- 
    +-- 24 lines: function fooFunction3($bar) ------------------------------------------- 
    } 
    
    +--112 lines: class Foo2 ** ------------------------------------------------------------- 
    ?>

Leave a Reply

Your email address will not be published.