linux vi编辑器使用方法_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3284 | 回复: 0   主题: linux vi编辑器使用方法        下一篇 
鲲鹏展翅
注册用户
等级:少校
经验:1148
发帖:79
精华:9
注册:2012-11-19
状态:离线
发送短消息息给鲲鹏展翅 加好友    发送短消息息给鲲鹏展翅 发消息
发表于: IP:您无权察看 2012-11-19 13:12:12 | [全部帖] [楼主帖] 楼主

所谓“工欲善其事,必先利其器”,所谓“磨刀不误砍柴工“。在 linux下, vim时一种最常见的编辑器,很多linux的发行版就自带了(不过 Ubuntu目前时需要自己安装的,默认只带了vi)。今天搞了半天了Vim,通过几个插件来武装我的vim,使其能向传说中的一样成为C/C++程序员的利器。
通过配置和插件,实现的功能有:语法高亮+自动缩进+函数自动补全+变量函数的跟踪+列出源代码中的函数变量等
用到的工具有:Vim+.vimrc配置文件+Ctags+taglist
使用效果:http://files.myopera.com/mbbill/files/code_complete.gif
PS:这个效果非常炫的!~

vim 下载地址http://www.vim.org    ubuntu可使用sudo apt-get install vim
code_complete.vim 插件http://www.vim.org/scripts/script.php?script_id=1764
ctags 一般安装完vim后都会有,ubuntu中好像是不支持,需要下载:http://www.vim.org/scripts/script.php?script_id=610
taglis 下载:http://www.vim.org/scripts/script.php?script_id=273

一. vim 配置
1、配置文件的位置
  在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件。我就在自己的$HOME目录下新建了了.vimrc文件来配置的。(如果设置/etc/vimrc对所有用户都有效配置,某个userHOME下在.vimrc仅对这���user有效)
2、设置语法高亮显示
  1) 打开.vimrc,添加以下语句来使得语法高亮显示:

 syntax on


  2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:

 export TERM=xterm-color


3、设置 Windows风格的C/C++自动缩进(添加以下set语句到.vimrc中)
  1)不讨论制表符为8还是为4较好,这里设置(软)制表符宽度为4:

 set tabstop=4
set softtabstop=4


  2)设置缩进的空格数为4

 set shiftwidth=4


  3)设置 自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:

 set autoindent


  4)设置使用 C/C++ 语言的自动缩进方式:

 set cindent


  5)设置C/C++语言的具体缩进方式(以我的windows风格为例):
  set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
  6)如果想在左侧显示文本的行号,可以用以下语句:
  set nu
  7)最后,如果没有下列语句,就加上吧:
  if &term=="xterm"
    set t_Co=8
    set t_Sb=^[[4%dm
    set t_Sf=^[[3%dm
  endif
PS:自动缩进有两个选项,代码:
  set autoindent 与  set cindent
  autoindent 就是自动缩进的意思,当你在输入状态用回车键插入一个新行,或者在 normal 状态用 o 或者 O 插入一个新行时,autoindent 会自动地将当前行的缩进拷贝到新行,也就是"自动对齐”,当然了,如果你在新行没有输入任何字符,那么这个缩进将自动删除。
  cindent 就不同了,它会按照 C 语言的语法,自动地调整缩进的长度,比如,当你输入了半条语句然后回车时,缩进会自动增加一个 TABSTOP 值,当你键入了一个右花括号时,会自动减少一个 TABSTOP 值。

二. code_complete 配置
把下载的code_complete.vim拷贝到plugin目录下,一般都在(我的是)/usr/share/vim/vim72/plugin下 (不同的vim版本vim72可能时 其他,我的目前时7.2版本)
在vim中使用<tab>键就可以补全函数原型了。具体不全的快捷键的定义,如果in代表#include " ",见:code_complete.vim文件中的定义。

三. 用ctags命令生成tags文件,ctags -R --c-kinds=+p --fields=+S /usr/include 应该算是建立索引表(默认会在当前目录生成tags文件),然后把生成的tags文件拷贝到你编程的目录。
注意:ctags -R 后面不加上绝对路径,就时建立当前目录的下所有文件的索引,那么建立的索引文件中都是写的相对路径,你将tags文件拷贝到其他目录去用时,它就会找不到相应的函数/变量等。
"-R"表示递归创建,也就包括源代码根目录下的所有子��录下的源程序。
"tags"文件中包括这些对象的列表:
  用#define定义的宏
  枚举型变量的值
  函数的定义、原型和声明
  名字空间(namespace)
  类型定义(typedefs)
  变量(包括定义和声明)
  类(class)、结构(struct)、枚举类型(enum)和联合(union)
  类、结构和联合中成员变量或函数
  VIM用这个"tags"文件来定位上面这些做了标记的对象,下面介绍一下定位这些对象的方法:
  1) 用命令行。在运行vim的时候加上"-t"参数,例如:

 [/home/admin/src]$ vim -t foo_bar


  这个命令将打开定义"foo_bar"(变量或函数或 其它)的文件,并把光标定位到这一行。
  2) 在vim编辑器内用":ta"命令,例如:

 :ta foo_bar


  3) 最方便的方法是把光标移到变量名或函数名上,然后按下"Ctrl-]"。用"Ctrl-o"退回原来的地方。
  注意:运行vim的时候,必须在"tags"文件所在的目录下运行。否则,运行vim的时候还要用":set tags="命令设定"tags"文件的路径,这样vim才能找到"tags"文件。

四. taglist的配置和使用
下载taglist压缩包,并解压,cp plugin/taglist.vim /usr/share/vim/vim72/plugin/ ; cp doc/taglist.txt /usr/share/vim/vim61/doc/
启动vim��用 “:helptags .”来配置好帮助文件;重启vim,用“:TlistToggle”来打开和关闭taglist窗口;可以用“:help taglist”来获得更多帮助信

参考资料:

http://blog.chinaunix.net/u2/74761/showart_1096872.html
http://www.linuxsir.org/bbs/showthread.php?p=2095747#post2095747    (vim很强大功能介绍)
http://linux.chinaunix.net/bbs/thread-1036769-1-1.html
http://blog.chinaunix.net/u/553/showart_288387.html
http://www.51testing.com/?uid-25484-action-viewspace-itemid-211836




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论