此文章为个人笔记,因此排版比较乱
.vimrc文件中:
"解决中文编码设置
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set fileformats=unix
set encoding=prc
"设置tags的路径"
set tags=~/.vim/std_tags;
"基本配置
set wildmenu
"增强模式中的命令行自动完成操作
set foldmethod=manual
"设定折叠方式为手动
set helplang=cn
"设置帮助的语言为中文
set cin
"实现C程序的缩进
set sw=4
"设计(自动) 缩进使用4个空格
set sta
"插入时使用'shiftwidth'
set backspace=2
"指明在插入模式下可以使用删除光标前面的字符
syntax enable
"设置高亮关键字显示
set nocompatible
"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
set number
"显示行号
filetype plugin indent on
"检测文件的类型
"map :q
set history=1000
""记录历史的行数
colorscheme koehler
set background=dark
"背景使用黑色
set filetype=c
syntax on
"语法高亮度显示
set autoindent
set smartindent
"上面两行在进行编写代码时,在格式对起上很有用;
"第一行,vim使用自动对起,也就是把当前行的对起格式应用到下一行;
"第二行,依据上面的对起格式,智能的选择对起方式,对于类似C语言编写上很有用
"第一行设置tab键为4个空格,第二行设置当行之间交错时使用4个空格
set tabstop=4
set shiftwidth=4
set showmatch
"设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号
set ruler
"在编辑过程中,在右下角显示光标位置的状态行
set incsearch
"查询时非常方便,如要查找book单词,当输入到/b时,会自动找到第一
"个b开头的单词,当输入到/bo时,会自动找到第一个bo开头的单词,依
"次类推,进行查找时,使用此设置会快速找到答案,当你找要匹配的单词
"时,别忘记回车。
"set enc=chinese
"设置编码为中文
set winaltkeys=no
"Alt组合键不映射到菜单上
set autowrite
"taglist设置
" 如果 taglist 窗口是最后一个窗口,则退出 vim
let Tlist_Exit_OnlyWindow=1
"stToggle默认打开,此处暂时不打开,让winmanager插件来打开
"let Tlist_Auto_Open=1
"显示taglist菜单
let Tlist_Show_Menu=1
"Omni设置
"-- omnicppcomplete setting --
set completeopt=menu,menuone
let OmniCpp_MayCompleteDot = 1
" autocomplete with .
let OmniCpp_MayCompleteArrow = 1
" autocomplete with ->
let OmniCpp_MayCompleteScope = 1
" autocomplete with ::
let OmniCpp_SelectFirstItem = 2
" select first item (but don't insert)
let OmniCpp_NamespaceSearch = 2
" search namespaces in this and included files
"winmanager设置
let g:winManagerWindowLayout = "NERDTree|TagList"
"设置winmanager的宽度,默认为25
let g:winManagerWidth = 30
"定义打开关闭winmanager按键
nmap <silent> <F8> :WMToggle<cr>
"自动打开
let g:AutoOpenWinManager = 1
vim安装过程:
--enable-multibyte
./configure --prefix=/home/jaxonxu/vim73 --enable-multibyte
make
make install
Ctags:标签,自动补充和跳转定义的基础命令
Taglist:列表插件
Omni:C++自动补全插件
安装教程: Vim+Taglist+Ctags安装
打造自己的vim界面--用winmanager合并显示NERDTree和TagList
在ArchLinux中可以用yaourt命令安装,免去配置的烦恼。
Taglist手动设置问题:(如果本来能用就不需要设置)
其中:let Tlist_Ctags_Cmd="/usr/bin/ctags"ctags中的路径有可能不一样,具体可以用 which 命令查看:
root@jiaxiongxu-ThinkPad-X200:~# which ctags
/usr/bin/ctags
查到哪个路径就填哪个路径。
Ctags自动提示的使用过程:
1、用ctags命令分析头文件源文件,从而生产对用的标签文件tags。
2、在vimrc里设置标签文件的引用路径。(方法见下文)
vim就能根据tags文件去自动补全和跳转定义。
在.vimrc文件中设置tags文件的路径:(根据实际的路径修改)
set tags=~/.vim/sys_tags;
注意要识别某个头文件里面的定义,先得用ctags命令对头文件进行解释从而生成对应的tags文件,上面的sys_tags就是对系统库头文件用ctags命令生成的,命令如下:
ctags -R --c-kinds=+p --fields=+S
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/cpp_src
ctags的常用命令:
ctrl+] 跳转到定义,有多个定义时默认跳转到第一个
g+] 跳转定义列表,适合有多个定义时用
ctrl+W+] 分割屏跳转定义
ctrl+W W 两个分割屏中跳转
ctrl+T 返回到上一层
ctrl+P 自动补充
Ctrl+O 跳回原文件
当搜索到多个定义的时候输入命令
:tnext 跳转到下一个定义
:tselect 选择跳到某个定义
其它命令
:tag [某函数变量名的一部份] 模糊查找函数、变量
:ptag [某函数变量名] 分割屏列出定义
:pclose 关闭分割屏
:psearch [某函数变量名] 在#include的头文件中查找