集成VIM强大的代码编辑器(一)
在Linux环境下,拥有众多的代码编辑器eclipse、emacs、sublime等这些软件,其特点各有千秋,但是VIM(vi)确实绝大多数linuxer的钟爱之选。每个人的VIM的配置都不太一样,都具有个性化。打造属于一个自己的喜欢的VIM其实有时候很难,而且需要很长时间的摸索,写下这些东西也只是供参考。其实在此我要推荐一个网站,也是linuxer必须知道的一个著名的网站github网站:
在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
就会自动安装,如果你想要了解安装的过程的话,也可以通过以下命令手动安装:
- 安装vim sudo apt-get install vim
- 安装ctags:sudo apt-get install ctags
- 安装一些必备程序:sudo apt-get install xclip vim-gnome astyle python-setuptools
- python代码格式化工具:sudo easy_install -ZU autopep8
- sudo ln -s /usr/bin/ctags /usr/local/bin/ctags
- clone配置文件:cd ~/ && git clone git://github.com/ma6174/vim.git
- mv ~/vim ~/.vim
- mv ~/.vim/.vimrc ~/
- clone bundle 程序:git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
- 打开vim并执行bundle程序:BundleInstall
- 重新打开vim即可看到效果
其实用方法见网站:http://www.jb51.net/LINUXjishu/95323.html
下面来炫一下我集成的VIM编辑器:
如上图所示其基本的图形界面已经很接近eclipse了吧,它的框体包括5部分: - 源代码文件目录
- 本文件的结构(宏指令macro,函数,结构体等)
- 在代码编辑的时候,肯定会打开很多的文件
- 本文件的内容
- 命令行(可以显示查找的内容或者命令历史)
那么现在就开始一步一步的来讲解吧。
一.初识VIM
vim是vi的升级版本,其一开始的界面如下图所示:
可见这个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<CR>
imap <F5> <ESC>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> :TlistUpdate<CR>
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 ,如下图所示的内容
下面就根据我的经验来将以下ctags的用法和方便之处。ctags最重要的功能就是跳转到定义的地方,这也是最常用的地方:
Ctrl+〕 //跳转到定义的地方,可以使用命令:ta abc 来跳转
Ctrl+ o/t //跳回上一光标出
TAB //与Ctrl+ o/t正好是相反方向的,就是前进后退的使用,这样就很方便了吧.
命令:tags 就可以查看最近tag的所有跳转的过程
这三个个快捷键最常用的其他的倒不是特别常用。
四.Tlist的安装使用
上文已经介绍了Ctags的安装和使用方法,那么下面来研究以下VIM的另一个非常有用的插件Tlist。
其安装方法很简单的,
- 首先下载这个插件: http://sourceforge.net/projects/vim-taglist/files/
- 然后解压可以得到两个目录加doc(放的是帮助文件taglist.txt)和 plugin(放的是我们所用的插件taglist.vim)。
- 把taglist.txt复制到 ~/.vim/doc下和把taglist.vim复制到~/.vim/plugin下,有可能这两个目录不存在,需要自己创建
- 添加帮助文件taglist.txt,命令::help taglist.txt 就可以了
- 配置文件,在/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 <silent> <leader>tl :TlistToogle<cr> " 使用t+l键可以快捷打开和关闭Tlist
配置好后就可以使用命令:Tlist来打开列表或者直接快捷键t+l,如下图所示:
讲到这里就要讲它的使用 了,方便到你无法想象的地步,使用vim打开一个程序,然后输入命令:help taglist.txt,就会看到他的帮助文件,很多可以不用看,但是其快捷键一定要看,都是英文的,不过再次翻译了以下,这些快捷键,实在是太好用了如下:
<CR> : 代码窗口跳转到标签列表窗口中光标所在标签定义处
o : 在新建代码窗口中跳转到标签列表窗口中光标所在标签定义处
P : 跳转至上一个窗口的标签处
p : 代码窗口中内容跳转至标签定义处,光标保持在标签列表窗口中
t : 在Vim新标签窗口中跳转至标签定义处。如文件已经在Vim标签窗口中打开,则跳转至此标签窗口
Ctrl-t : 在Vim新标签窗口处跳转至标签定义处
<Space> : 显示光标当前所在标签原型。对文件标签,显示文件的全路径名,文件类型和标签数量。对标签类型(指如variable/function等类别),显示标签类型和拥有标签的数量;对函数/变量等普通标签,显示其定义的原型
u : 更新标签列表窗口中的标签信息,这个千万不要和文件编辑窗口下的u混了,文件编辑窗下的u是撤销的作用,ctrl + r取消撤销
s : 切换标签排序类型(按名称序或出现顺序)
d : 移除当前标签所在文件的所有标签
x : 扩展/收缩标签列表窗口
+ : 展开折叠节点*
- : 折叠结点*
* : 展开所有结点
= : 折叠所有节点
[[ : 跳转至上一个文件标签的头部。这个是在文件编辑窗口中使用的
<Backspace> : 跳转至上一个文件标签头部
]] : 跳转至下一个文件标签头部。这个是在文件编辑窗口中使用的
<Tab> : 跳转至下一个文件标签头部
q : 关闭标签列表窗口,这个在其他插件中也是适用的
F1 : 显示帮助**
到此就会遇到一个问题,两个窗口或多个窗口的切换:
CTRL + WW //这个是依次切换
CTRL + 方向键 //按反向切换
在第二部分会介绍其他的功能更强大的插件哦:http://blog.csdn.net/hubbybob1/article/details/48501035
更多推荐
所有评论(0)