本文通过总结零碎的资料总结而成,更多是去引导学习Vim配置文件及插件使用。
.vimrc配置文件,内容如下(备注清晰)
"引入插件pathogen使用
execute pathogen#infect()
call pathogen#helptags()
"禁用vi兼容模式
set nocompatible
"vim的内部编码
set encoding=utf-8
"vim在与屏幕和键盘交互师傅使用的编码(取决于实际的终端的设定)
set termencoding=utf-8
"vim打开文件时的尝试使用的编码
set fileencodings=utf-8,gbk,gb2312,default,latin1
"开启语法高亮功能
syntax enable
"允许用指定高亮替换方案
syntax on
"显示行号
set nu
"括号匹配
set showmatch
"自动检测文件类型
filetype plugin indent on
"在缩进和遇到Tab键时使用空格替代
set expandtab
"根据文件类型设置缩进格式
au FileType html,vim,Javascript setl shiftwidth=2
au FileType html,vim,javascript setl tabstop=2
au FileType java,php,pathon setl shiftwidth=4
au FileType java,php,pathon setl tabstop=4
"启动vim时不要自动折叠代码
set foldlevel=100
"自动对齐
set ai
"根据下面的格式对齐
set si
set smarttab
set wrap
set lbr
set tw=0
set foldmethod=syntax
"总是显示状态栏
set laststatus=2
"显示光标当前位置
set ruler
"高亮显示当前行
set cursorline
"高亮显示搜索结果
set hlsearch
"禁止拆行
set nowrap
"设置快捷键前最,即<Leader>
let mapleader=":"
"设置快捷键将选中文本块复制到系统剪贴板
map <Leader>y "+y
"设置快捷键将系统剪贴板内容粘帖到vim
map <Leader>p "+p
noremap <F9> :!ctags -R<CR>
"设置tags文件为当前目录下的tags,默认情况也是
"set tags+=./tags
"配置文件.vimrc更改后自动重新载入使设置生效
autocmd! bufwritepost .vimrc source ~/.vimrc
"vim对一些流行的编程语言的语法提供自动完成的功能,但是默认是没有启用。
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
"vim对一些语言实现的格式化命令
"在命令模式下直接输入“gg=G”。
"
"以下为插件设置参数
"
"-----------------------------------------------------------------
"auto-pairs插件,用于自动补全括号,引号等
"
"-----------------------------------------------------------------
"vim-surroun.vim插件,处理分隔符,包括添加、修改、删除。
"添加"",选择内容,输入S"。
"修改""为'',在分隔符内部,输入cs"'。
"删除"",在分隔符内部,输入ds"。
"删除<>xml标签时,t可以代替<>xml标签。
"
"-----------------------------------------------------------------
"nerdtree插件,目录树。
"设置默认开启
autocmd vimenter * NERDTree
"打开关闭快捷键
map <F3> :NERDTreeToggle<CR>
"当只剩下目录树时,自动关闭vim。
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") &&b:NERDTreeType == "primary") | q | endif
"
"-----------------------------------------------------------------
"xptemplate插件,代码片段补全
"提示方式:Ctrl+\。
"
"vim-Markdown插件,实现markdown高亮。
"
"tagbar插件显示方法属性列表
map <silent> <F4> :TagbarToggle<CR>
let g:tagbar_width=30
let g:tagbar_autofocus=1
"
"-----------------------------------------------------------------
"NERD_commenter.vim 注释代码用的,
"[count]<Leader>cc 光标以下count行逐行添加注释(7,cc)
"[count]<Leader>cu 光标以下count行逐行取消注释(7,cu)
"[count]<Leader>cm 光标以下count行尝试添加块注释(7,cm)
"<Leader>cA 在行尾插入 /* */,并且进入插入模式。 这个命令方便写注释。
"注:count参数可选,无则默认为选中行或当前行
"-----------------------------------------------------------------
let NERDSpaceDelims=1 " 让注释符与语句之间留一个空格
let NERDCompactSexyComs=1 " 多行注释时样子更好看"
"引入插件pathogen使用
execute pathogen#infect()
call pathogen#helptags()
"禁用vi兼容模式
set nocompatible
"vim的内部编码
set encoding=utf-8
"vim在与屏幕和键盘交互师傅使用的编码(取决于实际的终端的设定)
set termencoding=utf-8
"vim打开文件时的尝试使用的编码
set fileencodings=utf-8,gbk,gb2312,default,latin1
"开启语法高亮功能
syntax enable
"允许用指定高亮替换方案
syntax on
"显示行号
set nu
"括号匹配
set showmatch
"自动检测文件类型
filetype plugin indent on
"在缩进和遇到Tab键时使用空格替代
set expandtab
"根据文件类型设置缩进格式
au FileType html,vim,Javascript setl shiftwidth=2
au FileType html,vim,javascript setl tabstop=2
au FileType java,php,pathon setl shiftwidth=4
au FileType java,php,pathon setl tabstop=4
"启动vim时不要自动折叠代码
set foldlevel=100
"自动对齐
set ai
"根据下面的格式对齐
set si
set smarttab
set wrap
set lbr
set tw=0
set foldmethod=syntax
"总是显示状态栏
set laststatus=2
"显示光标当前位置
set ruler
"高亮显示当前行
set cursorline
"高亮显示搜索结果
set hlsearch
"禁止拆行
set nowrap
"设置快捷键前最,即<Leader>
let mapleader=":"
"设置快捷键将选中文本块复制到系统剪贴板
map <Leader>y "+y
"设置快捷键将系统剪贴板内容粘帖到vim
map <Leader>p "+p
noremap <F9> :!ctags -R<CR>
"设置tags文件为当前目录下的tags,默认情况也是
"set tags+=./tags
"配置文件.vimrc更改后自动重新载入使设置生效
autocmd! bufwritepost .vimrc source ~/.vimrc
"vim对一些流行的编程语言的语法提供自动完成的功能,但是默认是没有启用。
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
"vim对一些语言实现的格式化命令
"在命令模式下直接输入“gg=G”。
"
"以下为插件设置参数
"
"-----------------------------------------------------------------
"auto-pairs插件,用于自动补全括号,引号等
"
"-----------------------------------------------------------------
"vim-surroun.vim插件,处理分隔符,包括添加、修改、删除。
"添加"",选择内容,输入S"。
"修改""为'',在分隔符内部,输入cs"'。
"删除"",在分隔符内部,输入ds"。
"删除<>xml标签时,t可以代替<>xml标签。
"
"-----------------------------------------------------------------
"nerdtree插件,目录树。
"设置默认开启
autocmd vimenter * NERDTree
"打开关闭快捷键
map <F3> :NERDTreeToggle<CR>
"当只剩下目录树时,自动关闭vim。
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") &&b:NERDTreeType == "primary") | q | endif
"
"-----------------------------------------------------------------
"xptemplate插件,代码片段补全
"提示方式:Ctrl+\。
"
"vim-Markdown插件,实现markdown高亮。
"
"tagbar插件显示方法属性列表
map <silent> <F4> :TagbarToggle<CR>
let g:tagbar_width=30
let g:tagbar_autofocus=1
"
"-----------------------------------------------------------------
"NERD_commenter.vim 注释代码用的,
"[count]<Leader>cc 光标以下count行逐行添加注释(7,cc)
"[count]<Leader>cu 光标以下count行逐行取消注释(7,cu)
"[count]<Leader>cm 光标以下count行尝试添加块注释(7,cm)
"<Leader>cA 在行尾插入 /* */,并且进入插入模式。 这个命令方便写注释。
"注:count参数可选,无则默认为选中行或当前行
"-----------------------------------------------------------------
let NERDSpaceDelims=1 " 让注释符与语句之间留一个空格
let NERDCompactSexyComs=1 " 多行注释时样子更好看"
这份配置文件只能是基础使用,开始是简单的字符编码设置,再是语法高亮(VIM自带javascript语法高亮,但是自带的那个位于syntax目录下的javascript.vim那个配置文件比较弱,有很多关键词没有高亮。我们可以到www.vim.org搜索最新的javascript.vim代替了原来的那个文件的),其次是对Tab键的设置,并且可以设置根据不同文件区分Tab键宽度。最后是对快捷键的设置,注意这里的复制粘帖是指vim之外电脑本身的剪切板。
以上就是.vimrc配置文件,一些基本的引导,可以自己做适合自己的快捷键或设置。
接下来具体记录如何处理插件
(注:做同样的事肯定存在多种选择,插件也是,相同功能有很多不同插件可以实现,以下是我个人的选择)
正常安装插件较为繁琐,需要到/usr/share/vim/vim**/文件下操作,插件比较不好管理,所以推荐使用插件管理器。pathogen和vundle都是用来管理vim插件的,但是其作用的方面不同。
- pathogen是为了解决每一个插件安装后文件分散到多个目录不好管理而存在的。
- vundle是为了解决自动搜索及下载插件而存在的。
我个人使用的是apthogen插件,当插件过多时,条理的安置插件才是最好的,另外大部分使用的插件可以看到并不会短期内更新。介绍pathogen插件:首先,在用户目录的.vim目录下建立autoload目录和bundle目录,autoload目录中放pathogen.vim。可以在~/.vim/autoload/目录下,用如下命令下载
curl –Sso pathogen.vim https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim
然后在配置文件的首行添加如下命令execute pathogen#infect()
,回头看看上方.vimrc配置文件开头。
有了pathogen后,下载的插件就直接把它们放到bundle目录下即可,而不需要管理相应的autoload、colors、plugin等目录。添加help文件,在vim下用命令:helptags ~/.vim/doc/
即可通过help命令查看插件文档。
(注:哪怕插件只是一个.vim文件,也可以先新建一个文件夹,然后再建plugin文件夹,最后将该插件放入即可)
有了这么好的插件管理器,安装插件就变得非常方便,因为vim毕竟是IT开发人员开发出来的,所以vim最终受益者还会是开发人员,配置IDE开发环境插件。
文件浏览插件
一个好的文件浏览肯定少不了目录树,并且能够方便切换。我推荐使用NERDTree。我们先安装然后后续可以自己多看文档,正如我前面所说的有了好的插件管理器,就可以很方便完成安装使用。我们可以直接去到官网http://www.vim.org/scripts/script.php?script_id=1658选择最新版本直接下载即可。我们将压缩包解压以后,通过cp命令行将文件夹直接复制到~/.vim/bundle/下即可,可以打开vim,并在并在命令行输入:NERDTree,并可以看到左边跳出当前文件下的目录树,为了便于方便可以设置每次打开vim自动跳出NERDTree所以我们可以在.vimrc文件中设置,同时可以设置打开关闭快捷键。是不是很方便!
对齐文本插件
对于经常写代码来说,有Tabular会很方便,文本可以按等号,冒号等来对齐文本。我们还是先直接安装插件,到https://github.com/godlygeek/tabular下载,这次是git上的一个项目,不用慌还是直接下载即可,得到安装包后解压到~/.vim/bundle/即可直接使用。
显示方法属性列表
tagbar插件显示方法属性列表,帮助开发人员查看当前文件中的宏、全局变量、函数等标签,先通过http://www.vim.org/scripts/script.php?script_id=3465安装,然后在.vimrc文件中配置插件,参考上面文档内容,就可以自定义显示方式。通过选择标签也可以实现直接跳转功能,具体实现可以查看帮助文档。
NERD_commenter注释代码
xptemplate插件,代码片段补全
auto-pairs插件,用于自动补全括号,引号等
vim-Markdown插件,实现markdown高亮。
vim-surroun.vim插件,处理分隔符,包括添加、修改、删除。
函数跳转(没有使用插件)
auto-pairs插件,用于自动补全括号,引号等
vim-Markdown插件,实现markdown高亮。
vim-surroun.vim插件,处理分隔符,包括添加、修改、删除。
函数跳转(没有使用插件)
vim-surroun.vim插件,处理分隔符,包括添加、修改、删除。
函数跳转(没有使用插件)
对于IDE而言也算最基本也是最方便的功能之一了吧。正常情况下可以下载插件,但是我选择使用vim自带的跳转,快捷键:control+]
跳入,control+o
返回。
但是任何方法都要基于tags来实现。这里不多加解释,需要自己慢慢去啃。http://www.linuxidc.com/Linux/2017-01/139378.htm,这篇文章将tags介绍的很详细,简单的说tags是一个linux上很普遍的源码分析工具, 可以将代码中的函数变量等定义的位置记录在一个名称为tags的文件,类似于数据库记录功能,而接下来的插件就是需要用的这些标签,可以通过命令sudo apt-get install ctags
进行安装(Ubuntu下),然后在工作目录下生成tags标签文件,最方便的命令是ctags -R
直接根据目录下所有文件来获取标签,类似于函数名,变量名等,最后在.vimrc文件中添加路径:set tags+=/home/user/tags
就可以让vim在每次启动的时候自动找到tags标签文档。
vim使用建议(重要)
- 以上只是带领大家简单了解和配置vim,大家可以按照前面介绍的把后面几个推荐的插件安装到自己的vim中。在以后学习中可以慢慢的不断完善配置文档和插件的选择,最后希望能有真正属于自己并且适合自己的.vimrc。
- 在使用vim过程中尽量使用vim自带的快捷键或功能,也尽量不要过多的依赖使用很多插件,可以避免在别人的电脑上原装的vim什么也不会操作。
- 如果换了主机,可以通过将,.vim文件夹和.vimrc文件放置到github之类的代码托管上,下次无论在谁的电脑上都可以很快拉取下来使用。
Vim 8.0 释出 http://www.linuxidc.com/Linux/2016-09/135178.htm
Linux下编译安装Vim8.0 http://www.linuxidc.com/Linux/2017-01/139210.htm
Vim学习指南 http://www.linuxidc.com/Linux/2013-08/89096.htm
Vim编辑器配置 http://www.linuxidc.com/Linux/2016-09/135460.htm
Vim编辑器使用 http://www.linuxidc.com/Linux/2016-09/135043.htm
快速学会 Vi编辑器 http://www.linuxidc.com/Linux/2013-08/88586.htm
强大的Vim 编辑器 http://www.linuxidc.com/Linux/2013-07/87544.htm
Linux文本编辑器Vim的一般用法 http://www.linuxidc.com/Linux/2016-11/137263.htm
把Vim打造成优秀的C++ IDE http://www.linuxidc.com/Linux/2016-06/132262.htm
Ubuntu 14.04升级Vim7.4到8.0 http://www.linuxidc.com/Linux/2016-11/136816.htm
Vim安装youcompleteme自动补全插件 http://www.linuxidc.com/Linux/2016-11/137665.htm
Linux Vim编辑器使用简单讲解 http://www.linuxidc.com/Linux/2016-12/138930.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139377.htm