1.查看vim版本和vimrc配置文件信息的方法

:version # 请在Linux或Windows下的Vim中输入

会列出以下文件路径(启动顺序示意):

1 system vimrc file(系统vimrc)
2 user vimrc file(用户vimrc)
3 user exrc file(支持vi的exrc配置文件)
4 system gvimrc file(系统gvimrc)
5 user gvimrc file(用户gvimrc)

 

2.Vim启动顺序

Vim 启动时,会先尝试执行系统的 vimrc 文件(通常此文件不存在),然后将按照上述顺序查找用户 vimrc,并使用所找到的第一个用户 vimrc 中的配置,忽略其余的用户 vimrc。

在windows下,有两个可选用户 vimrc 文件:一个是 $HOME\_vimrc,另外一个是 $VIM\_vimrc。$HOME/_vimrc 如果存在,就会执行这个文件中的配置,从而跳过 $VIM/_vimrc。

 

3.Vim的vimrc文件在Windows和Linux命名区别

Windows下vimrc 文件的名字: _vimrc(Windows不支持以点(.)开头的文件名,未找到名为 _vimrc 的文件,会查找名为 .vimrc 文件)

Linux下vimrc 文件的名字: .vimrc(未找到名为 .vimrc 的文件,会查找名为 _vimrc 文件)

注意:vimrc 的执行先于 gvimrc。所以我们可以把全部 vim 配置命令都放在 vimrc 中,不需要用 gvimrc。

 

4.使用VIM查看上述路径的方法

:echo $路径  # 使用vim查看vimrc路径时,可使用此方法

 

5.vimrc文件配置

Windows 中可增加 HOME环境变量(控制面板 -> 系统 --> 高级 --> 环境变量),然后将修改好的vimrc放在HOME环境变量所指定的目录中。
如果使用 vim -u filename 命令来启动 Vim,则会用你指定的 filename 作为 Vim 的配置文件(在调试你的 vimrc 时有用);如果用 vim -u NONE 命令启动 Vim,则不读取任何 vimrc 文件:当怀疑vimrc配置有问题时,可以用这种方式跳过vimrc的执行。

 

6.Linux环境.vimrc的简单配置参考

 

"========================================  
" File Name: .vimrc  
" Author: Angus 
" Description: Vim配置文档  
" Date: 2018.9.19  
"========================================  

"开启语法高亮
syntax enable
if has("syntax")
"语法高亮
syntax on
endif

" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
set nocompatible

"elflord ron peachpuff default 设置配色方案,vim自带的配色方案保存在/usr/share/vim/vimxx/colors目录下
colorscheme ron

"检测文件类型
filetype on

"允许插件
filetype plugin on

"依文件类型设置自动缩进
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
"have Vim load indentation rules and plugins according to the detected filetype
filetype plugin indent on
endif

"设置一个制表符占4个字符
set ts=4

"--find setting--
"搜索时快速匹配/搜索
set incsearch
set hlsearch     

"设置搜索高亮
set hls

"设置搜索时忽略大小写
"set ignorecase

"当搜索时尝试smart,如果搜索模式包含大写字符,不使用 'ignorecase' 选项。只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用。
set smartcase

"Enable mouse usage (all modes) 使用鼠标
set mouse=a

"--状态行设置--
"总显示最后一个窗口的状态行;设为1则窗口数多于一个的时候显示最后一个窗口的状态行;0不显示最后一个窗口的状态行
set laststatus=2
"显示光标行列信息:用于显示光标位置的行号和列号,逗号分隔。每个窗口都有自己的标尺。如果窗口有状态行,标尺在那里显示。否则,它显示在屏幕的最后一行上。
set ruler
"突出显示当前行
"set cursorline

"--命令行设置--
"总是在vim窗口的右下角显示当前光标的行列信息,命令行显示输入的命令
set showcmd
"左下角显示当前Vim模式,命令行显示vim当前模式
set showmode


"显示行号:
set number
"为方便复制,用<F2>开启/关闭行号显示:
nnoremap <F2> :set nonumber!<CR>:set foldcolumn=0<CR>
"启用Modeline(即允许被编辑的文件以注释的形式设置Vim选项,详见Vim Wiki: Modeline magic)[4]:


"设置代码匹配,包括括号匹配情况
set showmatch

set modeline
"如果终端使用的是深色背景:

"为深色背景调整配色
set background=dark

"让Vim的补全菜单行为与一般IDE一致,两条指令效果一样(参考VimTip1228)
"set completeopt+=longest
set completeopt=longest,menu
 

"开启vim三种智能:1.自动识别文件类型 2.用文件类型plugin脚本 3.使用缩进定义文件
filetype plugin indent on

"文件修改之后自动读入
set autoread

"自动保存文件,自动把内容写回文件: 如果文件被修改过,在每个 :next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令时进行;用 :buffer、CTRL-O、CTRL-I、'{A-Z0-9} 或 `{A-Z0-9} 命令转到别的文件时亦然。
"set autowrite

"自动对齐
set autoindent
"智能对齐
"set smartindent
"设置C/C++方式自动对齐
set cindent
"设置C/C++语言的具体缩进方式
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s


"设置制表符(tab键)的宽度
set tabstop=4
"设置软制表符的宽度
set softtabstop=4
"(自动) 缩进使用的4个空格
set shiftwidth=4

"设置退格键可用
"set backspace=2

"整词换行
set linebreak

"set command history to 50历史记录50条
set history=50

"光标从行首和行末时可以跳到另一行去
set whichwrap=b,s,<,>,[,]

"标识预览窗口
"set previewwindow

"Hide buffers when they are abandoned 隐藏缓冲区
"set hidden

"离开插入模式后自动关闭预览窗口
autocmd InsertLeave * if pumvisible() == 0|pclose|endif


"回车即选中当前项
inoremap <expr> <CR>       pumvisible() ? "\<C-y>" : "\<CR>"


"上下左右键的行为
inoremap <expr> <Down>     pumvisible() ? "\<C-n>" : "\<Down>"
inoremap <expr> <Up>       pumvisible() ? "\<C-p>" : "\<Up>"
inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>"
inoremap <expr> <PageUp>   pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>"


"如需自动补全,可安装AutoComplPop插件,安装后如需在补全是显示文档(预览),可加入设置:
let g:acp_completeoptPreview = 1


"建议在~/.vimrc中添加如下配置以使Vim在父目录中寻找tags文件[10]:
set tags=tags;/


"设置好后,可在Vim中使用如下功能:Ctrl-]转至最佳匹配的相应Tag,Ctrl-T返回上一个匹配。如果有多个匹配,g Ctrl-]可显示所有备选的tags。如有需要,可互换Ctrl-]和g Ctrl-] [11]:

"在普通和可视模式中,将<c-]>与g<c-]>互换

nnoremap <c-]> g<c-]>
vnoremap <c-]> g<c-]>
 
nnoremap g<c-]> <c-]>
vnoremap g<c-]> <c-]>


" CodeFolding 代码折叠功能配置 代码较长时可启用代码折叠功能,如按语法高亮元素折叠:
set foldmethod=syntax
"默认情况下不折叠
set foldlevel=99
"随后即可使用z系列命令管理代码折叠。如za会翻转当前位置的折叠状态,zA会递归翻转当前层所有代码的折叠状态等。当然也可以把功能键映射到za:
map <F3> za


" MiniBufExplorer 多文件切换 可使用鼠标双击相应文件名进行切换
let g:miniBufExplMapWindowNavVim=1
let g:miniBufExplMapWindowNavArrows=1
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplModSelTarget=1


" Tlist              调用TagList
let Tlist_Show_One_File=1                    " 只显示当前文件的tags
let Tlist_Exit_OnlyWindow=1                  " 如果Taglist窗口是最后一个窗口则退出Vim
let Tlist_Use_Right_Window=1                 " 在右侧窗口中显示
let Tlist_File_Fold_Auto_Close=1             " 自动折叠


" TxtBrowser          高亮TXT文本文件
au BufRead,BufNewFile *.txt setlocal ft=txt