VIM编写程序

  Vim+Taglist+Ctags三个程序来输入与查看C/C++程序非常方便,Taglist 是一个 Vim的一个浏览插件,可以在Vim中查看文件中包含的函数列表和类中的方法类表的功能。Taglist依赖Ctags,Ctags是根据将源码生成索引文件的插件。

一、安装ctags-5.6.tar.gz 与 taglist_42.zip

在/home目录下建立programfile目录并将 ctags-5.6.tar.gz与taglist_42.zip拷到这个目录。
1、安装 ctags-5.6.tar.gz
#cd /home/programfiles
#tar xzvf ctags-5.6.tar.gz
编译源码
#cd ctags-5.6
#./configure
#make
建立目录
#./mkinstalldirs
安装
#make install
运行ctags测试是否安装成功。
#ctags
ctags: No files specified. Try "ctags --help".
2、安装taglist_42.zip
#cd 
#mkdir .vim
#mkdir .vim/plugin
#cd .vim
#unzip /home/programfiles/taglist_42.zip
#ls
doc plugin
进入Vim,在命令模式下输入“helptags~/.vim/doc”,至此完成ctags的安装,可以在Vim命令模式下输入Tlist进行测试。
3、将Ctags 与 Taglist联系在一起
#cd plugin
#vi taglist.vim
在63行也就是if !exists('loaded_taglist')行前面加入下面一行:
let Tlist_Ctags_Cmd="/usr/local/bin/ctags"
到这里两个程序已经全部安装完毕。

二、使用要点
1、在查看源码前,需使用ctags生成函数和变量信息文件tags
#cd test
#ctags -R
#ls tags
tags
#vim test.c
2、在Vim下使用TlistToggle 或者说Tlist命令切换耿函数列表开关,按住ctrl键不放同时再按两下w键(^WW),在编辑区与tags区切换,在tags区使用方向键选择函数,再回车键就会在编辑区找到函数定义。
    如果有tags区选择了不是打开程序中函数,可以用ctrl+]查看,按ctrl+O返回到原文件。

三、配置Vim

  1、支持中文编码的基础

  Vim要更好地支持中文编码需要两个特性:+multi_byte和+iconv,可以用|:version|命令检查当前使用的Vim是否支持,否则的话需要重新编译。

  2、影响中文编码的设置项

  Vim中有几个选项会影响对多字节编码的支持:

   encoding(enc):encoding是Vim的内部使用编码,encoding的设置会影响Vim内部的Buffer、消息文字等。在 Unix环境下,encoding的默认设置等于locale;Windows环境下会和当前代码页相同。在中文Windows环境下encoding的 默认设置是cp936(GBK)。

   fileencodings(fenc):Vim在打开文件时会根据fileencodings选项来识别文件编码,fileencodings可以同时设置多个编码,Vim会根据设置的顺序来猜测所打开文件的编码。

   fileencoding(fencs) :Vim在保存新建文件时会根据fileencoding的设置编码来保存。如果是打开已有文件,Vim会根据打开文件时所识别的编码来保存,除非在保存时重新设置fileencoding。

   termencodings(tenc):在终端环境下使用Vim时,通过termencoding项来告诉Vim终端所使用的编码。

  3、Vim中的编码转换

  Vim内部使用iconv库进行编码转换,如果这几个选项所设置的编码不一致,Vim就有可能会转换编码。打开已有文件时会从文件编码转换到 encoding所设置的编码;保存文件时会从encoding设置的编码转换到fileencoding对应的编码。经常会看到Vim提示[已转换],这是表明Vim内部作了编码转换。终端环境下使用Vim,会从termencoding设置的编码转换到encoding设置的编码。

  可以用|:help encoding-values|列出Vim支持的所有编码。

  4、具体应用环境的设置

   只编辑GBK编码的文件

  set fileencodings=cp936

  set fileencoding=cp936

  set encoding=cp936

   只编辑UTF-8编码的中文文件

  set fileencodings=utf-8

  set fileencoding=utf-8

  set encoding=cp936 或者 set encoding=utf-8

   同时支持GBK和UTF-8编码

  set fileencodings=ucs-bom,utf-8,cp936

  set fileencoding=utf-8

  set encoding=cp936 或者 set encoding=utf-8

   如果在终端环境下使用Vim,需要设置termencoding和终端所使用的编码一致。例如:

  set termencoding=cp936 或者 set termencoding=utf-8

  Windows记事本编辑UTF-8编码文件时会在文件头上加上三个字节的BOM:EFBBBF。如果fileencodings中设 置ucs-bom的目的就是为了能够兼容用记事本编辑的文件,不需要的话可以去掉。Vim在保存UTF-8编码的文件时会去掉BOM。去掉BOM的最大好 处是在Unix下能够使用cat a b>c来正确合并文件,这点经常被忽略。

  5、FAQ

   为什么在Vim中一次只能删除半个汉字?

   因为encoding设置错误,把encoding设置为cp936就可以解决此问题。在Unix环境下Vim会根据locale来设置默认的encoding,如果没有正确设置locale并且没有设置encoding就会一次只能删除半个汉字。

  

   VIM为什么不能输入繁体字?

   把euc-cn或者GB2312改为cp936就可以了。euc-cn是GB2312的别名,不支持繁体汉字。cp936是GBK的别名,是GB2312的超集,可以支持繁体汉字。

  

   VIM为什么提示不能转换?

   因为在编译Vim时没有加入iconv选项,重新编译Vim才能解决。

  

   如何打开一个GBK编码的文件并另存为UTf-8编码?

   保存文件时运行命令|:set fileencoding=utf-8|就可以了。

6、在用户目录下建立“.vimrc”文件,这是用户自己的Vim配置文件。内容如下:

# cat .vimrc
syntax on
set tabstop=4
set softtabstop=4

set encoding=cp936或set encoding=gb2312;
set fileencodings=utf-8
set shiftwidth=4
set cindent
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
if &term=="xterm"
set t_Co=8
             set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif
#

其中:

syntax on使得语法高亮显示

set tabstop=4设置缩进的空格数为4

set softtabstop=4设置缩进的空格数为4

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

set cindent设置使用 C/C++ 语言的自动缩进方式

set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s设置C/C++语言的具体缩进方式

至此我们可以在Vim上方便的编写与查看C/C++程序了。

以上Vim设置部分参考了http://www.xxlinux.com/linux/article/development/soft/20080213/13766.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值