从零开始配置 vim(4)——键盘映射的一些技巧
通過前面的學(xué)習(xí),我們已經(jīng)知道了如何進(jìn)行鍵盤映射,并且也知道了在任何場(chǎng)合應(yīng)該使用非遞歸版本的映射。這篇再介紹一些使用關(guān)于快捷鍵映射的內(nèi)容作為收尾
快速編輯 vimrc 文件
通過前面掌握的知識(shí),相信各位小伙伴已經(jīng)在配置文件中加入了不少配置了。不知道小伙伴們加配置是怎么加的呢?是不是先進(jìn)入配置文件,編輯完了之后退出,再重新進(jìn)入看看配置是否生效呢了?又或者在使用vim編程的過程中覺得需要加入某個(gè)屬性或者特性。這個(gè)時(shí)候是不是要先退出當(dāng)前編輯的文件,或者聰明一點(diǎn)的小伙伴知道使用 :vs 命令新建一個(gè)窗口打開配置文件。但是在編輯完了配置文件,想讓它生效還是得先退出vim,然后再進(jìn)入。如果配置出錯(cuò),就得不斷的退出進(jìn)入。這個(gè)過程是很耽誤編程的。有沒有想過怎么改進(jìn)呢?
我們學(xué)了快捷鍵的映射,完全可以定義兩個(gè)快捷鍵用于快速打開和應(yīng)用配置文件。在完成這個(gè)事情的過程中需要了解紹一個(gè)變量和一個(gè)命令。
要介紹的變量是 $MYVIMRC 它代表當(dāng)前vim使用的配置文件的路徑,針對(duì)neovim來說,如果你使用init.vim作為配置文件,那么它的值就是 ~/.config/nvim/init.vim。如果你用 init.lua 作為配置文件,那么它的值就是 ~/.config/nvim/init.lua 。只要你的配置寫的位置是正確的,使用它總能對(duì)應(yīng)上
要介紹的命令就是 :source 命令。熟悉 shell 的應(yīng)該對(duì)這個(gè)命令不陌生,shell 中,使用 source 來使對(duì)應(yīng)的配置文件生效。vim中它也是使vim的配置文件生效。兩個(gè)命令的用法也一樣,都是跟對(duì)應(yīng)配置文件的路徑。使用它配合 $MYVIMRC 能做到在不退出vim的過程中重新加載配置
有了這兩個(gè)東東,我們就可以定義出快捷鍵了
vim.api.nvim_set_keymap("n", "<leader>ee", ":vs $MYVIMRC<CR>", {silent = true, noremap = true}) vim.api.nvim_set_keymap("n", "<leader>ss", ":source $MYVIMRC<CR>:q<CR>", {silent = true, noremap = true})它的效果如下
這里我使用 ee 來打開主要考慮到 e 代表的是 edit ,s 代表 s 或者 source 比較好記,各位小伙伴可以先使用其他方便記憶的按鍵。如果在寫完配置之后,不想按 :w 來保存,完全可以將 <leader>ss 映射為 :wq<CR>:source $MYVIMRC<CR>。將保存和啟用一并使用。我自己是屬于那種稍微改一點(diǎn)就要按 :w 來保存的人。我這里就只需要啟用就行。在保存并啟用之后,我這里又用了 :q 來關(guān)閉之前打開的新窗口。現(xiàn)在你就又可以專注于當(dāng)前的編程任務(wù)了。
學(xué)會(huì)使用新映射的快捷鍵
從插入模式回到普通模式有這么幾種方式 <esc>、<Ctrl+[>和 <Ctrl +c>。但是不管哪種方式都存在比較難按的情況,手指需要移開較大距離我們可以使用快捷鍵映射的方式,將 jk 映射為退出鍵(這里就可以使用上面定義的快捷鍵快速的打開配置文件了)
vim.api.nvim_set_keymap("i", "jk", "<esc>", {silent = true, noremap = true})
這個(gè)時(shí)候我們似乎用 <esc>習(xí)慣了,已經(jīng)形成肌肉記憶了,只要一想到退回到普通模式,就下意識(shí)的使用 <esc>,我們辛辛苦苦分析建立的更高效的快捷鍵完全沒有用處。
又或者有 vim 高手指出,要學(xué)會(huì)更快速的移動(dòng)光標(biāo)應(yīng)該摒棄 j、k、l、h 這些按鍵,但是明明知道用w或者 f 能更快速的移動(dòng)光標(biāo),但是有時(shí)候就是控制不住手,手不自覺的就按到這些鍵上面去了,就像我在使用 notepad 時(shí)總是無意識(shí)的輸入 <esc>:wq 來保存退出一樣。
該如何處理這種情況呢?一種有效的辦法是將它們都設(shè)置為無效鍵,當(dāng)你下意識(shí)的使用到這些被無效的鍵時(shí)發(fā)現(xiàn)它沒任何作用,此時(shí)你會(huì)意識(shí)到自己將它們定義為了無效鍵,同時(shí)你也會(huì)想起來該使用之前定義的那些更高效的替代品。雖然開始你可能不太習(xí)慣,但是一旦形成記憶,你會(huì)跟以前一樣得心應(yīng)手。
我們可以使用 <nop> 來定義一個(gè)鍵失效, 例如我可以使用 :inoremap <esc> <nop>。定義之后在插入模式下就無法使用 <esc> 來退回到普通模式了。
在 lua 中就可以使用如下語句來取消 esc
vim.api.nvim_set_keymap("i", "<esc>", "<nop>", {silent = true, noremap = true})我們可以看到,在寫下那段配置之后,<esc> 已經(jīng)無法從插入模式退回到普通模式了,只有使用 jk 才能退回。
總結(jié)
以上是生活随笔為你收集整理的从零开始配置 vim(4)——键盘映射的一些技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vim 的配置详解/键盘映射配置详解
- 下一篇: java中socket编程实例_Java