[Vim-cn]代码的多行折叠

40 views
Skip to first unread message

李杰辉

unread,
Nov 23, 2011, 1:55:17 AM11/23/11
to vim...@googlegroups.com
Hi all:

        Vim-cn组里各位好,我是一个只懂Vim的基本命令的新手,平时喜欢用Vim来编写一些代码。我最近使用Vim写代码的时候碰到一个小问题,想到组里请教各位,如果各位有空能给于一点帮助或提示的话先谢过各位。:-)

        我的问题很简单,描述如下:
        有以下一段C代码:
        //建立socket
        if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1){
            perror("socket");
            exit(errno);
        }else
            printf("socket create success!\n");
        
        然后我想把if语句的4行折叠起来,也就是实现以下这样的效果:
        //建立socket
       +---  4 lines: if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1){----------
            printf("socket create success!\n");
这样看代码的时候简单一些。

         在用Vim打开这段代码所在文件的时候,我的Vim配置(不是我自己亲手写的配置)已经实现将这4行自动折叠起来。但是我想知道的是:当我把这段代码展开看完后,我如何才能再把这4行代码折叠起来?

         我的问题应该已经描述清楚,希望各位赐教,谢谢~

--

李杰辉

My blog: http://l-jiehui.blogspot.com/


依云

unread,
Nov 23, 2011, 5:41:35 AM11/23/11
to vim...@googlegroups.com

:help zc

--
Best regards,
lilydjwg

Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/

夏凯

unread,
Nov 23, 2011, 6:42:30 AM11/23/11
to vim...@googlegroups.com
你可以看下vimcdoc.sf.net/doc/fold.html#:fold

2011/11/23 李杰辉 <ljieh...@gmail.com>:

> --
> 要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
> 更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛
>

--
contact me:
MSN: walk...@gmail.com
GTALK: walk...@gmail.com

李杰辉

unread,
Nov 23, 2011, 7:09:57 AM11/23/11
to vim...@googlegroups.com
2011/11/23 依云 <lily...@gmail.com>
>:help zc

2011/11/23 夏凯 <walk...@gmail.com>

谢谢依云和夏凯大哥的指点,这就是我想要的效果,这么简单一个命令就能解决问题,Vim真是挺方便的,谢谢 :-)

谢谢夏凯大哥的中文资料,看不懂英文的时候可以看看:)

依云

unread,
Nov 23, 2011, 7:18:37 AM11/23/11
to vim...@googlegroups.com
On Wed, Nov 23, 2011 at 08:09:57PM +0800, 李杰辉 wrote:
> 2011/11/23 依云 <lily...@gmail.com>
> >:help zc
>
> 2011/11/23 夏凯 <walk...@gmail.com>
> >你可以看下vimcdoc.sf.net/doc/fold.html#:fold
>
> 谢谢依云和夏凯大哥的指点,这就是我想要的效果,这么简单一个命令就能解决问题,Vim真是挺方便的,谢谢 :-)
>
> 谢谢夏凯大哥的中文资料,看不懂英文的时候可以看看:)

本地装个中文文档吧: http://vimcdoc.sourceforge.net/

李杰辉

unread,
Nov 23, 2011, 7:41:01 AM11/23/11
to vim...@googlegroups.com
2011/11/23 依云 <lily...@gmail.com>
>本地装个中文文档吧: http://vimcdoc.sourceforge.net/

谢谢依云兄:)

如果安装中文文档,输入命令:help是否就只能看到中文的帮助文档?我英语不算很好,想通过多看点英文提高英语语感,所以我希望是能看到英文的帮助文档,同时看不懂的时候有中文文档辅助理解。

依云

unread,
Nov 23, 2011, 8:38:08 AM11/23/11
to vim...@googlegroups.com
On Wed, Nov 23, 2011 at 08:41:01PM +0800, 李杰辉 wrote:
> 2011/11/23 依云 <lily...@gmail.com>
> >本地装个中文文档吧: http://vimcdoc.sourceforge.net/
>
> 谢谢依云兄:)
>
> 如果安装中文文档,输入命令:help是否就只能看到中文的帮助文档?我英语不算很好,想通过多看点英文提高英语语感,所以我希望是能看到英文的帮助文档,同时看不懂的时候有中文文档辅助理解。

:help 'helplang'

默认按这个选项找,加后缀 @cn @en @ja 等指定要的语言。另外,vimcdoc 1.8
对应 Vim 7.3.0 的文档,vim 英文文档后来有些许的修改。

李杰辉

unread,
Nov 23, 2011, 11:08:36 AM11/23/11
to vim...@googlegroups.com
2011/11/23 依云 <lily...@gmail.com>
>:help 'helplang'
>
>默认按这个选项找,加后缀 @cn @en @ja 等指定要的语言。另外,vimcdoc 1.8
>对应 Vim 7.3.0 的文档,vim 英文文档后来有些许的修改。

非常感谢依云兄帮忙解决了我的疑问,谢谢:)

leiking

unread,
Nov 25, 2011, 3:41:17 AM11/25/11
to Vim.cn
找本入门书看吧。

纸质的话《learning the vi an vim》还行,好像有中文的,我买的英文的,便宜。。。

On Nov 24, 12:08 am, 李杰辉 <ljiehui0...@gmail.com> wrote:
> 2011/11/23 依云 <lilyd...@gmail.com>

AleiPhoenix (A.K.A Areverie)

unread,
Nov 25, 2011, 5:02:30 AM11/25/11
to vim...@googlegroups.com
某感觉找书针对性比较大了,有意愿系统地学的可以找来看。

某是按照情景慢慢学来用的……最早写代码都是eclipse,慢慢发现又慢又不好用(个人看法)。后来看到网上不少人和国外的高手都用vim或者emacs。开始上youtube找高手的教学视频看。

慢慢地就这么懵懵懂懂地过来了:D (所以现在还是不习惯hjkl的键盘移动XD

2011/11/25 leiking <jinlei...@gmail.com>
--
要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛



--
The enemy is always yourself.

twitter: @areverie
wikipedia: AleiPhoenix
blog: weblog.areverie.org
wiki: wiki.areverie.org


夏凯

unread,
Nov 25, 2011, 6:33:29 AM11/25/11
to vim...@googlegroups.com
我也不习惯hjkl,所以我不是esc党。

2011/11/25 AleiPhoenix (A.K.A Areverie) <aleip...@gmail.com>:

--

李杰辉

unread,
Nov 25, 2011, 10:57:52 AM11/25/11
to vim...@googlegroups.com
2011/11/25 leiking <jinlei...@gmail.com>
>纸质的话《learning the vi an vim》还行,好像有中文的,我买的英文的,便宜。。。

谢谢leiking兄的推荐,我现在先下电子版看着,感觉挺适合入门看的,写的也很容易理解:-)

2011/11/25 AleiPhoenix (A.K.A Areverie) <aleip...@gmail.com>
>慢慢地就这么懵懵懂懂地过来了:D (所以现在还是不习惯hjkl的键盘移动XD

2011/11/25 夏凯 <walk...@gmail.com>
>我也不习惯hjkl,所以我不是esc党。

不习惯hjkl键的话用久一点就会习惯了吧:-D

要是确实不喜欢键盘的键的默认安排方式,我印象中似乎可以自己修改VIM的键的映射之类的吧?例如可以改为ikjl分别对应“上下左右”,然后h改为insert?

pixi+

unread,
Nov 25, 2011, 6:56:38 PM11/25/11
to vim...@googlegroups.com
映射当然可以 以前我也这么做
后来在命令行编辑中使用vi模式(在使用历史记录时我不想把手移到方向键)
映射的命令是写在vimrc中的 而命令行的vi模式和这个文件没什么关系 所以它的上下左右仍然是hjkl 这是出现在了不一致
我认为事情不在于繁琐 而是处理方式不一致 所以就强迫自己习惯了hjkl
供你参考

2011/11/25 李杰辉 <ljieh...@gmail.com>

夏凯

unread,
Nov 27, 2011, 9:46:41 PM11/27/11
to vim...@googlegroups.com
不是,是不喜欢用字母来操作方向,这样需要经常去按ESC。

2011/11/25 李杰辉 <ljieh...@gmail.com>:

> --
> 要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
> 更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛
>

--

依云

unread,
Nov 27, 2011, 11:28:31 PM11/27/11
to vim...@googlegroups.com
那是因为你的 Esc 键太远了吧?我把 Esc 和 Caps Lock 交换了。

--

夏凯

unread,
Nov 28, 2011, 12:41:30 AM11/28/11
to vim...@googlegroups.com
那也一样,还是要经常按capslock键。

2011/11/28 依云 <lily...@gmail.com>:

依云

unread,
Nov 28, 2011, 2:48:05 AM11/28/11
to vim...@googlegroups.com
按 Caps Lock 比找方向键快多了啊。而且,很多文本修改操作都是在普通模式下
完成的,所以总是要回到普通模式的呀。

夏凯

unread,
Nov 28, 2011, 4:36:48 AM11/28/11
to vim...@googlegroups.com
但是多行修改的时候需要按N次esc/capslock,而我经常要修改多行信息。

2011/11/28 依云 <lily...@gmail.com>:

AleiPhoenix (A.K.A Areverie)

unread,
Nov 28, 2011, 10:21:58 AM11/28/11
to vim...@googlegroups.com
嘿嘿,这也是某始终没法习惯hjkl的原因,经常需要来回移动修改。然后回到bash还是得方向键。。

2011/11/28 夏凯 <walk...@gmail.com>



--

Zind

unread,
Nov 28, 2011, 7:33:02 PM11/28/11
to vim...@googlegroups.com
2011/11/28 夏凯 <walk...@gmail.com>
但是多行修改的时候需要按N次esc/capslock,而我经常要修改多行信息。

夏凯童鞋,不用 Esc 也不用 CapsLock,那用什么?应该是用了自定义的映射吧,总不至于去用那几个方向键盘吧

Jacky Liu

unread,
Nov 28, 2011, 7:40:48 PM11/28/11
to vim...@googlegroups.com


2011/11/29 Zind <wzmi...@gmail.com>

2011/11/28 夏凯 <walk...@gmail.com>
但是多行修改的时候需要按N次esc/capslock,而我经常要修改多行信息。

夏凯童鞋,不用 Esc 也不用 CapsLock,那用什么?应该是用了自定义的映射吧,总不至于去用那几个方向键盘


我也奇怪。可能用的 Vimacs 之类的东西。


--
http://bluegene8210.is-programmer.com/

夏凯

unread,
Nov 28, 2011, 9:50:35 PM11/28/11
to vim...@googlegroups.com
为什么不能用方向键?vi又不禁用方向键。

2011/11/29 Jacky Liu <bluege...@gmail.com>:

Zind

unread,
Nov 28, 2011, 10:03:31 PM11/28/11
to vim...@googlegroups.com
当然可以用方向键了,但是会影响编辑效率呀呀……
可以映射下,会轻松很多:
inoremap    <C-a>    <Esc>^i
cnoremap    <C-a>    <Home>
noremap!    <C-e>    <End>
noremap!    <C-f>    <Right>
noremap!    <C-b>    <Left>
noremap!    <C-n>    <Down>
noremap!    <C-p>    <Up>
noremap!    <C-d>    <Del>
" noremap!    <C-x>    <Backspace>
" 在 insert mode 下,删除从光标当前位置到行末的字符
inoremap    <C-l>    <Right><Esc>c$
noremap!    <M-f>    <C-Right>
noremap!    <M-b>    <C-Left>
" 在 insert mode 下,从光标当前位置开始向后删除一个单词
inoremap    <M-d>    <Right><Esc>cw
PS,从依云那儿学的 :-)

另外,我用 Ctrl+j/k 代替了原来 Ctrl+n/p 的功能

2011/11/29 夏凯 <walk...@gmail.com>

Zind

unread,
Nov 28, 2011, 10:06:36 PM11/28/11
to vim...@googlegroups.com
还有,我也不喜欢按 Esc 或者 CapsLock 什么的,我的方法是:
" Ctrl+s 进入 normal mode
" 注意事项:不要再随便按 Ctrl+s 保存,只有当需要进入 normal mode 下再按
inoremap    <C-s>    <Esc>:update<CR>
vnoremap    <C-s>    <Esc>:update<CR>
cnoremap    <C-s>    <Esc>:update<CR>

这样,在需要进 normal mode 的时侯,同时保存。
一举两得,觉得会比较 KISS      :-)

2011/11/29 夏凯 <walk...@gmail.com>

依云

unread,
Nov 28, 2011, 10:48:43 PM11/28/11
to vim...@googlegroups.com
On Tue, Nov 29, 2011 at 11:03:31AM +0800, Zind wrote:
> 当然可以用方向键了,但是会影响编辑效率呀呀……
> 可以映射下,会轻松很多:
> inoremap <C-a> <Esc>^i
> cnoremap <C-a> <Home>
> noremap! <C-e> <End>
> noremap! <C-f> <Right>
> noremap! <C-b> <Left>
> noremap! <C-n> <Down>
> noremap! <C-p> <Up>
> noremap! <C-d> <Del>
> " noremap! <C-x> <Backspace>
> " 在 insert mode 下,删除从光标当前位置到行末的字符
> inoremap <C-l> <Right><Esc>c$
> noremap! <M-f> <C-Right>
> noremap! <M-b> <C-Left>
> " 在 insert mode 下,从光标当前位置开始向后删除一个单词
> inoremap <M-d> <Right><Esc>cw
> PS,从依云那儿学的 :-)
>
> 另外,我用 Ctrl+j/k 代替了原来 Ctrl+n/p 的功能

Ctrl-k 在输入特殊字符时很有用的呀。

> 2011/11/29 夏凯 <walk...@gmail.com>
>
> > 为什么不能用方向键?vi又不禁用方向键。

错了,vi 不能识别方向键等转义序列,vim 才可以。 ;-)

AleiPhoenix (A.K.A Areverie)

unread,
Nov 28, 2011, 11:41:44 PM11/28/11
to vim...@googlegroups.com
映射确实不错。。不过经常上服务器操作就麻烦了,还有人习惯不一样,老把.vimrc删掉。

现在前后移动习惯b和w了。hjkl靠时间慢慢熟悉。。

2011/11/29 依云 <lily...@gmail.com>
--
要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛



--

夏凯

unread,
Nov 29, 2011, 12:24:36 AM11/29/11
to vim...@googlegroups.com
2011/11/29 依云 <lily...@gmail.com>:

>> 2011/11/29 夏凯 <walk...@gmail.com>
>> > 为什么不能用方向键?vi又不禁用方向键。
好吧,我错了,你就当我说的所有vi都是vim吧,反正vi的时候我都说ex的。
2011/11/29 AleiPhoenix (A.K.A Areverie) <aleip...@gmail.com>:

> 映射确实不错。。不过经常上服务器操作就麻烦了,还有人习惯不一样,老把.vimrc删掉。
> 现在前后移动习惯b和w了。hjkl靠时间慢慢熟悉。。
是啊,我们几千服务器,配置不能随便改的。

夏凯

unread,
Nov 29, 2011, 1:36:37 AM11/29/11
to vim...@googlegroups.com
其实我现在已经很习惯hjkl和esc了,刚才邮件写完手指就下意识得去按了下esc,而且我用screen,很多时候,不知道为什么,shell里面支持方向键,但是vim里面就是不支持方向键,退出再进去就行了,有时候懒得退,或者是不能退的时候就直接用hjkl,不过我不想逼自己改变,让自己慢慢改过去最好。
2011/11/29 夏凯 <walk...@gmail.com>:

Zind

unread,
Nov 29, 2011, 3:46:02 AM11/29/11
to vim...@googlegroups.com
2011/11/29 依云 <lily...@gmail.com>
Ctrl-k 在输入特殊字符时很有用的呀。

是啊……不过,我好像从来没用过……
努力发掘这方面的需求    :-)
Reply all
Reply to author
Forward
0 new messages