[轉]Vim健位映射2


http://hi.baidu.com/dingguo815/blog/item/2fef0f26d70be7108b82a122.html

Vim 的鍵位映射真是無所不能,一直以為插入模式中不夠普通模式的快捷鍵多,普通模式中,按“o”能在光標下插入一行行,按“dd”刪除一整行……,而在插入模 式中沒有這些快捷鍵,很多快捷命令一直都是按“Esc”返回普通模式使用后再切換來,很麻煩,能看過鍵位映射后,研究一陣,大呼過癮!於是把一系列自定義 鍵位映射寫到“_vimrc”中,現在Vim用起來真他媽的爽!!!

Alt組合鍵不映射到菜單上

set winaltkeys=no”

在 鍵位映射中,Ctrl加字母是不分大小寫的,Alt就分,這樣能映射的鍵位選擇就更多了。不過發現Alt+W等會跳到菜單上,即使設置了映射后還是那樣, 十分不爽,反正菜單又不常用,於是決定把它關掉了,后來又發現有這個選項能使Alt組合鍵不映射到菜單上,Vim想得真周到,后來又發現Alt+大寫(就 是同時按下Shift鍵)xp會切換輸入法,又一不爽,於是在系統控制面板那里將它關掉。

編譯程序

map <F9> :w<Esc><CR>:make %<CR>
imap <F9> <Esc><F9>

在VC 里按一個鍵就能編譯和運行,很方便,本來在Vim寫好代碼,然后用“:!”命令運行編譯程序,后來用得多了,決定麻煩,於是設置了鍵位映射,先保存,然后 執行make。當然在ftpplugin里設置好mkaeprg。java.vim我就直接在Runtime files里的ftpplugin文件夾復制到vimfiles里就行了,c.vim就這么一句“set makeprg=gcc\ -o\ %:r.exe”

運行程序

  • “java.vim里的

    map <F9> :w<Esc><CR>:make %<CR>
    imap <F9> <Esc><F9>
    map <F10> :!java %:r<CR>

  • “c.vim里的

    map <F9> :w<Esc><CR>:make %<CR>
    imap <F9> <Esc><F9>
    map <F10> :!%:r.exe<CR>

    因為java運行命令是“java 類名不包括后綴”,就用“%:r”去掉后綴名;而C則去掉后綴名后加上“.exe”

錯誤跳轉

  • “跳到下一個錯誤map <A-n> :cnext<CR>
    imap <A-n> <Esc><A-n>i
  • 跳到前一個錯誤map <A-p> :cprevious<CR>
    imap <A-p> <Esc><A-p>i
  • 顯示所有錯誤map <F8> :clist<CR>
    imap <F8> <Esc><F8>

     

    不用在切換到普通模式里輸入查看錯誤命令了,真方便

全文查找替換

map <C-H> :%s/
imap <C-H> <Esc><C-H>

在windows下一直習慣用“Ctil+H”打開查找對話框,這下好了,那幾個固定字母不用重復打了

取消查找高亮

map <A-/> :nohlsearch<CR>
imap <A-/> <Esc><A-/>i

查找過后總是查找內容高亮,這個映射能令它快速消失。

刪除當前行並重寫

imap <A-r> <Esc>ddO

寫代碼時有時想整行刪掉后重寫,按住“del”或者用鼠標選擇都是不夠有效率,這樣做最快捷。

刪除到行尾

imap <A-u> <Esc>wd$i

插入模式有刪除光標前到行首,但是沒有刪除到行尾,有時也學要用,映射一下。

刪除光標處的單詞

imap <A-w> <Esc>ebdei

“插入上次刪除的單詞

imap <A-W> <C-R>w

有時想把單詞換成另一個,像刪除整行一樣,移動好光標,然后按住“del”或者鼠標選擇都是不夠效率,這個映射一下子就把單詞刪掉。<A-W>就把剛用<A-w>刪除的單詞插入回來

刪除光標處雙引號之間的字符串

imap <A-s> <Esc>di"i

如果光標在“”"”之間,這個映射就馬上刪掉雙引號自己的內容並把光標用到雙引號之間,方便重寫。

開關tag窗口

map <A-t> :TlistToggle<CR>
imap <A-t> <Esc><A-t>i

快速開關Taglist窗口。

在光標下插入新行

imap <A-o> <Esc>o

就像普通模式下按“o”一樣,這樣不用把光標移動到行尾按回車了,按“Ctirl+o”,然后“o”也行,不過要多按一次鍵。

復制當前行

imap <A-c> <Esc>Ya

粘貼到當前行

imap <A-v> <Esc>pi

馬上把光標所在行整行復制,粘貼,這個功能也經常用。

為選擇行添加注釋

smap <A-c> <C-G>:s/^/\/\//ge<CR><A-/>

刪除選擇行的注釋

smap <A-C> <C-G>:s/\/\///ge<CR><A-/>

有時測試需要,要整段注釋,先用鼠標選擇好要注釋的代碼,這是時候在選擇模式下,然后切換到可視模式,在可是模式下運行替換命令,作用范圍就是選擇 段,查找 行首然后替換成“//”就行了,唯一不爽的是查找后全文行首高亮,於是又要取消高亮,屏幕就會“閃”一下。刪除反過來就是。

映射光標控制

imap <A-h> <Left>
imap <A-j> <Down>
imap <A-k> <Up>
imap <A-l> <Right>

現在右手移動到光標鍵都嫌麻煩了

插入當前行第一個單詞到下一行,用b寄存器

imap <A-b> <Esc>^"byeo<C-R>b

編寫Java時經常輸入多行private,public時很有用,按一下就自動把當前行第一個字符查入到下一行。

插入光標出上一行單詞,用i寄存器

imap <A-g> <Esc>keb"iyejA<C-R>i

與上邊那個類似,不過那光標上的單詞復制下來,不太完善。


免責聲明!

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



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