linux下vim配置以及一些常用的快捷鍵


一些常用的vim編輯器快捷鍵:

h」、「j」、「k」、「l」,分別控制光標左、下、上、右移一格。

按「ctrl」+「b」:屏幕往“后”移動一頁。

按「ctrl」+「f」:屏幕往“前”移動一頁。

按「ctrl」+「u」:屏幕往“后”移動半頁。

按「ctrl」+「d」:屏幕往“前”移動半頁。

按數字「0」:移到文章的開頭。

按「G」:移動到文章的最后。

按「$」:移動到光標所在行的“行尾”。

按「^」:移動到光標所在行的“行首”

按「w」:光標跳到下個字的開頭

按「e」:光標跳到下個字的字尾

按「b」:光標回到上個字的開頭

按「#l」:光標移到該行的第#個位置,如:5l,56l。

「x」:每按一次,刪除當前字符。

「#x」:例如,「6x」表示刪除光標所在位置的“后面”6個字符。

「X」:大寫的X,每按一次,刪除光標所在位置的“前面”一個字符。

「#X」:例如,「20X」表示刪除光標所在位置的“前面”20個字符。

「dd」:刪除光標所在行,並用下一行進行填充。

「#dd」:從光標所在行開始刪除#行。

「#G」:「15G」,表示移動光標至文章的第15行行首。

「w」:在冒號輸入字母「w」就可以將文件保存起來。

「q」:按「q」就是退出,如果無法離開vi,可以在「q」后跟一個「!」強制離開vim。

「wq」:一般建議離開時,搭配「w」一起使用,這樣在退出的時候還可以保存文件。

 ZZ 立即保存文件並退出。

p  粘貼

u  撤銷一次

ctrl+r 反撤銷一次

多窗口功能:在命令行模式下輸入:sp,這樣兩個文件就可以同時在一個屏幕上顯示,然后先按下ctrl + w,然后放開所有按鍵后,再按下向下箭頭鍵或者向上箭頭鍵就可以進行窗口的選擇了,如果要關閉一個窗口,直接 : q 即可。

 

我的vimrc文件:

  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\ 11 
 61 "endif 
 62 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 63 "鍵盤命令
 64 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 65 
 66 nmap <leader>w :w!<cr>
 67 nmap <leader>f :find<cr>
 68 
 69 " 映射全選+復制 ctrl+a
 70 map <C-A> ggVGY
 71 map! <C-A> <Esc>ggVGY
 72 map <F12> gg=G
 73 " 選中狀態下 Ctrl+c 復制
 74 vmap <C-c> "+y
 75 "去空行  
 76 nnoremap <F2> :g/^\s*$/d<CR> 
 77 "比較文件  
 78 nnoremap <C-F2> :vert diffsplit 
 79 "新建標簽  
 80 map <M-F2> :tabnew<CR>  
 81 "列出當前目錄文件  
 82 map <F3> :tabnew .<CR>  
 83 "打開樹狀文件目錄  
 84 map <C-F3> \be  
 85 "C,C++ 按F7編譯運行
 86 map <F7> :call CompileRunGcc()<CR>
 87 func! CompileRunGcc()
 88     exec "w"
 89     if &filetype == 'c'
 90         exec "!g++ % -o %<"
 91         exec "! ./%<"
 92     elseif &filetype == 'cpp'
 93         exec "!g++ % -o %<"
 94         exec "! ./%<"
 95     elseif &filetype == 'java' 
 96         exec "!javac %" 
 97         exec "!java %<"
 98     elseif &filetype == 'sh'
 99         :!./%
100     elseif &filetype == 'py'
101         exec "!python %"
102         exec "!python %<"
103     endif
104 endfunc
105 "C,C++的調試
106 map <F5> :call Rungdb()<CR>
107 func! Rungdb()
108     exec "w"
109     exec "!g++ % -g -o %<"
110     exec "!gdb ./%<"
111 endfunc
112 
113 
114 
115 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
116 ""實用設置
117 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
118 " 設置當文件被改動時自動載入
119 set autoread
120 " quickfix模式
121 autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
122 "代碼補全 
123 set completeopt=preview,menu 
124 "允許插件  
125 filetype plugin on
126 "共享剪貼板  
127 set clipboard+=unnamed 
128 "從不備份  
129 set nobackup
130 "make 運行
131 :set makeprg=g++\ -Wall\ \ %
132 "自動保存
133 set autowrite
134 set ruler                   " 打開狀態欄標尺
135 set cursorline              " 突出顯示當前行
136 set magic                   " 設置魔術
137 set guioptions-=T           " 隱藏工具欄
138 set guioptions-=m           " 隱藏菜單欄
139 "set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
140 " 設置在狀態行顯示的信息
141 set foldcolumn=0
142 set foldmethod=indent 
143 set foldlevel=3 
144 set foldenable              " 開始折疊
145 " 不要使用vi的鍵盤模式,而是vim自己的
146 set nocompatible
147 " 語法高亮
148 set syntax=on
149 " 去掉輸入錯誤的提示聲音
150 set noeb
151 " 在處理未保存或只讀文件的時候,彈出確認
152 set confirm
153 " 自動縮進
154 set autoindent
155 set cindent
156 " Tab鍵的寬度
157 set tabstop=4
158 " 統一縮進為4
159 set softtabstop=4
160 set shiftwidth=4
161 " 不要用空格代替制表符
162 set noexpandtab
163 " 在行和段開始處使用制表符
164 set smarttab
165 " 顯示行號
166 set number
167 " 歷史記錄數
168 set history=1000
169 "禁止生成臨時文件
170 set nobackup
171 set noswapfile
172 "搜索逐字符高亮
173 set hlsearch
174 set incsearch
175 "行內替換
176 set gdefault
177 "編碼設置
178 set enc=utf-8
179 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
180 "語言設置
181 set langmenu=zh_CN.UTF-8
182 set helplang=cn
183 " 我的狀態行顯示的內容(包括文件類型和解碼)
184 "set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
185 "set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
186 " 總是顯示狀態行
187 set laststatus=2
188 " 命令行(在狀態行下)的高度,默認為1,這里是2
189 set cmdheight=2
190 " 偵測文件類型
191 filetype on
192 " 載入文件類型插件
193 filetype plugin on
194 " 為特定文件類型載入相關縮進文件
195 filetype indent on
196 " 保存全局變量
197 set viminfo+=!
198 " 帶有如下符號的單詞不要被換行分割
199 set iskeyword+=_,$,@,%,#,-
200 " 字符間插入的像素行數目
201 set linespace=0
202 " 增強模式中的命令行自動完成操作
203 set wildmenu
204 " 使回格鍵(backspace)正常處理indent, eol, start等
205 set backspace=2
206 " 允許backspace和光標鍵跨越行邊界
207 set whichwrap+=<,>,h,l
208 " 可以在buffer的任何地方使用鼠標(類似office中在工作區雙擊鼠標定位)
209 set mouse=a
210 set selection=exclusive
211 set selectmode=mouse,key
212 " 通過使用: commands命令,告訴我們文件的哪一行被改變過
213 set report=0
214 " 在被分割的窗口間顯示空白,便於閱讀
215 set fillchars=vert:\ ,stl:\ ,stlnc:\
216 " 高亮顯示匹配的括號
217 set showmatch
218 " 匹配括號高亮的時間(單位是十分之一秒)
219 set matchtime=1
220 " 光標移動到buffer的頂部和底部時保持3行距離
221 set scrolloff=3
222 " 為C程序提供自動縮進
223 set smartindent
224 " 高亮顯示普通txt文件(需要txt.vim腳本)
225 au BufRead,BufNewFile *  setfiletype txt
226 "自動補全
227 :inoremap ) <c-r>=ClosePair(')')<CR>
228 ":inoremap { {<CR>}<ESC>O
229 ":inoremap } <c-r>=ClosePair('}')<CR>
230 :inoremap ] <c-r>=ClosePair(']')<CR>
231 function! ClosePair(char)
232     if getline('.')[col('.') - 1] == a:char
233         return "\<Right>"
234     else
235         return a:char
236     endif
237 endfunction
238 filetype plugin indent on 
239 "打開文件類型檢測, 加了這句才可以用智能補全
240 set completeopt=longest,menu
241 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
242 
243 
244 
245 
246 
247 
248 "NERDtee設定
249 let NERDChristmasTree=1
250 let NERDTreeAutoCenter=1
251 let NERDTreeBookmarksFile=$VIM.'\Data\NerdBookmarks.txt'
252 let NERDTreeMouseMode=2
253 let NERDTreeShowBookmarks=1
254 let NERDTreeShowFiles=1
255 let NERDTreeShowHidden=1
256 let NERDTreeShowLineNumbers=1
257 let NERDTreeWinPos='left'
258 let NERDTreeWinSize=31
259 nnoremap f :NERDTreeToggle
260 map <F7> :NERDTree<CR>  
View Code

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM