Linux配置VIM

       配置⽂文件的位置
在⽬目錄 /etc/ 下⾯面,有個名爲vimrc的文件,這是系統中公共的vim配置文件,對所有⽤用戶都有效。而在每個用戶的主目錄下,都可以自己建立私有的配置⽂文件,命名爲:“.vimrc”。例如,/root⽬目錄下,通常已經存在一個.vimrc⽂文件。
1. 切換自己的登陸名稱 su XXX 輸⼊入密碼即可
2. 設置語法高亮
syntax on
3. 顯示行號
set nu
4. 設置縮進的空格數爲4
set shiftwidth=4
BIT科技 ?10
BIT科技 僅學習交流使⽤用
5. 安裝TagList 插件
http://www.vim.org/scripts/script.php?script_id=273
下載taglist_xx.zip ,解壓完成,將解壓出來的doc的內容放到~/.vim/doc, 將
解壓出來的plugin下的內容拷貝到~/.vim/plugin
7. 在~/.vimrc 中添加:
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Window=1
6. 安裝⽂文件瀏覽器和窗⼜⼝口管理器 -- 插件: WinManager
http://www.vim.org/scripts/script.php?script_id=95
下載winmanager.zip,2.X版本以上的。
解壓winmanager.zip,將解壓出來的doc的內容放到~/.vim/doc, 將解壓出來
的plugin下的內容拷貝到~/.vim/plugin
7. 在~/.vimrc 中添加:
let g:winManagerWindowLayout=‘FileExplorer|TagList'
nmap wm :WMToggle<cr>
8. 然後重啓vim, 打開~/XXX.c或~/XXX.cpp, 在normal狀態下輸入"wm", 你將
看到上圖的效果。

將以下命令添加在Linux系統的.vimrc文件中,也可以在下面兩個鏈接中下載壓縮包,然後添加。由於.vimrc文件是隱藏文件,所以要先設置隱藏文件可見。 

       配置好後vim的編輯界面如下圖:


如下是一些配置文件的作用:

  1 map <F9> :call SaveInputData()<CR>                                                                                                                       
  2 func! SaveInputData()
  3     exec "tabnew"
  4     exec 'normal "+gP'
  5     exec "w! /tmp/input_data"
  6 endfunc
  7 
  8 
  9 
 10 
 11 "colorscheme torte
 12 "colorscheme murphy
 13 "colorscheme desert 
 14 "colorscheme desert 
 15 "colorscheme elflord
 16 colorscheme ron
 17 
 18 
 19 
 20 
 21 "set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
 22 "set termencoding=utf-8
 23 "set encoding=utf-8
 24 "set fileencodings=ucs-bom,utf-8,cp936
 25 "set fileencoding=utf-8
 26 
 27 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 28 " 顯示相關  
 29 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 30 "set shortmess=atI   " 啓動的時候不顯示那個援助烏干達兒童的提示  
 31 "winpos 5 5          " 設定窗口位置  
 32 "set lines=40 columns=155    " 設定窗口大小  
 33 set go=             " 不要圖形按鈕  
 34 "color asmanian2     " 設置背景主題  
 35 "set guifont=Courier_New:h10:cANSI   " 設置字體  
 36 "syntax on           " 語法高亮  
 37 autocmd InsertLeave * se nocul  " 用淺色高亮當前行  
 38 autocmd InsertEnter * se cul    " 用淺色高亮當前行  
 39 "set ruler           " 顯示標尺  
 40 set showcmd         " 輸入的命令顯示出來,看的清楚些  
 41 "set cmdheight=1     " 命令行(在狀態行下)的高度,設置爲1  
 42 "set whichwrap+=<,>,h,l   " 允許backspace和光標鍵跨越行邊界(不建議)  
 43 "set scrolloff=3     " 光標移動到buffer的頂部和底部時保持3行距離  
 44 set novisualbell    " 不要閃爍(不明白)  
 45 set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}   "狀態行顯示的內容  
 46 set laststatus=1    " 啓動顯示狀態行(1),總是顯示狀態行(2)  
 47 set foldenable      " 允許摺疊  
 48 set foldmethod=manual   " 手動摺疊  
 49 "set background=dark "背景使用黑色 
 50 set nocompatible  "去掉討厭的有關vi一致性模式,避免以前版本的一些bug和侷限  
 51 " 顯示中文幫助
 52 if version >= 603
 53     set helplang=cn
 54     set encoding=utf-8
 55 endif
 56 " 設置配色方案
 57 "colorscheme murphy
 58 "字體 
 59 "if (has("gui_running")) 
 60 "   set guifont=Bitstream\ Vera\ Sans\ Mono\ 10 
 61 "endif 
 62 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 63 """""新文件標題
 64 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 65 "新建.c,.h,.sh,.java文件,自動插入文件頭 
 66 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"                                                                                      
 67 ""定義函數SetTitle,自動插入文件頭 
 68 func SetTitle() 
 69     "如果文件類型爲.sh文件 
 70     if &filetype == 'sh'
 71         call setline(1,"\#########################################################################")
 72         call append(line("."), "\# File Name: ".expand("%")) 
 73         call append(line(".")+1, "\# Author: ma6174")                                                                                                    
 74         call append(line(".")+2, "\# mail: [email protected]") 
 75         call append(line(".")+3, "\# Created Time: ".strftime("%c")) 
 76         call append(line(".")+4, "\#########################################################################") 
 77         call append(line(".")+5, "\#!/bin/bash") 
 78         call append(line(".")+6, "") 
 79     else 
 80         call setline(1, "/*************************************************************************") 
 81         call append(line("."), "    > File Name: ".expand("%")) 
 82         call append(line(".")+1, "  > Author: ma6174") 
 83         call append(line(".")+2, "  > Mail: [email protected] ") 
 84         call append(line(".")+3, "  > Created Time: ".strftime("%c")) 
 85         call append(line(".")+4, " ************************************************************************/") 
 86         call append(line(".")+5, "")
 87     endif
 88     if &filetype == 'cpp'
 89         call append(line(".")+6, "#include<iostream>")
 90         call append(line(".")+7, "using namespace std;")
 91         call append(line(".")+8, "")
 92     endif
 93     if &filetype == 'c'
 94         call append(line(".")+6, "#include<stdio.h>")
 95         call append(line(".")+7, "")
 96     endif
 97     "   if &filetype == 'java'
 98     "       call append(line(".")+6,"public class ".expand("%"))
 99     "       call append(line(".")+7,"")
100     "   endif
101     "新建文件後,自動定位到文件末尾
102     autocmd BufNewFile * normal G
103 endfunc 
104 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
105 "鍵盤命令
 107 
108 nmap <leader>w :w!<cr>
109 nmap <leader>f :find<cr>
110 
111 " 映射全選+複製 ctrl+a
112 map <C-A> ggVGY
113 map! <C-A> <Esc>ggVGY
114 map <F12> gg=G
115 " 選中狀態下 Ctrl+c 複製
116 vmap <C-c> "+y
117 "去空行  
118 nnoremap <F2> :g/^\s*$/d<CR> 
119 "比較文件  
120 nnoremap <C-F2> :vert diffsplit 
121 "新建標籤  
122 map <M-F2> :tabnew<CR>  
123 "列出當前目錄文件  
124 map <F3> :tabnew .<CR>  
125 "打開樹狀文件目錄  
126 map <C-F3> \be  
127 "C,C++ 按F5編譯運行
128 map <F5> :call CompileRunGcc()<CR>
129 func! CompileRunGcc()
130     exec "w"
131     if &filetype == 'c'
132         exec "!g++ % -o %<"
133         exec "! ./%<"
134     elseif &filetype == 'cpp'
135         exec "!g++ % -o %<"
136         exec "! ./%<"
137     elseif &filetype == 'java' 
138         exec "!javac %" 
139         exec "!java %<"                                                                                                                                  
140     elseif &filetype == 'sh'
141         :!./%
142     elseif &filetype == 'py'
143         exec "!python %"
144         exec "!python %<"
145     endif
146 endfunc
147 "C,C++的調試
148 map <F8> :call Rungdb()<CR>
149 func! Rungdb()
150     exec "w"
151     exec "!g++ % -g -o %<"
152     exec "!gdb ./%<"
153 endfunc
154 
155 
156 
157 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
158 ""實用設置
159 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
160 " 設置當文件被改動時自動載入
161 set autoread
162 " quickfix模式
163 autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
164 "代碼補全 
165 set completeopt=preview,menu 
166 "允許插件  
167 filetype plugin on
168 "共享剪貼板  
169 set clipboard+=unnamed 
170 "從不備份  
171 set nobackup
172 "make 運行
173 :set makeprg=g++\ -Wall\ \ %
174 "自動保存
175 set autowrite                                                                                                                                            
176 set ruler                   " 打開狀態欄標尺
177 set cursorline              " 突出顯示當前行
178 set magic                   " 設置魔術
 179 set guioptions-=T           " 隱藏工具欄
180 set guioptions-=m           " 隱藏菜單欄
181 "set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
182 " 設置在狀態行顯示的信息
183 set foldcolumn=0
184 set foldmethod=indent 
185 set foldlevel=3 
186 set foldenable              " 開始摺疊
187 " 不要使用vi的鍵盤模式,而是vim自己的
188 set nocompatible
189 " 語法高亮
190 set syntax=on
191 " 去掉輸入錯誤的提示聲音
192 set noeb
193 " 在處理未保存或只讀文件的時候,彈出確認
194 set confirm
195 " 自動縮進
196 set autoindent
197 set cindent
198 " Tab鍵的寬度
199 set tabstop=4
200 " 統一縮進爲4
201 set softtabstop=4
202 set shiftwidth=4
203 " 不要用空格代替製表符
204 set noexpandtab
205 " 在行和段開始處使用製表符
206 set smarttab
207 " 顯示行號
208 set number
209 " 歷史記錄數
210 set history=1000
211 "禁止生成臨時文件                                                                                                                                        
212 set nobackup
213 set noswapfile
214 "搜索忽略大小寫
215 set ignorecase
216 "搜索逐字符高亮
217 set hlsearch
218 set incsearch
219 "行內替換
220 set gdefault
221 "編碼設置
222 set enc=utf-8
223 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
224 "語言設置
225 set langmenu=zh_CN.UTF-8
226 set helplang=cn
227 " 我的狀態行顯示的內容(包括文件類型和解碼)
228 "set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
229 "set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
230 " 總是顯示狀態行
231 set laststatus=2
232 " 命令行(在狀態行下)的高度,默認爲1,這裏是2
233 set cmdheight=2
234 " 偵測文件類型
235 filetype on
236 " 載入文件類型插件
237 filetype plugin on
238 " 爲特定文件類型載入相關縮進文件
239 filetype indent on
240 " 保存全局變量
241 set viminfo+=!
242 " 帶有如下符號的單詞不要被換行分割
243 set iskeyword+=_,$,@,%,#,-
244 " 字符間插入的像素行數目
245 set linespace=0                                                                                                                                          
246 " 增強模式中的命令行自動完成操作
247 set wildmenu
248 " 使回格鍵(backspace)正常處理indent, eol, start等
249 set backspace=2
250 " 允許backspace和光標鍵跨越行邊界
251 set whichwrap+=<,>,h,l
252 " 可以在buffer的任何地方使用鼠標(類似office中在工作區雙擊鼠標定位)
253 set mouse=a
254 set selection=exclusive
255 set selectmode=mouse,key
256 " 通過使用: commands命令,告訴我們文件的哪一行被改變過
257 set report=0
258 " 在被分割的窗口間顯示空白,便於閱讀
259 set fillchars=vert:\ ,stl:\ ,stlnc:\
260 " 高亮顯示匹配的括號
261 set showmatch
262 " 匹配括號高亮的時間(單位是十分之一秒)
263 set matchtime=1
264 " 光標移動到buffer的頂部和底部時保持3行距離
265 set scrolloff=3
266 " 爲C程序提供自動縮進
267 set smartindent
268 " 高亮顯示普通txt文件(需要txt.vim腳本)
269 au BufRead,BufNewFile *  setfiletype txt
270 "自動補全
271 :inoremap ( ()<ESC>i
272 :inoremap ) <c-r>=ClosePair(')')<CR>
273 ":inoremap { {<CR>}<ESC>O
274 ":inoremap } <c-r>=ClosePair('}')<CR>
275 :inoremap [ []<ESC>i
276 :inoremap ] <c-r>=ClosePair(']')<CR>
277 :inoremap " ""<ESC>i
278 :inoremap ' ''<ESC>i
279 function! ClosePair(char)
280     if getline('.')[col('.') - 1] == a:char
281         return "\<Right>"
282     else
283         return a:char                                                                                                                                    
284     endif
285 endfunction
286 filetype plugin indent on
278 :inoremap ' ''<ESC>i
279 function! ClosePair(char)
280     if getline('.')[col('.') - 1] == a:char
281         return "\<Right>"
282     else
283         return a:char
284     endif
285 endfunction
286 filetype plugin indent on 
287 "打開文件類型檢測, 加了這句纔可以用智能補全
288 set completeopt=longest,menu
289 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
290 
291 
292 
293 
294 
295 
296 "NERDtee設定
297 let NERDChristmasTree=1
298 let NERDTreeAutoCenter=1
299 let NERDTreeBookmarksFile=$VIM.'\Data\NerdBookmarks.txt'
300 let NERDTreeMouseMode=2
301 let NERDTreeShowBookmarks=1
302 let NERDTreeShowFiles=1
303 let NERDTreeShowHidden=1
304 let NERDTreeShowLineNumbers=1
305 let NERDTreeWinPos='left'
306 let NERDTreeWinSize=31
307 nnoremap f :NERDTreeToggle
308 map <F7> :NERDTree<CR>
309 let Tlist_Show_One_File=1
310 let Tlist_Exit_OnlyWindow=1
311 let Tlist_Use_Right_Window=1
312 let g:winManagerWindowLayout='FileExplorer|TagList'
313 nmap wm :WMToggle<cr>'                                                                                                                                   
~/.vimrc [FORMAT=unix] [TYPE=VIM] [POS=313,22][100%] 19/02/17 - 19:46                                                                                        



                                                                                        



                                                                                   



                                                                                    



                                                                                    



                                                                                         



                                                                           



                                                                                    



                                                                                            




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章