系列4主要为大家介绍使用Vim实现代码浏览、索引、标签、标记、检索等功能,主要包括ctags、taglist和visualmark,尤其是ctags,是后续各种插件的基础,能够熟练的掌握和理解为佳。下面进入正文:

ctags

1、下载地址

http://ctags.sourceforge.net

2、功能说明

严格意义上来说,ctags并不是Vim的插件,而是Linux/Unix下的标签命令。通过ctags -R命令可以对当前目录下源代码中的类、函数、方法、变量、宏等元素进行索引处理,并生成索引文件。Vim使用ctags生成的tag文件,即可实现IDE中常用的代码跳转功能,实乃居家旅行代码索引的常备利器。ctags不仅支持c/c++/java等静态语言,还支持python/perl/php/jsp等动态脚本语言,就目前我的使用情况,ctags基本不支持Objective-C,对Ruby支持的也很糟糕,随着这些语言的普及和发展,希望后续版本的ctags会对更多的编程语言有更好的支持。

3、安装

对于Ubuntu,可以使用如下命令安装:sudo apt-get install ctags,安装完成后在终端键入ctags --help,看到正常的帮助信息就说明安装成功了。

对于Mac用户来说,OS X自带了ctags命令,但这并不是vim所需要的ctags,要重新安装:sudo port install ctags。由于OS X自带的ctags位于/usr/bin目录下,一般在PATH中是优先加载的,所以安装完成后,还需要设置一下环境变量,确保你在命令行使用的是新安装的ctags。如果没做特殊设置,安装的ctags一般在/opt/local/bin下,在当前用户的.profile中增加如下代码:export PATH=/opt/local/bin/:$PATH,在终端执行source .profile可立即生效。

4、使用说明

  • 创建标签索引
    前面我们提到过,ctags主要是用来创建Vim可以使用的tag索引文件,使用ctags -R即可对当前目录下的代码递归建立索引文件,文件保存在当前目录下,默认文件名为tags,文件大小和你要索引的代码量有关。
    如果想自己指定tag文件的位置和索引代码的位置,可以使用如下命令实现:
    ctags -R -o ~/.vim/ctags/pythontags /somepythondir/

  • 设置索引文件的位置
    Vim在运行过程中需要知道tag的索引文件位置,如果不指定的话,Vim会在当前目录下寻找名为tags的文件作为tag索引文件。
    如果想使用某个目录下的索引文件,在该目录下启动Vim即可。也可以在启动后通过如下命令设置或改变索引文件的位置:
    set tags=/home/xxx/xx/tags, xxxx/tags,......

当然,你也可以把这条命令写到.vimrc中。

  • 在Vim中使用tag
    tag的索引文件和位置都设置好之后,万事俱备,现在我们就可以在Vim中使用tag进行代码跳转和跟踪。
    ctags主要对源代码中的类、方法、变量等元素进行了索引,所以,如果我们记得某个类名、方法名或变量名,想在命令行下直接打开隐藏在重重叠叠的目录深处的某个文件时,以下命令可以帮助我们实现这个功能:
    vim -t class | method | variable
    例如,你想打开包含了loadCache方法的文件,可以用如下命令:
    vim -t loadCache
    如果多个文件中包含loadCache方法,vim会按照字母顺利打开第一个文件。想查看其他文件,可以使用ts命令, :ts会列出所有包含loadCache标签的文件,输入文件序号可以打开文件并定位到loadCache标签,通过j和k可以上下滚屏。

如果只是通过vim命令打开文件,那么可以使用如下命令进行文件检索和浏览:

:ta tagname 跳转到标签tagname定义的地方
:stag tagname 在分割窗口中查看包含tagname的文件
:tags 查看到达当前位置所经过的标签路径
:ts tagname 列出匹配tagname的标签,如为空,则使用标签栈中最后的标签
:tf 跳转至第一个匹配的标签
:tl 跳转至最后一个匹配的标签

跳转快捷键:

ctrl-] :跳转至光标所在对象定义之处
ctrl-t :返回跳转前位置
[n]ctrl-t :[n]为数字,向回跳转n次;等价于重复n次ctrl-t操作

5、注意事项

确认vim在打开文件时能够找到相关的标签文件tags。

taglist

1、下载地址

https://github.com/vim-scripts/taglist.vim

2、功能说明

taglist是Vim的一个代码浏览的插件,类似IDE中的Outline视图,可以根据不同语言的代码显示代码中的包、类、接口、方法、函数、变量、属性等内容,是Vim浏览代码的一个必备工具。

如图:

taglist同样需要依赖ctags命令生成tag。

3、安装

  • 进入~/.vim/bundle目录
  • 执行: git clone git://github.com/vim-scripts/taglist.vim.git

  • .vimrc文件设置taglist的配置信息,以下是我的偏好设置

      "taglist{let Tlist_Show_One_File = 1            "只显示当前文件的taglist,默认是显示多个let Tlist_Exit_OnlyWindow = 1          "如果taglist是最后一个窗口,则退出vimlet Tlist_Use_Right_Window = 1         "在右侧窗口中显示taglistlet Tlist_GainFocus_On_ToggleOpen = 1  "打开taglist时,光标保留在taglist窗口let Tlist_Ctags_Cmd='/opt/local/bin/ctags'  "设置ctags命令的位置nnoremap <leader>tl : Tlist<CR>        "设置关闭和打开taglist窗口的快捷键"}

4、使用说明

taglist参数介绍,大家可以根据自己的偏好在.vimrc中设置:

  • Tlist_Ctags_Cmd:设置ctags命令的位置
  • Tlist_Use_Horiz_Window:设置为1时,taglist窗口横向显示。默认纵向显示
  • Tlist_WinHeight:设置taglist窗口的宽度
  • Tlist_WinWidth:设置taglist窗口的高度
  • Tlist_Show_One_File:设置Tlist_Show_One_File为1则只显示当前文件的taglist,缺省显示多个文件中的tag
  • Tlist_Sort_Type:taglish默认按tag在文件中出现的顺序进行排序,设置为"name",taglist将以tag名字进行排序
  • Tlist_Exit_OnlyWindow:设置为1时,如果taglist是最后一个窗口,则退出vim
  • Tlist_Use_Right_Window:设置为1时,taglist窗口出现在右侧,缺省显示在左侧
  • Tlist_Auto_Open:如果想在启动VIM后自动打开taglist窗口,该参数设置为1
  • Tlist_Close_On_Select:如果想在选择了tag后自动关闭taglist窗口,该参数设置为1
  • Tlist_GainFocus_On_ToggleOpen:设置为1时,打开taglist光标保留在taglist窗口

当使用vim打开某个程序文件时,我们可以用:Tlist打开taglist窗口,如果该程序具备类、接口、属性等元素,就会在taglist窗口显示出来。我们可以通过以下这些常用快捷键来操作taglist:

  • 通过光标选择tag,回车可以跳到定义该tag的程序位置
  • 选中tag时按空格键,会在状态栏下方显示该tag的完整定义
  • x,横向放大或缩小taglist窗口
  • =,折叠所有的tag
  • +,打开所有的tag

5、注意事项

确认在.vimrc中使用Tlist_Ctags_Cmd定义了正确的ctags命令的位置,否则会出现找不到tag的错误信息。

visualmark

1、下载地址

http://www.vim.org/scripts/download_script.php?src_id=4700

2、功能说明

visualmark,顾名思义,就是在你阅读代码或编写代码的时候随时快速打标签,并通过快捷键来回切换浏览。如图:

3、安装

.vim/bundle下建立文件夹visualmark/plugin,把下载的文件visualmark.vim复制到该文件夹下。

4、使用说明

使用vim打开一个文件,使用快捷键mm设置标签,通过F2和shift+F2可以上下切换浏览。
我们还可以对标签的样式进行定制:
打开visualmark.vim,找到如下代码修改:

//根据背景色设置标签颜色,cterm表示为原生vim设置样式
if &bg == "dark"
highlight SignColor ctermfg=white ctermbg=blue guifg=white guibg=peru
else
highlight SignColor ctermbg=white ctermfg=red guibg=grey guifg=RoyalBlue3
endif

5、注意事项

祝大家开心每一天()

转载于:https://www.cnblogs.com/chijianqiang/archive/2012/12/17/vim-4.html

谁说Vim不是IDE?(四)相关推荐

  1. VIM 打造 Java IDE 1

    说到 VIM,网路上的教程真的是多如牛毛,大部分的教程作者都狂热的 VIM 爱好者,在他们眼里 VIM 是一切,他们用 VIM 上网,收发邮件,听音乐,发博客,刷微博-- 但对于新手来说,这些教程非但 ...

  2. 谁说Vim不是IDE?

    话说操作系统.编程语言和编辑器似乎是程序员永恒的吐槽话题,技术发展了几十年,大家讨论起这几个"之争"还是充满愤怒.津津乐道.有人描述过Emacs和VI程序员,大家沿着不同的道路和目 ...

  3. Vim as Python IDE on windows(转)

    转转地址:http://www.cnblogs.com/xd502djj/archive/2010/09/16/1827683.html 下载安装Python. 从Vim的网站下载vim,建议下Sel ...

  4. 图灵社区 : 阅读 : 谁说Vim不是IDE?(三)

    图灵社区 : 阅读 : 谁说Vim不是IDE?(三) Powerline 1.下载地址 https://github.com/Lokaltog/vim-powerline 2.功能说明 Powerli ...

  5. java vim ide_把VIM配置成IDE开发环境 | 学步园

    VIM常用命令 VIM命令图 VIM键盘布局图 VIM键盘布局英文 VIM键盘布局中文 将VIM配置成IDE(通过 VIM基本插件 和VIM配置文件) Ubuntu14下我的VIM IDE配置的效果图 ...

  6. linux虚拟环境tmux,关于在Linux系统中如何把tmux和vim打造成IDE的讲解

    不经意间我们又来到了Linux系统文章的学习,在众多学习中,我们的文章也许不起眼,但是想必大家都有很多问题吧,所以重要的下面我们就来讲解一下,大家一定要认真看奥!! 在Linux系统中tmux 和 v ...

  7. vim ide_将Vim变成R IDE

    vim ide by Kade Killary 由Kade Killary 如何将Vim转换为R的IDE (How to Turn Vim Into an IDE for R) Warning: No ...

  8. 保姆级教程!将 Vim 打造一个 IDE (Python 篇)

    从上周开始我就开始折腾 ,搞了一下 Vim IDE for Python & Go,我将整个搭建的过程整理成本篇文章分享出来,本篇是 Python 版本的保姆级教程,实际上我还写了 Go 版本 ...

  9. 将vim打造成IDE编程环境

    昨天晚上,看了吴垠的这篇文章--手把手教你把Vim改装成一个IDE编程环境(图文),看的时候,各种激动啊!!! 以前听过有牛人将vim打造成了IDE环境,总算是找到了具体的实现步骤----想大牛吴垠致 ...

最新文章

  1. 左操作数必须为左值_进入“左转弯待转区”被罚怎么回事?
  2. Pattern Discovery and Anomaly Detection via Knowledge Graph-学习笔记
  3. linux桌面环境丢失,一个pycharm引起ubuntu桌面丢失的惨案
  4. python日期格式转换_python中有关时间日期格式转换问题
  5. 语音编码 c语言,语音编解码算法G.723.1在DSP - 嵌入式新闻 - 电子发烧友网
  6. 线性回归(五)---弹性网络回归
  7. 作为技术人为什么想创业
  8. storm的优化以及雪崩问题
  9. 轻松两步实现了接口限流
  10. 互联网发展的三个阶段
  11. Python登录豆瓣并爬取影评
  12. 科学家首次3D生物打印出血管化肿瘤,并成功使用免疫疗法治疗
  13. iPhoneX适配方案
  14. Apache apollo 配置说明及用户名和密码管理
  15. 18.移动点餐端搭建----点餐系统移动端
  16. 618将至,各产品营销活动通用文案合集分享,有需要的进
  17. 《心经》:渡人,渡己,渡心
  18. 【Dart 教程系列第 19 篇】Dart 之 indexWhere、lastIndexWhere 返回数组中第一个满足条件的元素的索引
  19. centos安装mysql以及mysql-devel
  20. 用Google搜索本地硬盘

热门文章

  1. shell脚本中echo显示内容带颜色
  2. Hudson升级异常及解决办法
  3. shopex PHP Notice,ShopEx PHP远程包含漏洞
  4. OpenvSwitch — 操作实践
  5. 我非要捅穿这 Neutron(三)架构分析与代码实现篇(基于 OpenStack Rocky)
  6. Microsoft Azure_Fabric
  7. stm32的时钟系统
  8. 收藏:《Exchange 2013 OWA/ECP 登陆后白屏》
  9. k8s v1.9.6 超详细搭建步骤
  10. Java删除文件及其子文件、文件夹