1. 程式人生 > >自定義vim配置文件vimrc,用於c/c++編程

自定義vim配置文件vimrc,用於c/c++編程

which pfile tst nco 檢測 str 字體 normal ada

  vim作為Linux下廣受贊譽的代碼編輯器,其獨特的純命令行操作模式可以很大程度上方便編程工作,通過自定義vim配置文件可以實現對vim功能的個性化設置。

  vim配置文件一般有兩份,屬於root的/etc/vim/vimrc和屬於當前用戶的~/.vimrc,兩者都可以配置vim,而當兩者配置信息有沖突時,以後者為準。

  我的/etc/vim/vimrc文件內容如下:

runtime! debian.vim

syntax on

set showmatch

set nu

set autoindent

set cindent

set mouse=a

if filereadable("etc/vim/vimrc.local
") source /etc/vim/vimrc.local endif

  我的當前用戶vim配置文件~/.vimrc內容如下:

inoremap  ‘‘<ESC>i
inoremap " ""<ESC>i
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {<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,menu set shortmess=atI " 啟動的時候不顯示那個援助烏幹達兒童的提示 set showcmd "輸出的命令顯示出來 autocmd InsertLeave * se nocul " 用淺色高亮當前行 autocmd InsertEnter * se cul " 用淺色高亮當前行 set foldenable " 允許折疊 set foldmethod=manual " 手動折疊 set nocompatible "去掉討厭的有關vi一致性模式,避免以前版本的一些bug和局限 " 映射全選+復制 ctrl+a map <C-A> ggVGY map! <C-A> <Esc>ggVGY map <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 " 統一縮進為4 set softtabstop=4 set shiftwidth=4 " 不要用空格代替制表符 set noexpandtab " 在行和段開始處使用制表符 set smarttab "禁止生成臨時文件 set nobackup set noswapfile "搜索忽略大小寫 set ignorecase "搜索逐字符高亮 set hlsearch set incsearch set gdefault "行內替換 set encoding=utf-8 set 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-8 set helplang=cn "語言設置 set ruler "在編輯過程中,在右下角顯示光標位置的狀態行 set laststatus=1 "總是顯示狀態行 set showcmd "在狀態行顯示目前所執行的命令,未完成的指令片段也會顯示出來 set scrolloff=3 "光標移動到buffer的頂部和底部時保持3行的距離""""""" set autowrite "在切換buffer時自動保存當前文件" set showmatch set selection=exclusive set selectmode=mouse,key set 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: [email protected] ") 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 G endfunc "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/tags let Tlist_Auto_Open = 1 let Tlist_Ctags_Cmd = /usr/local/bin/ctags let Tlist_Show_One_File = 1 let Tlist_Exit_OnlyWindow = 1 """"""""""""""""""""""""

自定義vim配置文件vimrc,用於c/c++編程