個人vim配置文件

使用了總計8個小時,閱讀他人配置,理解,篩選,修改,最後造成了本身的配置html

"""""新文件標題
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"新建.c,.h,.sh,.java文件,自動插入文件頭 
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" 
""定義函數SetTitle,自動插入文件頭 
func SetTitle() 
    "若是文件類型爲.sh文件 
    if &filetype == 'sh' 
        call setline(1,"\#########################################################################") 
        call append(line("."), "\# File Name: ".expand("%")) 
        call append(line(".")+1, "\# Author: zh") 
        call append(line(".")+2, "\# mail: 574932286@qq.com") 
        call append(line(".")+3, "\# Created Time: ".strftime("%c")) 
        call append(line(".")+4, "\#########################################################################") 
        call append(line(".")+5, "\#!/bin/bash") 
        call append(line(".")+6, "") 
    else 
        call setline(1, "/*************************************************************************") 
        call append(line("."), "    > File Name: ".expand("%")) 
        call append(line(".")+1, "    > Author: zh") 
        call append(line(".")+2, "    > Mail: 574932286@qq.com ") 
        call append(line(".")+3, "    > Created Time: ".strftime("%c")) 
        call append(line(".")+4, " ************************************************************************/") 
        call append(line(".")+5, "")
    endif
    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,"int main(void)")
        call append(line(".")+8,"{")
        call append(line(".")+9, "   return 0;")
        call append(line(".")+10,"}")
    endif
    "    if &filetype == 'java'
    "        call append(line(".")+6,"public class ".expand("%"))
    "        call append(line(".")+7,"")
    "    endif
    "新建文件後,自動定位到文件末尾
    autocmd BufNewFile * normal G
endfunc

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"」「」「」「」「」「」「」「」鍵盤命令"""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
nmap <leader>w :w!<cr>
nmap <leader>f :find<cr>

" 映射全選+複製 ctrl+a
map <C-A> ggVGY
map! <C-A> <Esc>ggVGY
""本身想試一下的保存
""map <C-s> :w<CR>
"map <F12> gg=G 到文首
" 選中狀態下 Ctrl+c 複製
vmap <C-c> "+y
"去空行  
nnoremap <C-F2> :g/^\s*$/d<CR> 
"比較文件 ,刪除文件中的空行,但一把不用 
nnoremap <F2> :vert diffsplit 
"新建標籤  
map <M-F2> :tabnew<CR>  
"列出當前目錄文件 
map <F3> :tabnew .<CR>  
"打開樹狀文件目錄,算是有用把,主要針對標籤頁操做  
map <C-F3> \be  
"C,C++ 按F5編譯運行
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
    exec "w"
    if &filetype == 'c'
        exec "!gcc -g  % -o %<"
        exec "! ./%<"
    elseif &filetype == 'cpp'
        exec "!g++ % -o %<"
        exec "! ./%<"
    elseif &filetype == 'java' 
        exec "!javac %" 
        exec "!java %<"
    elseif &filetype == 'sh'
        :!./%
    elseif &filetype == 'py'
        exec "!python %"
        exec "!python %<"
    endif
endfunc
"C,C++的調試
map <F8> :call Rungdb()<CR>
func! Rungdb()
    exec "w"
    exec "!g++ % -g -o %<"
    exec "!gdb ./%<"
endfunc
"創建基本c框架


"""""""""""""""""""""""""""""""實用設置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nobackup
"永不備份
set magic

""set guioptions-=T           " 隱藏工具欄

" 不要使用vi的鍵盤模式,而是vim本身的
set nocompatible

" 去掉輸入錯誤的提示聲音
set noeb

" 在處理未保存或只讀文件的時候,彈出確認,有用
set confirm

" 自動縮進
""set autoindent
"autoindent 就是自動縮進的意思,當你在輸入狀態用回車鍵插入一個新行,或
"者在 normal 狀態用 o 或者 O 插入一個新行時,autoindent 會自動地將當前行的縮進拷貝到新行,也就是"自動對齊」,
"固然了,若是你在新行沒有輸入任何字符,那麼這個縮進將自動刪除。
""set cindent
"cindent 就不一樣了,它會按照 C 語言的語法,自動地調整縮進的長度,
"好比,當你輸入了半條語句而後回車時,縮進會自動增長一個 TABSTOP 值,
"當你鍵入了一個右花括號時,會自動減小一個 TABSTOP 值。i
" 爲C程序提供自動縮進
set smartindent
"smartindent 在這種縮進模式中,每一行都和前一行有相同的
"縮進量,同時這種縮進形式能正確的識別出花括號,當遇到右花括號(}),
"則取消縮進形式。此外還增長了識別C語言關鍵字的功能。
"若是一行是以#開頭的,那麼這種格式將會被特殊對待而不採用縮進格式。
" Tab鍵的寬度
" 上面的三個模式已經哪個都是能夠的,開一個就夠了
set tabstop=4
" 統一縮進爲4
set softtabstop=4
set shiftwidth=4


" 不要用空格代替製表符
set noexpandtab
" 在行和段開始處使用製表符
set smarttab

" 歷史記錄數
set history=1000

"禁止生成臨時文件
set nobackup
set noswapfile


syntax enable
colorscheme koehler  "設置主題
"顯示相關

"設置字體
 set guifont=Bitstream_Vera_Sans_Mono:h10:cANSI
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  a)0 O o  1 l ; :
"  區別很是明顯,而且還有一點優點是你們常常會忘記的;:和中文的字體;
"  :區別也很明顯,十分適合編程
"          b)字體圓滑,支持cleartype,加上配色很是舒服,不會有鋸齒感
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

 set shortmess=atI "不啓動烏干達兒童救助i
"winpos 20 20  "設置窗口位
set number

syntax on "語法高亮
autocmd InsertLeave * se cul "在編輯模式下用淺色高亮顯示當前行
"set ruler
"顯示標尺 暫時不知道用途

set showcmd "輸入命令顯示出來,不知道做用

set novisualbell    " 不要閃爍(不明白)  
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}   "狀態行顯示的內容  
set laststatus=2   " 啓動顯示狀態行(1),老是顯示狀態行(2)  
set cmdheight=1 " 命令行(在狀態行下)的高度,默認爲1,設置成一好看,本身暫時用不了一行以上的命令行

set foldenable      " 容許摺疊 
set fdm=marker
set foldcolumn=0
set foldlevel=3 "關於摺疊的一些設置,但看不懂
 
"set background=dark "背景使用黑色 
set nocompatible  "去掉討厭的有關vi一致性模式,避免之前版本的一些bug和侷限  
" 顯示中文幫助
if version >= 603
    set helplang=cn
    set encoding=utf-8
endif

 
"字體 
if (has("gui_running")) 
   set guifont=Bitstream\ Vera\ Sans\ Mono\ 10 
endif 

"自動補全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
":inoremap { {<CR>}<ESC>O
":inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
    if getline('.')[col('.') - 1] == a:char
        return "\<Right>"
    else
        return a:char
    endif
endfunction



filetype plugin indent on 
"打開文件類型檢測, 加了這句才能夠用智能補全
""set completeopt=longest,menu
"關掉只能補全時的預覽窗口

" 偵測文件類型
filetype on
" 載入文件類型插件
filetype plugin on
" 爲特定文件類型載入相關縮進文件
filetype indent on

"搜索逐字符高亮
set hlsearch

"搜索忽略大小寫
"set ignorecase

" 使回格鍵(backspace)正常處理indent, eol, start等,解決了退格鍵無效了問題
set backspace=2

" 光標移動到buffer的頂部和底部時保持3行距離,再往下移動頁面時,光標與最後一行始終保持4格的距離
set scrolloff=4

" 高亮顯示匹配的括號,匹配括號的做用
set showmatch
" 匹配括號高亮的時間(單位是十分之一秒),不知道是幹啥的,就保留默認
set matchtime=1

" 能夠在buffer的任何地方使用鼠標(相似office中在工做區雙擊鼠標定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key

" 加強模式中的命令行自動完成操做,看不懂,用下面的那個
"在命令模式下使用 Tab 自動補全的時候,"將補全內容使用一個漂亮的單行菜單形式顯示出來
set wildmenu

" 帶有以下符號的單詞不要被換行分割,iskeywordy用於定義一個單詞是有什麼構成的,而下面的語句是講_,$...等符號算進構成單詞的符號
set iskeyword+=_,$,@,%,#,-

"" 容許backspace和光標鍵跨越行邊界,雖然高明白了,但好像有什麼東西已經實現了該設置
"set whichwrap+=<,>,h,l

" 高亮顯示普通txt文件(須要txt.vim腳本)
au BufRead,BufNewFile *  setfiletype txt
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""





"敲入字符時搜索
set incsearch
""行內替換, 替換時全部的行內匹配都被替換,而不是隻有第一個"
set gdefault"
""編碼設置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
"" encoding: Vim 內部使用的字符編碼方式,包括 Vim 的 buffer (緩衝區)、菜單文本、消息文本等。默認是根據你的locale選擇.用戶手冊上建議只在 .vimrc 中改變它的值,事實上彷佛也只有在.vimrc 中改變它的值纔有意義。你能夠用另一種編碼來編輯和保存文件,如你的vim的encoding爲utf-8,所編輯的文件採用cp936編碼,vim會自動將讀入的文件轉成utf-8(vim的能讀懂的方式),而當你寫入文件時,又會自動轉回成cp936(文件的保存編碼). 
" fileencoding: Vim 中當前編輯的文件的字符編碼方式,Vim 保存文件時也會將文件保存爲這種字符編碼方式 (不論是否新文件都如此)。 
"" fileencodings: Vim自動探測fileencoding的順序列表, 啓動時會按照它所列出的字符編碼方式逐一探測即將打開的文件的字符編碼方式,而且將 fileencoding 設置爲最終探測到的字符編碼方式。所以最好將Unicode 編碼方式放到這個列表的最前面,將拉丁語系編碼方式 latin1 放到最後面。 
"" termencoding: Vim 所工做的終端 (或者 Windows 的 Console 窗口) 的字符編碼方式。若是vim所在的term與vim編碼相同,則無需設置。如其否則,你能夠用vim的termencoding選項將自動轉換成term的編碼.這個選項在 Windows 下對咱們經常使用的 GUI 模式的 gVim 無效,而對 Console 模式的Vim 而言就是 Windows 控制檯的代碼頁,而且一般咱們不須要改變它。 
""好了,解釋完了這一堆容易讓新手犯糊塗的參數,咱們來看看 Vim 的多字符編碼方式支持是如何工做的。 
""1. Vim 啓動,根據 .vimrc 中設置的 encoding 的值來設置 buffer、菜單文本、消息文的字符編碼方式。 
""2. 讀取須要編輯的文件,根據 fileencodings 中列出的字符編碼方式逐一探測該文件編碼方式。並設置 fileencoding 爲探測到的,看起來是正確的 (注1) 字符編碼方式。 
""3. 對比 fileencoding 和 encoding 的值,若不一樣則調用 iconv 將文件內容轉換爲encoding 所描述的字符編碼方式,而且把轉換後的內容放到爲此文件開闢的 buffer 裏,此時咱們就能夠開始編輯這個文件了。注意,完成這一步動做須要調用外部的 iconv.dll(注2),你須要保證這個文件存在於 $VIMRUNTIME 或者其餘列在 PATH 環境變量中的目錄裏。 
""4. 編輯完成後保存文件時,再次對比 fileencoding 和 encoding 的值。若不一樣,再次調用 iconv 將即將保存的 buffer 中的文本轉換爲 fileencoding 所描述的字符編碼方式,並保存到指定的文件中。一樣,這須要調用 iconv.dll因爲 Unicode 可以包含幾乎全部的語言的字符,並且 Unicode 的 UTF-8 編碼方式又是很是具備性價比的編碼方式 (空間消耗比 UCS-2 小),所以建議 encoding 的值設置爲utf-8。這麼作的另外一個理由是 encoding 設置爲 utf-8 時,Vim 自動探測文件的編碼方式會更準確 (或許這個理由纔是主要的 ;)。咱們在中文 Windows 裏編輯的文件,爲了兼顧與其餘軟件的兼容性,文件編碼仍是設置爲 GB2312/GBK 比較合適,所以 fileencoding 建議設置爲 chinese (chinese 是個別名,在 Unix 裏表示 gb2312,在 Windows 裏表示cp936,也就是 GBK 的代碼頁)。 


""語言設置,使用中文菜單, 並使用 UTF-8 編碼。 若是沒有這句的話, 在非 UTF-8的系統, 如 Windows 下, 用了 UTF-8 的 encoding 後菜單會亂碼。 
set langmenu=zh_CN.UTF-8
"
"" 保存全局變量
set viminfo+=!
"" 字符間插入的像素行數目,不知做用
set linespace=0
"
"" 經過使用: commands命令,告訴咱們文件的哪一行被改變過,不知因此然
set report=0
"" 在被分割的窗口間顯示空白,便於閱讀,不知因此然
set fillchars=vert:\ ,stl:\ ,stlnc:\
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""





"NERDtee設定 文件管理器插件—NerdTree,沒有安裝,因此用不上
""let NERDChristmasTree=1
""let NERDTreeAutoCenter=1
""let NERDTreeBookmarksFile=$VIM.'\Data\NerdBookmarks.txt'
""let NERDTreeMouseMode=2
""let NERDTreeShowBookmarks=1
""let NERDTreeShowFiles=1
""let NERDTreeShowHidden=1
""let NERDTreeShowLineNumbers=1
""let NERDTreeWinPos='left'
""let NERDTreeWinSize=31
""nnoremap f :NERDTreeToggle
""map <F7> :NERDTree<CR> 
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""插件設置""""""""""""""""""""""""''''""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""'

相關連接 java

1.VIM配置初級指南python

2.Vim(gvim)編程字體推薦linux

3.Vim命令合集ios

4.vi set用法-vi set命令  c++

5.viminfo詳解web

6.vim技巧: iskeyword 與 單詞間移動光標的設置編程

7.指尖上的博客vim

8.vim筆記bash

9.VIM設置代碼摺疊

 

 1 "----------------------------------------
 2 "        vim 配置
 3 "       2014 11 23
 4 "----------------------------------------
 5 "
 6 set nocompatible              " be iMproved, required
 7 filetype off                  " required
 8 
 9 " set the runtime path to include Vundle and initialize
10  set rtp+=~/.vim/bundle/Vundle.vim
11  call vundle#begin()
12 
13  Plugin 'gmarik/Vundle.vim'
14  Plugin 'taglist.vim'
15  Plugin 'minibufexpl.vim'
16  Plugin 'winmanager'
17  Plugin 'clang-complete'
18 Plugin 'supertab'
19 Plugin 'scrooloose/syntastic'
20 Plugin 'Lokaltog/vim-powerline'
21 Plugin 'WolfgangMehner/vim-plugins'
22  call vundle#end()            " required
23 "----------基本設置----------------------
24 filetype plugin indent on
25 syntax on                        " 使用語法高亮
26 set autoread                     " 使用不兼容 vi 的模式
27 
28 set autoindent                " 設置自動對齊(縮進)
29 set smartindent                    " 智能對齊方式
30 set wrap              " 自動換行
31 set linebreak              " 整詞換行
32 
33 set cindent                   " 使用 C/C++ 語言的自動縮進方式
34 set backspace=2               " 設置退格鍵可用
35 set mouse=a                   " 使用鼠標
36 set number                   " 顯示行號
37 set cul                          " 顯示當前行下劃線
38 
39 set tabstop=8                    " 設置製表符(tab鍵)的寬度
40 set softtabstop=8                " 設置軟製表符的寬度
41 set expandtab             " Tab替換空格
42 
43 scriptencoding utf-8             " 設置編碼
44 
45 set cursorline                    " 高亮當前行
46                    
47 
48 set nobackup
49 set noswapfile                   "禁止生成臨時文件
50 set wildmenu                     "補全命令
51 
52 set scrolloff=4                  " 光標移動到buffer的頂部和底部時保持3行距離,再往下移動頁面時,光標與最後一行始終保持4格的距
53 
54 
55 "----------------tags------------------
56 "---------------------------------------
57 "
58 "-------------------- MiniBufferExplorer 的設置----------------------
59 let g:miniBufExplMapWindowNavVim=1        " 按下Ctrl+h/j/k/l,能夠切換到當前窗口的上下左右窗口
60 let g:miniBufExplMapWindowNavArrows=1         " 按下Ctrl+箭頭,能夠切換到當前窗口的上下左右窗口
61 let g:miniBufExplMapCTabSwitchBufs=1         " Ctrl+tab移到下一個窗口;Ctrl+Shift+tab移到上一個窗口
62 let g:miniBufExplModSelTarget=1            " 不要在不可編輯內容的窗口(如TagList窗口)中打開選中的buffer
63 
64 
65 " 設置分屏瀏覽
66 let Tlist_Show_One_File=0
67 let Tlist_Exit_OnlyWindow=1
68 let g:winManagerWindowLayout='FileExplorer|TagList'
69 nmap wm :WMToggle<CR>
70 
71 "------------clang-complete-----------------
72 
73 "----------------------------------------------
74 set completeopt=longest,menu
75 let g:clang_auto_select=1
76 let g:clang_complete_select=1
77 let g:clang_complete_copen=1
78 let g:clant_periodic_quickfix=1
79 let g:clang_snippets=0  
80 let g:clang_close_preview=1  
81 let g:clang_use_library=1 
82 "-------------設置超級TAB的補全--------------
83 let g:SuperTabRetainCompletionType=0
84 let g:SuperTabDefaultCompletionType="<C-X><C-U>"
85 "------------------------------------------------
86 "
87 "------------------- powerline 配置-------------------
88 set nocompatible
89 set laststatus=2
90 set encoding=utf-8
91 set t_Co=256
92 set guifont=PowerlineSymbols\ for\ Powerline 
93 let g:Powerline_symbols='unicode'
94 let g:Powerline_stl_path_style='full'
95 "------------------------------------------------

大致完成

 

完成版

  1 "----------------------------------------
  2 "        vim 配置
  3 "       2014 11 23
  4 "----------------------------------------
  5 "
  6 set nocompatible              " be iMproved, required
  7 filetype off                  " required
  8 
  9 " set the runtime path to include Vundle and initialize
 10  set rtp+=~/.vim/bundle/Vundle.vim
 11  call vundle#begin()
 12 
 13  Plugin 'gmarik/Vundle.vim'
 14  Plugin 'taglist.vim'
 15  Plugin 'minibufexpl.vim'
 16  Plugin 'winmanager'
 17  Plugin 'clang-complete'
 18 Plugin 'supertab'
 19 Plugin 'scrooloose/syntastic'
 20 Plugin 'Lokaltog/vim-powerline'
 21 Plugin 'WolfgangMehner/vim-plugins'
 22 Bundle 'altercation/vim-colors-solarized'
 23 call vundle#end()            " required
 24 "----------基本設置----------------------
 25 filetype plugin indent on
 26 syntax on                        " 使用語法高亮
 27 set autoread                     " 使用不兼容 vi 的模式
 28 
 29 set autoindent                " 設置自動對齊(縮進)
 30 set smartindent                    " 智能對齊方式
 31 set wrap              " 自動換行
 32 set linebreak              " 整詞換行
 33 
 34 set cindent                   " 使用 C/C++ 語言的自動縮進方式
 35 set backspace=2               " 設置退格鍵可用
 36 set mouse=a                   " 使用鼠標
 37 set number                   " 顯示行號
 38 set cul                          " 顯示當前行下劃線
 39 
 40 set tabstop=8                    " 設置製表符(tab鍵)的寬度
 41 set softtabstop=8                " 設置軟製表符的寬度
 42 set expandtab             " Tab替換空格
 43 
 44 scriptencoding utf-8             " 設置編碼
 45 
 46 set cursorline                    " 高亮當前行
 47                    
 48 
 49 set nobackup
 50 set noswapfile                   "禁止生成臨時文件
 51 set wildmenu                     "補全命令
 52 
 53 set scrolloff=4                  " 光標移動到buffer的頂部和底部時保持3行距離,再往下移動頁面時,光標與最後一行始終保持4格的距
 54 
 55 
 56 "----------------tags------------------
 57 "---------------------------------------
 58 "
 59 "-------------------- MiniBufferExplorer 的設置----------------------
 60 let g:miniBufExplMapWindowNavVim=1        " 按下Ctrl+h/j/k/l,能夠切換到當前窗口的上下左右窗口
 61 let g:miniBufExplMapWindowNavArrows=1         " 按下Ctrl+箭頭,能夠切換到當前窗口的上下左右窗口
 62 let g:miniBufExplMapCTabSwitchBufs=1         " Ctrl+tab移到下一個窗口;Ctrl+Shift+tab移到上一個窗口
 63 let g:miniBufExplModSelTarget=1            " 不要在不可編輯內容的窗口(如TagList窗口)中打開選中的buffer
 64 
 65 
 66 " 設置分屏瀏覽
 67 let Tlist_Show_One_File=0
 68 let Tlist_Exit_OnlyWindow=1
 69 let g:winManagerWindowLayout='FileExplorer|TagList'
 70 nmap wm :WMToggle<CR>
 71 
 72 "------------clang-complete-----------------
 73 
 74 "----------------------------------------------
 75 set completeopt=longest,menu
 76 let g:clang_auto_select=1
 77 let g:clang_complete_select=1
 78 let g:clang_complete_copen=1
 79 let g:clant_periodic_quickfix=1
 80 let g:clang_snippets=0  
 81 let g:clang_close_preview=1  
 82 let g:clang_use_library=1 
 83 "-------------設置超級TAB的補全--------------
 84 let g:SuperTabRetainCompletionType=0
 85 let g:SuperTabDefaultCompletionType="<C-X><C-U>"
 86 "------------------------------------------------
 87 "
 88 "------------------- powerline 配置-------------------
 89 set nocompatible
 90 set laststatus=2
 91 set encoding=utf-8
 92 set t_Co=256
 93 set guifont=PowerlineSymbols\ for\ 
 94 let g:Powerline_symbols='unicode'
 95 let g:Powerline_stl_path_style='full'
 96 "------------------------------------------------
 97 
 98 syntax enable
 99 set background=dark
100 colorscheme solarized
101 
102 set foldenable      " 容許摺疊 
103 set fdm=marker
104 set foldcolumn=0
105 set foldlevel=3 "關於摺疊的一些設置,但看不懂
106 
107 
108 " 按下F5,在當前目錄遞歸生成tag文件
109 map <F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q<CR><CR>
110 imap <F5> <ESC>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q<CR><CR>
111 " vim 啓動時自動載入如下tags文件
112 set tags=tags
113 set tags+=./tags
114 " 用就去生成,去放
115 "set tags+=/usr/local/src/linux-3.12.6/tags
116 
117 
118 
119 " QuickFix 插件的設置
120 
121 " 按下F6,執行make編譯程序,並打開quickfix窗口,顯示編譯信息
122 map <F6> :make<CR><CR><CR> :copen<CR><CR>
123 " 按下F7,光標移到上一個錯誤所在的行
124 map <F7> :cp<CR>
125 " 按下F8,光標移到下一個錯誤所在的行
126 map <F8> :cn<CR>
127 " 按下F9,執行make clean
128 map <F9> :make clean<CR><CR><CR>
129 
130 " 如下的映射是使上面的快捷鍵在插入模式下也能用
131 imap <F6> <ESC>:make clean<CR><CR><CR>
132 imap <F7> <ESC>:make<CR><CR><CR> :copen<CR><CR>
133 imap <F8> <ESC>:cp<CR>
134 imap <F9> <ESC>:cn<CR>
135 
136 " 預防手誤
137 cnoremap Q! q!
138 cnoremap Q1 q!
139 command  Q  q
140 command  Wq wq
141 command  WQ wq
142 command  W  w

 

 

版本三

"----------------------------------------
"        vim 配置
"       2014 11 23
"----------------------------------------
"
set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
 set rtp+=~/.vim/bundle/Vundle.vim
 call vundle#begin()

 Plugin 'gmarik/Vundle.vim'
 Plugin 'taglist.vim'
 Plugin 'minibufexpl.vim'
 Plugin 'winmanager'
 Plugin 'clang-complete'
Plugin 'supertab'
Plugin 'scrooloose/syntastic'
Plugin 'Lokaltog/vim-powerline'
Plugin 'WolfgangMehner/vim-plugins'
Bundle 'altercation/vim-colors-solarized'
call vundle#end()            " required
"----------基本設置----------------------
filetype plugin indent on
syntax on                        " 使用語法高亮
set autoread                     " 使用不兼容 vi 的模式

set autoindent                " 設置自動對齊(縮進)
set smartindent                    " 智能對齊方式
set wrap              " 自動換行
set linebreak              " 整詞換行

set cindent                   " 使用 C/C++ 語言的自動縮進方式
set backspace=2               " 設置退格鍵可用
set mouse=a                   " 使用鼠標
set number                   " 顯示行號
set cul                          " 顯示當前行下劃線

set tabstop=8                    " 設置製表符(tab鍵)的寬度
set softtabstop=8                " 設置軟製表符的寬度
set expandtab             " Tab替換空格

scriptencoding utf-8             " 設置編碼

set cursorline                    " 高亮當前行
                   

set nobackup
set noswapfile                   "禁止生成臨時文件
set wildmenu                     "補全命令

set scrolloff=4                  " 光標移動到buffer的頂部和底部時保持3行距離,再往下移動頁面時,光標與最後一行始終保持4格的距


"----------------tags------------------
"---------------------------------------
"
"-------------------- MiniBufferExplorer 的設置----------------------
let g:miniBufExplMapWindowNavVim=1        " 按下Ctrl+h/j/k/l,能夠切換到當前窗口的上下左右窗口
let g:miniBufExplMapWindowNavArrows=1         " 按下Ctrl+箭頭,能夠切換到當前窗口的上下左右窗口
let g:miniBufExplMapCTabSwitchBufs=1         " Ctrl+tab移到下一個窗口;Ctrl+Shift+tab移到上一個窗口
let g:miniBufExplModSelTarget=1            " 不要在不可編輯內容的窗口(如TagList窗口)中打開選中的buffer


" 設置分屏瀏覽
let Tlist_Show_One_File=0
let Tlist_Exit_OnlyWindow=1
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<CR>

"------------clang-complete-----------------

"----------------------------------------------
set completeopt=longest,menu
let g:clang_auto_select=1
let g:clang_complete_select=1
let g:clang_complete_copen=1
let g:clant_periodic_quickfix=1
let g:clang_snippets=0  
let g:clang_close_preview=1  
let g:clang_use_library=1 
"-------------設置超級TAB的補全--------------
let g:SuperTabRetainCompletionType=0
let g:SuperTabDefaultCompletionType="<C-X><C-U>"
"------------------------------------------------
"
"------------------- powerline 配置-------------------
set nocompatible
set laststatus=2
set encoding=utf-8
set t_Co=256
set guifont=PowerlineSymbols\ for\ 
let g:Powerline_symbols='unicode'
let g:Powerline_stl_path_style='full'
"------------------------------------------------

syntax enable
set background=dark
colorscheme solarized

set foldenable      " 容許摺疊 
set fdm=marker
set foldcolumn=0
set foldlevel=3 "關於摺疊的一些設置,但看不懂


" 按下F5,在當前目錄遞歸生成tag文件
map <F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q<CR><CR>
imap <F5> <ESC>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q<CR><CR>
" vim 啓動時自動載入如下tags文件
set tags=tags
set tags+=./tags
" 用就去生成,去放
"set tags+=/usr/local/src/linux-3.12.6/tags

set tags+=/usr/include/tags
set tags+=/usr/include/sys/tags
set tags+=./tags


" QuickFix 插件的設置

" 按下F6,執行make編譯程序,並打開quickfix窗口,顯示編譯信息
map <F6> :make<CR><CR><CR> :copen<CR><CR>
" 按下F7,光標移到上一個錯誤所在的行
map <F7> :cp<CR>
" 按下F8,光標移到下一個錯誤所在的行
map <F8> :cn<CR>
" 按下F9,執行make clean
map <F9> :make clean<CR><CR><CR>

" 如下的映射是使上面的快捷鍵在插入模式下也能用
imap <F6> <ESC>:make<CR><CR><CR> :copen<CR><CR>
imap <F7> <ESC>:cp<CR>
imap <F8> <ESC>:cn<CR>
imap <F9> <ESC>:make clean<CR><CR><CR>

"C,C++ 按F2編譯運行
map <F2> :call CompileRunGcc()<CR>
func! CompileRunGcc()
    exec "w"
    if &filetype == 'c'
          exec "!gcc -g  % -o %<"
          exec ":copen"
    elseif &filetype == 'cpp'
          exec "!g++ % -o %<"
          exec "! ./%<"
    elseif &filetype == 'java' 
          exec "!javac %" 
          exec "!java %<"
    elseif &filetype == 'sh'
          :!./%
    elseif &filetype == 'py'
          exec "!python %"
          exec "!python %<"
    endif
endfunc


"插入模式下的非遞歸映射,自動補全的映射
inoremap <C-F>  <C-X><C-D>


" 預防手誤
cnoremap Q! q!
cnoremap Q1 q!
command  Q  q
command  Wq wq
command  WQ wq
command  W  w
相關文章
相關標籤/搜索