加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

手把手教你把Vim改装成一个IDE编程环境(图文) -- 续1

发布时间:2020-12-15 16:30:55 所属栏目:安全 来源:网络整理
导读:16 代码折叠(fold) 代码折叠功能是现在流行的IDE中都具备具备的最基础的一项功能,甚至一些编辑器也有代码折叠的功能了,比如UltraEdit,Kate....等等,vim当然在这方面也不会落后与人,关于代码折叠的介绍大家可以看看帮助手册中的这些章节,反正都是中文,不会让

16

代码折叠(fold)

代码折叠功能是现在流行的IDE中都具备具备的最基础的一项功能,甚至一些编辑器也有代码折叠的功能了,比如UltraEdit,Kate....等等,vim当然在这方面也不会落后与人,关于代码折叠的介绍大家可以看看帮助手册中的这些章节,反正都是中文,不会让我再翻译成汉语拼音给你看吧^_^

:help usr_28.txt
:help fold.txt

我简单摘抄一点,省得我自己还要打字....
*28.1*什么是折叠?
折叠用于把缓冲区内某一范围内的文本行显示为屏幕上的一行。就像一张纸,要它缩短
些,可以把它折叠起来:
+------------------------------------+
|行1 |
|行2 |
|行3 |
|________________________|
/ /
/________________________/
/被折叠的行 /
/________________________/
|行12 |
|行13 |
|行14 |
+-----------------------------------+

那些文本仍然在缓冲区内而没有改变。受到折叠影响的只是文本行显示的方式。
折叠的好处是,通过把多行的一节折叠成带有折叠提示的一行,会使你更好地了解对文本
的宏观结构。
真实的情景见下图(图19):


(---图19 ---)
vim提供以下6种方法来选定折叠方式:

manual

手工定义折叠

indent

更多的缩进表示更高级别的折叠

expr

用表达式来定义折叠

syntax

用语法高亮来定义折叠

diff

对没有更改的文本进行折叠

marker

对文中的标志折叠

可用选项'foldmethod'来设定折叠方法。比如,如果想按照语法高亮来定义折叠,则在
~/.vimrc中增加下面这行:

set foldmethod=syntax
set foldlevel=100"启动vim时不要自动折叠代码

这里主要是讲编程的,所以我就只介绍按照语法高亮来折叠代码,其他的折叠方法如果大家想用的话可以自己看看帮助手册,大同小异的.

按照语法高亮来折叠代码,其实就是按照代码中的一些括号来定义折叠位置,比如: "{ }","/* */".现在练习一下,就在nomal模式下输入命令"za",你会发现当前光标所在的最近的一层括号被折叠起来了,再输入一遍"za"命令,这个折叠又打开了,"za"命令就是打开/关闭当前折叠用的,下面是常用的一些命令:

za

打开/关闭当前折叠

zA

循环地打开/关闭当前折叠

zo

打开当前折叠

zc

关闭当前折叠

zM

关闭所有折叠

zR

打开所有折叠

其他还有一些我不常用的设置和命令大家可以自己看看帮助手册吧,我就不罗嗦了.

17

提示函数原形--插件: echofunc

下载地址

http://www.vim.org/scripts/script.PHP?script_id=1735

版本

1.18

安装

把echofunc.vim文件丢到~/.vim/plugin文件夹就好了

手册

当编程调用一个函数时,最可恶的是忘了这个函数参数列表的详细定义了,然后要跳转到定义处看看,再跳转回来继续写,如果参数列表太长了,还要来回跳转多次,对我等记性不好的人来说简直是折磨,还好有贴心的人写了这个插件,让我可以把精力放在Coding上,真是伟大呀,作者的名字叫:
Ming Bai <mbbill AT gmail DOT com>
Wu Yongwei <wuyongwei AT gmail DOT com>
看样子是汉人,而且还有一个是我本家,这个猜测令我兴奋不已呀...

言归正传,该插件的作用是当你在vim插入(insert)模式下紧接着函数名后输入一个"("的时候,这个函数的声明就会自动显示在命令行中.如果这个函数有多个声明,则可以通过按键"Alt+-"和"Alt+="向前和向后翻页,这个两个键可以通过设置EchoFuncKeyPrev和EchoFuncKeyNext参数来修改.见下图(图20)就是这种应用,你先不要急着试,先看完我下面的介绍


(---图20 ---)
如果想看到上图的效果,还有一个要注意的地方,这个插件的功能需要tags文件的支持,并且在创建tags文件的时候要加选项"--fields=+lS",整个创建tags文件的命令如下:

$ ctags -R --fields=+lS

如果你还不会用tags文件,先看看前面的章节<在程序中跳来跳去: Ctags的使用>吧.当tags文件都弄好了后,就可以试试效果了,是不是跟我上图一样呀^_^ 还有一个小技巧告诉你,当你把鼠标放在函数名上的时候会有一个tip窗口弹出,该窗口中也会有函数的声明,这个功能需要你在编译vim时编译"+balloon_eval"特性了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读