集成VIM强大的代码编辑器(一)

在Linux环境下,拥有众多的代码编辑器eclipse、emacs、sublime等这些软件,其特点各有千秋,但是VIM(vi)确实绝大多数linuxer的钟爱之选。每个人的VIM的配置都不太一样,都具有个性化。打造属于一个自己的喜欢的VIM其实有时候很难,而且需要很长时间的摸索,写下这些东西也只是供参考。
其实在此我要推荐一个网站,也是linuxer必须知道的一个著名的网站github网站:https://github.com/
它内部包含很多开源的代码,很多库,例如bVNC、glib、gudev、udev、libusb等等,如果你敢觉配置自己的VIM ,
https://github.com/ma6174/vim
你只需要在终端输入命令:

wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x

就会自动安装,如果你想要了解安装的过程的话,也可以通过以下命令手动安装:

  1. 安装vim sudo apt-get install vim
  2. 安装ctags:sudo apt-get install ctags
  3. 安装一些必备程序:sudo apt-get install xclip vim-gnome astyle python-setuptools
  4. python代码格式化工具:sudo easy_install -ZU autopep8
  5. sudo ln -s /usr/bin/ctags /usr/local/bin/ctags
  6. clone配置文件:cd ~/ && git clone git://github.com/ma6174/vim.git
  7. mv ~/vim ~/.vim
  8. mv ~/.vim/.vimrc ~/
  9. clone bundle 程序:git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
  10. 打开vim并执行bundle程序:BundleInstall
  11. 重新打开vim即可看到效果
    其实用方法见网站:http://www.jb51.net/LINUXjishu/95323.html
    下面来炫一下我集成的VIM编辑器:
    如上图所示其基本的图形界面已经很接近eclipse了吧,它的框体包括5部分:
  12. 源代码文件目录
  13. 本文件的结构(宏指令macro,函数,结构体等)
  14. 在代码编辑的时候,肯定会打开很多的文件
  15. 本文件的内容
  16. 命令行(可以显示查找的内容或者命令历史)
    那么现在就开始一步一步的来讲解吧。
    一.初识VIM
    vim是vi的升级版本,其一开始的界面如下图所示:
    集成VIM强大的代码编辑器(一)_第1张图片
    可见这个VIM是很孤独的,它不包含其它的插件,所以看上去很单一,每次打开另一终端标签页的时候都要去切换,那么在这里不得不介绍几个快捷键了,当然你可一在“编辑”–>“键盘快捷键”内查看或者修改这些快捷键,可以在网上搜到很多vim的用法,在这里我就不多讲了::::
CTRL + ALT + T            //打开终端窗口
CTRL + SHIFT + T          //在该终端下打开新的标签页
CTRL + PageUp/PageDown    //在该终端下包含多个标签页时用来切换标签页
ALT+ 1/2/3/4....12        //切换标签页到1-12号标签
CTRL + SHIFT + C          //复制
CTRL + SHIFT + V          //粘贴(也可以合理的使用鼠标滚轮)
CTRL + r                  //当使用u来撤销编辑的时候,这个快捷键就是取消撤销命令
0和$                       //是零 跳到到行首,和跳到行末
gg 和G                     //跳到文件头和文件末 
ggVG                      //全选,然后你可以使用y和d来复制或者删除
CTRL + f/向下键           //下翻一页
CTRL + b/向下键           //上翻一页 ,你可以试一试CTRL +左右键,和u,d
命令:find / -name abc     //在根目录下搜索 abc文件   ./ 为当前目录
命令: grep 'abc' ./ -Rn //在当前目录下所有文件内容中搜索关键字 abc 
命令:script abc   //把下面终端内出现的内容存储到abc文件中,使用完后,一定要使用 exit 命令接触script 记录,不然会一直记录下去

之前没有整合VIM时就是使用这些快捷见来切换的,或者用鼠标点,这已经是很快捷的方法了,不过依然很麻烦,而且不习惯。
在此需要介绍VIM 的两个重要的配置文件,其实也可以是一个/etc/vim/vimrc 和 ~/.vimrc ,这两个有什么区别呢,其实他们可以是一个,etc/vim/vimrc,影响整个系统的Vim,而~/.vimrc,只影响本用户的Vim。/etc/vim/vimrc 我用它来设置后面所讲的ctags标签,~/.vimrc一开是是空文档,我主要用它来对VIM进行基本的设置,例如设置行号等,后没会讲到这两个文件的重要性。
二.初步配置VIM
在此就要用到上文中所提到的~/.vimrc配置文件了。 使用命令:
vim ~/.vimrc 来编辑它,打开后是个空文件,那么添加以下内容:

   set nu " 设置vim显示行号
   set ts=2
   set mousemodel=popup
   set ru " 打开状态栏标尺s
   set hls  "搜索高亮
   set ignorecase "搜索忽略大小写
   set is
   set showcmd  " 输入的命令显示出来,看的清楚些
   set autowrite " 自动保存
   set incsearch"设置增量搜索模式,在搜索时,输入的词句的逐字符高亮
   set gdefault
   set syntax=on " 语法高亮
   set cursorline " 行高亮
   set cursorcolumn "列高亮
   set showmatch  "在输入括号时光标会短暂地跳到与之相匹配的括号处,不影响输入 
   set foldenable      " 允许折叠 
   set foldmethod=manual  " 手动折叠 
   set laststatus=1    " 启动显示状态行(1),总是显示状态行(2) 

到此位置基本的vim配置就算可以看了,当然你也可以根据自己的喜好来配置这些东西,包括配色的方案都可以的。
三.Ctags的安装使用
不管是使用Sublime还是vim都需要是需要使用一个插件,那就是Ctags,这个插件的作用就是建立文件之间的联系,就像sourceInsight一样在使用是首先需要建立文件之间的联系。
安装ctags很简单:在安装之前在终端下可以使用ctags命令,来验证是否安装了,或者使用rpm -qa | grep ctags 来查询按准个情况,如果没有安装,那么如下:
sudo apt-get install ctags
就可以了,这样做是最简单的,有时候有的人喜欢编译安装的方法:如下:
1. 下载ctags源码:http://ctags.sourceforge.net/
2. 解压源码:tar zxvf ctags-5.8.tar.gz
3. 配置源码:cd ctags-5.8 ,然后 ./configure,也可以./configure –prefix=/usr/local/ctags
安装在/usr/local/ctags,或者目录自定,
只要最后添加环境变量就可以了:vim /etc/bash.bashrc export PATH=/usr/local/ctags/bin:$PATH
4. 编译加载:make && make install
在此,ctags的安装就完毕了,下来来研究以下如何使用:
在你的需要编辑的源码中(例如linux源码),进入源码根目录下输入命令:

ctags -R(这是最简单的方法) 
ctags -R --fields=+iaS --extra=+q (包含对象的成员变量) 
ctags --fields=+iaS --extra=+q -R -f ~/.vim/systags /usr/include /usr/local/include 
http://blog.chinaunix.net/uid-20874550-id-2412585.html这里有一些介绍,可以看一下 

就会看到在此目录下会多出一个tags文件,这就是联系文件,有的人会在 /etc/vim/vimrc 内设置快捷键 F5或者其他的快捷键,但是本人建议不需要使用,因为快捷键使其起来可能会有冲突(可能性比较小),因此也没有设置,如果感兴趣的话可以自己设置一下:
” 按下F5重新生成tag文件,并更新taglist

map <F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> :TlistUpdate
imap <F5> <ESC>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> :TlistUpdate
set tags=tags
set tags+=./tags "add current directory's generated tags file
set tags+=~/arm/linux-2.6.24.7/tags "add new tags file(刚刚生成tags的路径,在ctags -R 生成tags文件后,不要将tags移动到别的目录,否则ctrl+〕时,会提示找不到源码文件)

set tags+=./tags表示在当前工作目录下搜索tags文件
set tags+=~/arm/linux-2.6.24.7/tags表示在搜寻tags文件的时候,也要搜寻~/arm/linux-2.6.24.7/文件夹下的tags文件。

但是我觉得没有必要这样做,因为安装好ctags后,就可以使用一次上面的命令就可以了。编辑完之后你需要添加你的tags地址在 /etc/vim/vimrc内添加:

vim /etc/vim/vimrc //打开这个文件,然后在其末尾添加行:
set tags=/你的路径/tags ,如下图所示的内容

集成VIM强大的代码编辑器(一)_第2张图片
下面就根据我的经验来将以下ctags的用法和方便之处。ctags最重要的功能就是跳转到定义的地方,这也是最常用的地方:

Ctrl+〕         //跳转到定义的地方,可以使用命令:ta abc 来跳转
Ctrl+ o/t       //跳回上一光标出
TAB             //与Ctrl+ o/t正好是相反方向的,就是前进后退的使用,这样就很方便了吧.
命令:tags 就可以查看最近tag的所有跳转的过程

这三个个快捷键最常用的其他的倒不是特别常用。
四.Tlist的安装使用
上文已经介绍了Ctags的安装和使用方法,那么下面来研究以下VIM的另一个非常有用的插件Tlist。
其安装方法很简单的,

  1. 首先下载这个插件: http://sourceforge.net/projects/vim-taglist/files/
  2. 然后解压可以得到两个目录加doc(放的是帮助文件taglist.txt)和 plugin(放的是我们所用的插件taglist.vim)。
  3. 把taglist.txt复制到 ~/.vim/doc下和把taglist.vim复制到~/.vim/plugin下,有可能这两个目录不存在,需要自己创建
  4. 添加帮助文件taglist.txt,命令::help taglist.txt 就可以了
  5. 配置文件,在/etc/vim/vimrc内添加以下内容
    let Tlist_Use_Right_Window=1 "让窗口显示在右边,0的话就是显示在左边 
    let Tlist_Show_One_File=1 "0让taglist可以同时展示多个文件的函数列表,1只显示当前的文件列表 
    let Tlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏 
    let Tlist_Exit_OnlyWindow=1 "当taglist是最后一个分割窗口时,自动推出vim 
    map  tl :TlistToogle " 使用t+l键可以快捷打开和关闭Tlist

配置好后就可以使用命令:Tlist来打开列表或者直接快捷键t+l,如下图所示:

讲到这里就要讲它的使用 了,方便到你无法想象的地步,使用vim打开一个程序,然后输入命令:help taglist.txt,就会看到他的帮助文件,很多可以不用看,但是其快捷键一定要看,都是英文的,不过再次翻译了以下,这些快捷键,实在是太好用了如下:

 : 代码窗口跳转到标签列表窗口中光标所在标签定义处
o : 在新建代码窗口中跳转到标签列表窗口中光标所在标签定义处
P : 跳转至上一个窗口的标签处
p : 代码窗口中内容跳转至标签定义处,光标保持在标签列表窗口中
t : 在Vim新标签窗口中跳转至标签定义处。如文件已经在Vim标签窗口中打开,则跳转至此标签窗口
Ctrl-t : 在Vim新标签窗口处跳转至标签定义处
 : 显示光标当前所在标签原型。对文件标签,显示文件的全路径名,文件类型和标签数量。对标签类型(指如variable/function等类别),显示标签类型和拥有标签的数量;对函数/变量等普通标签,显示其定义的原型
u : 更新标签列表窗口中的标签信息,这个千万不要和文件编辑窗口下的u混了,文件编辑窗下的u是撤销的作用,ctrl + r取消撤销
s : 切换标签排序类型(按名称序或出现顺序)
d : 移除当前标签所在文件的所有标签
x : 扩展/收缩标签列表窗口
+ : 展开折叠节点*
- : 折叠结点*
* : 展开所有结点
= : 折叠所有节点
[[ : 跳转至上一个文件标签的头部。这个是在文件编辑窗口中使用的
 : 跳转至上一个文件标签头部
]] : 跳转至下一个文件标签头部。这个是在文件编辑窗口中使用的
 : 跳转至下一个文件标签头部
q : 关闭标签列表窗口,这个在其他插件中也是适用的
F1 : 显示帮助**

到此就会遇到一个问题,两个窗口或多个窗口的切换:

CTRL + WW        //这个是依次切换
CTRL + 方向键     //按反向切换

在第二部分会介绍其他的功能更强大的插件哦:http://blog.csdn.net/hubbybob1/article/details/48501035

你可能感兴趣的:(spice)