vim作為Linux下廣受贊譽的代碼編輯器,其獨特的純命令行操作模式可以很大程度上方便編程工作,通過自定義vim配置文件可以實現對vim功能的個性化設置。
vim配置文件一般有兩份,屬于root的/etc/vim/vimrc和屬于當前用戶的~/.vimrc,兩者都可以配置vim,而當兩者配置信息有沖突時,以后者為準。
我的/etc/vim/vimrc文件內容如下:
runtime! debian.vimsyntax onset showmatchset nuset autoindentset cindentset mouse=aif filereadable("etc/vim/vimrc.local") source /etc/vim/vimrc.localendif
我的當前用戶vim配置文件~/.vimrc內容如下:
inoremap ' ''<ESC>iinoremap " ""<ESC>iinoremap ( ()<ESC>iinoremap [ []<ESC>iinoremap { {<CR>}<ESC>O"設置跳出自動補全的括號func SkipPair() if getline('.')[col('.') - 1] == ')' || getline('.')[col('.') - 1] == ']' || getline('.')[col('.') - 1] == '"' || getline('.')[col('.') - 1] == "'" || getline('.')[col('.') - 1] == '}' return "/<ESC>la" else return "/t" endif endfunc " 將tab鍵綁定為跳出括號 inoremap <TAB> <c-r>=SkipPair()<CR>"打開文件類型檢測, 加了這句才可以用智能補全set completeopt=longest,menuset shortmess=atI " 啟動的時候不顯示那個援助烏干達兒童的提示 set showcmd "輸出的命令顯示出來autocmd InsertLeave * se nocul " 用淺色高亮當前行autocmd InsertEnter * se cul " 用淺色高亮當前行 set foldenable " 允許折疊set foldmethod=manual " 手動折疊 set nocompatible "去掉討厭的有關vi一致性模式,避免以前版本的一些bug和局限 " 映射全選+復制 ctrl+amap <C-A> ggVGYmap! <C-A> <Esc>ggVGYmap <F12> gg=G" 選中狀態下 Ctrl+c 復制vmap <C-c> "+y"去空行nnoremap <F2> :g/^/s*$/d<CR> "代碼補全set completeopt=preview,menu "共享剪貼板set clipboard+=unnamed " Tab鍵的寬度set tabstop=4" 統一縮進為4set softtabstop=4set shiftwidth=4" 不要用空格代替制表符set noexpandtab" 在行和段開始處使用制表符set smarttab"禁止生成臨時文件set nobackupset noswapfile"搜索忽略大小寫set ignorecase"搜索逐字符高亮set hlsearchset incsearchset gdefault "行內替換set encoding=utf-8set fileencodings=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936,utf-16,big5,euc-jp,latin1 ""編碼設置set guifont=Menlo:h16:cANSI "設置字體set langmenu=zn_CN.UTF-8set helplang=cn "語言設置set ruler "在編輯過程中,在右下角顯示光標位置的狀態行set laststatus=1 "總是顯示狀態行set showcmd "在狀態行顯示目前所執行的命令,未完成的指令片段也會顯示出來set scrolloff=3 "光標移動到buffer的頂部和底部時保持3行的距離"""""""set autowrite "在切換buffer時自動保存當前文件"set showmatchset selection=exclusiveset selectmode=mouse,keyset wildmenu "增強模式中的命令行自動完成操作set linespace=2 "字符間插入的像素行數目set whichwrap=b,s,<,>,[,] "開啟normal 或visual模式下的backspace鍵空格鍵,左右方向鍵,insert或replace模式下的左方向鍵,右方向鍵的跳行功能filetype plugin indent on"分為三部分命令:file on,file plugin on,file indent on 分別是自動識別文件類型, 用用文件類型腳本,使用縮進定義文件""]""filetype on "打開文件類型檢測功能autocmd BufNewFile *.cpp,*.[ch] exec ":call SetTitle()"func SetTitle() call setline(1,"/************************************************************************") call append(line("."), " > File Name: ".expand("%")) call append(line(".")+1, " > Author: lsh") call append(line(".")+2, " > Mail: lsh1999mail@163.com ") call append(line(".")+3, " > Created Time: ".strftime("%c")) call append(line(".")+4, "************************************************************************/") call append(line(".")+5, "") if &filetype == 'cpp' call append(line(".")+6, "#include<iostream>") call append(line(".")+7, "using namespace std;") call append(line(".")+8, "") endif if &filetype == 'c' call append(line(".")+6, "#include<stdio.h>") call append(line(".")+7, "") endif "新建文件后,自動定位到文件末尾(這個功能實際沒有被實現,即下面的語句無效,暫不知道原因) autocmd BufNewFile * normal Gendfunc"C,C++ 按F5編譯運行map <F5> :call CompileRunGcc()<CR>func! CompileRunGcc() exec "w" if &filetype == 'c' exec "!g++ % -o %<" exec "!time ./%<" elseif &filetype == 'cpp' exec "!g++ % -o %<" exec "!time ./%<" endif endfunc"C,C++的調試map <F8> :call Rungdb()<CR>func! Rungdb()exec "w"exec "!g++ % -g -o %<"exec "!gdb ./%<"endfunc"set tags=/home/lsh/files/tagslet Tlist_Auto_Open = 1let Tlist_Ctags_Cmd = '/usr/local/bin/ctags'let Tlist_Show_One_File = 1let Tlist_Exit_OnlyWindow = 1""""""""""""""""""""""""
總結
以上所述是小編給大家介紹的定義vim配置文件vimrc用于c/c++編程,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
新聞熱點
疑難解答