Vim配置一些好用的插件 EasyGrep CtrlP等等,vimrc的一些配置
Vim 插件 EasyGrep 全局搜索文件
EasyGrep的安装
如果你已经使用了Vundle管理Vim插件, 只需要在.vimrc里增加Bundle 'EasyGrep'
然后使用:BundleInstall
安装即可.
How To Use
\vv
or:Grep
:\vv
命令将在文件中搜索当前光标下的单词,:Grep word
将搜索"word", 如果加叹号:Grep !word
表示全词匹配的方式搜索, Grep也可以带参数, 比如:Grep -ir word
, r表示递归目录. i表示不区分大小写.\vV
: 全词匹配搜索, 同:Grep !word
;\va
: 与vv
相似, 搜索结果append在上次搜索结果之后;\vA
: 与vV
相似, 搜索结果append在上次搜索结果之后;\vr
or:Replace
:替换;\vo
or:GrepOptions
: 打开选项菜单;
Options Details
每个Option的解释可以参考Github上的README
let g:EasyGrepMode = 2 " All:0, Open Buffers:1, TrackExt:2, let g:EasyGrepCommand = 0 " Use vimgrep:0, grepprg:1 let g:EasyGrepRecursive = 1 " Recursive searching let g:EasyGrepIgnoreCase = 1 " not ignorecase:0 let g:EasyGrepFilesToExclude = "*.bak, *~, cscope.*, *.a, *.o, *.pyc, *.bak"
文件跳转:ctrlp.vim
项目地址:https://github.com/kien/ctrlp.vim
在 VIM 世界里,有人是分窗口编辑文件的忠实拥护者,有人则是多文件 tab 页的死忠骨灰粉。但无论哪种人, 在一些大项目内进行编辑工作时,如果要快速打开 这类藏在大山深处的文件,都需像剥粽子一样,一层一层往下找,让人头疼。
ctrlp.vim 则完美帮你解决了这个痛点,当你想打开某个文件时,只要按下 , + f (可以自定义)快捷键,输入文件名。 所有和这个文件名匹配的文件都会被按照优先级列出来,按下 enter 或者 Ctrl + t 就可以在当前 buffer 或者新 tab 页打开你要的文件了。
我个人的的配置:
""<Leader>p搜索当前目录下文件
let g:ctrlp_map = '<Leader>f'
let g:ctrlp_cmd = 'CtrlP'
"<Leader>f搜索MRU文件
" nmap <Leader>f :CtrlPMRUFiles<CR>
" map <leader>f :CtrlPMRU<CR>
let g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/]\.(git|hg|svn|rvm)$',
\ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz|pyc)$',
\ }
let g:ctrlp_working_path_mode = 0
let g:ctrlp_match_window_bottom = 1
"修改QuickFix窗口显示的最大条目数
let g:ctrlp_max_height = 10
let g:ctrlp_match_window_reversed = 0
"设置MRU最大条目数为500
let g:ctrlp_mruf_max = 500
let g:ctrlp_follow_symlinks = 1
"默认使用全路径搜索,置1后按文件名搜索,准确率会有所提高,可以用<C-d>进行切换
let g:ctrlp_by_filename = 1
"默认不使用正则表达式,置1改为默认使用正则表达式,可以用<C-r>进行切换
let g:ctrlp_regexp = 0
VIM自动缩进等格式设置方法
1)VIM的环境是根据读取的配置文件来设定的,配置文件的位置通常在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。
(2)设置语法高亮
if has("syntax")
syntax on
endif
或者直接syntax on
注意:如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:export TERM=xterm-color
(3)设置自动缩进
set autoindent,即每行的缩进值与上一行相等,使用 set noautoindent 可以取消设置
当你在输入状态用回车键插入一个新行,或者在 normal 状态用 o 或者 O 插入一个新行时,autoindent 会自动地将当前行的缩进拷贝到新行,也就是"自动对齐”
set cindent,它会按照 C 语言的语法,自动地调整缩进的长度,比如,当你输入了半条语句然后回车时,缩进会自动增加一个 TABSTOP 值,当你键入了一个右花括号时,会自动减少一个 TABSTOP 值。
set smartindent,在这种缩进模式中,每一行都和前一行有相同的缩进量,同时这种缩进形式能正确的识别出花括号,当遇到右花括号(}),则取消缩进形式。此外还增加了识别C语言关键字的功能。如果一行是以#开头的,那么这种格式将会被特殊对待而不采用缩进格式。
(4)设置制表符等于多少空格
set tabstop=4
set softtabstop=4(设置软制表符)
软制表符表示在Insert模式的时候按退格键时退回缩进的长度,当使用expandtab 时特别有用。
(5)显示行号
set number或简写为set nu
(6)更改缩进方式
set shiftwidth=4 表示每一级缩进的长度为4个空格,一般设置成跟 softtabstop 一样的值
当set expandtab 时,缩进用空格来表示,而set noexpandtab 则是用制表符表示一个缩进。
不应让set expandtab对所有情况都生效,因为Makefile或makefile文件中要求必须使用制表符来分割命令,而如果使用了vim编辑这些文件,制表符被自动换成空格,则会出现问题。
可使用如下命令来对设置只对特定类型文件启用expandtab,
if has("autocmd")
autocmd BufRead,BufNewFile *.c, *.h set expandtab
endif
(7)短暂显示括号匹配
set sm(是set showmatch的简写),当你输入右括号,如}]),会自动跳到相匹配的括号处,闪动一下,不影响你继续输入,时间也可以自己设置,如下:
set matchtime=1(匹配时间,单位是十分之一秒)
(8)括号自动匹配添加
inoremap ( ()<LEFT>
inoremap { {}<LEFT>
inoremap [ []<LEFT>
(9)以特殊字符或字符串来显示制表符
set list
set listchars=tab:>- (这里是设置要显示哪些字符,没有被设置的不会被显示)
设置后,制表符将会被显示为>---,后面多余的空白字符显示为-。
-
set nocompatible "去掉有关vi一致性模式,避免以前版本的bug和局限
-
set nu! "显示行号
-
set guifont=Luxi/ Mono/ 9 " 设置字体,字体名称和字号
-
filetype on "检测文件的类型
-
set history=1000 "记录历史的行数
-
set background=dark "背景使用黑色
-
syntax on "语法高亮度显示
-
set autoindent "vim使用自动对齐,也就是把当前行的对齐格式应用到下一行(自动缩进)
-
set cindent "(cindent是特别针对 C语言语法自动缩进)
-
set smartindent "依据上面的对齐格式,智能的选择对齐方式,对于类似C语言编写上有用
-
set tabstop=4 "设置tab键为4个空格,
-
set shiftwidth =4 "设置当行之间交错时使用4个空格
-
set ai! " 设置自动缩进
-
set showmatch "设置匹配模式,类似当输入一个左括号时会匹配相应的右括号
-
set guioptions-=T "去除vim的GUI版本中得toolbar
-
set vb t_vb= "当vim进行编辑时,如果命令错误,会发出警报,该设置去掉警报
-
set ruler "在编辑过程中,在右下角显示光标位置的状态行
-
set nohls "默认情况下,寻找匹配是高亮度显示,该设置关闭高亮显示
-
set incsearch "在程序中查询一单词,自动匹配单词的位置;如查询desk单词,当输到/d时,会自动找到第一个d开头的单词,当输入到/de时,会自动找到第一个以ds开头的单词,以此类推,进行查找;当找到要匹配的单词时,别忘记回车
-
set backspace=2 " 设置退格键可用
-
修改一个文件后,自动进行备份,备份的文件名为原文件名加“~”后缀
-
if has("vms")
-
set nobackup
-
else
-
set backup
-
endif