将Vim配置成为一款强大的编辑工具之 vimrc配置

  • 将Vim配置成为一款强大的编辑工具
    • 背景
    • vimrc 配置
    • 多文件操作
      • 同时打开多个文件
      • 在多个文件中跳转
    • 参考资源

将Vim配置成为一款强大的编辑工具

背景

前东家使用的开发环境是Ubuntu 12.04;并且可以临时提权,有内部的软件镜像,这样极大的方便我们配置Linux(Ubuntu)开发环境,以方便我们自己使用,而且代码管理完完全全的可以称作是分布式。换了一家公司之后,工作环境就变化挺大的;代码管理使用分布式的git,但是想要编辑代码可不是那么容易。现在采用了B/S/C框架(姑且这个叫吧)。代码不在本地存储,而是存储于服务器上,使用putty访问,坑爹的是还是100M的网关。。无奈,之前可以将源码导入Eclipse/Source Insight;现在这种方式效率太低,所以下决心折腾vim

.vimrc 配置

通常来说,比较初级的vim配置完全可以通过.vimrc来搞定,例如常见的

"设置行号
set nu
"设置帮助语言为中文,(需要有中文帮助资源支持)
set helplang=cn
"搜索时高亮显示,这个功能谁用谁知道啊。。
set hls

下面贴上我的.vimrc配置,当然后续不定期更新

"set code
set fenc=utf-8
"for use vim's keypad
set nocompatible
"history number
set history=1000
"alert confirm dialog when we open a file which readonly or change
set confirm
"sinfer file type
filetype on
filetype indent on
syntax enable
syntax on
"set high light when search code
set hls
set showmatch
set helplang=cn
colorscheme desert
set list
set autoindent
"1 tab == 4 space
set tabstop=4
set shiftwidth=4
set expandtab
set nu
set showcmd
"Code complete
set completeopt=preview,menu

"Height of the command bar
set cmdheight=2
"Always show current position
set ruler
" IN may terminal emulator the mouse was working fine
if has('mouse')
    set mouse=a
endif
"set 7 lines to cursor when moving vertically using j/k
set so=7
"Ignore case when searching
set ignorecase
"when searching try to be smart about cases
set smartcase
"use speces instead of tabs
set expandtab
"Be smart when using tabs :)
set smarttab
"Linebreak on 500 characters
set lbr
set tw=500
"Map <space> to / (search) and Ctrl-<space> to ? (backwards search)
map <space> /
map space> ?
"Toggle paste mode on and off
map pp :setlocal paste!
"Returns ture if paste mode is enabled
function! HasPaste()
    if &paste
        return 'PASTE MODE'
    endif
    return ''
endfunction
"highlight current line
set cursorline 
" => Status line
"Always show the status line
set laststatus=2
"format the status line
set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
if version >= 603
    set helplang=cn
    set encoding=utf-8
endif

================
2015/12/15更新

"map tl for :Tlist
map tl :Tlist<cr>
"set Tlist auto open
"let Tlist_Auto_Open=1
"自动关闭
let Tlist_File_Fode_Auto_Close=1
"一次只显示一个文件中的信息
let Tlist_Show_One_File=1
"设置输入焦点到taglit窗口
let Tlist_GainFocus_On_ToggleOpen=1
"Folder Explore
"netrw setting
let g:netrw_winsize=30
"nmap <silent> <leader>fe :Sexplore!<cr>
nmap <silent> <leader>fe :Sexplore!<cr>
"map fe :Sexplore!<cr>
"-- Cscope setting --
" 2015/11/13
"if has("cscope")
"    set csprg=~/bin/cscope " 指定用来执行cscope的命令
"    set csto=0 " 设置cstag命令查找次序:0先找cscope数据库再找标签文件;1先找标签文件再找cscope数据库
"    set cst " 同时搜索cscope数据库和标签文件
"    set cscopequickfix=s-,c-,d-,i-,t-,e- " 使用QuickFix窗口来显示cscope查找结果
"    set nocsverb
"    if filereadable("cscope.out") " 若当前目录下存在cscope数据库,添加该数据库到vim
"        cs add cscope.out
"        "elseif $CSCOPE_DB != "" " 否则只要环境变量CSCOPE_DB不为空,则添加其指定的数据库到vim
"        "    cs add $CSCOPE_DB
"    endif
"    set csverb
"endif
nmap cs :cs help<CR>
nmap css :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap csg :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap csc :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap cst :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap cse :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap csf :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap csi :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap csd :cs find d <C-R>=expand("<cword>")<CR><CR>
set timeoutlen=3000
"map Key 'F2' to turn on/off line number
:noremap <F2> :set nu! nu?<CR>
"set high light when search Code
:noremap <F3> :set hls! hls?<CR>
autocmd InsertEnter * :set nohlsearch
autocmd InsertLeave * :set hls

================

多文件操作

同时打开多个文件

由于使用的是putty登录的服务器,因此类似gvim一类的图形界面的vim不大可能被使用;当我们打开一个文件的时候,希望在打开另外一个文件。例如:vim a.java 发现a.java调用了b.java中的一个函数,现在需要打开b.java正确的做法是如下图所示:
打开多个文件
使用 e patch/patch/patch/b.java命令打开另外一个文件就可以了

在多个文件中跳转

多个文件转跳
如上图所示::ls 可以列出当前vim打开的文件,想转跳到不同的文件可以使用bn来实现,n代表要转跳文件的list(例如想转跳到Enviorment.java,可以使用:b1)

参考资源

将Vim改造为强大的IDE—Vim集成
Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相) —— [ CSDN Road Ahead]
手把手教你把Vim改装成一个IDE编程环境(图文) —— [ CSDN Road Ahead]

你可能感兴趣的:(vim)