前面 9 天都在介紹操作環境,今天終於要進到編輯器啦!我選用的編輯器是 nvim,但是如果你要用 vim 8 也是可以,因為這兩者之間幾乎沒什麼差別,只是你要注意這兩者的設定檔位置不同,目錄需要你自己轉換。唯一不同的點大概是 nvim 內建支援用 lua(一種程式語言)寫外掛,vim 8 只能用 vimscript。關於兩者之間的愛恨情仇請參考這裡,他講的非常詳細
接下來的文章可能會出現 vim、nvim 混用,但是他們都是指 neovim,也就是我們用的這個編輯器,不用特別跑去裝兩套軟體
安裝 nvim
基本上你的電腦的套件管理器裡面應該都有 nvim 了,但是他的名字可能不是 nvim,例如 apt 就是 neovim
,如果你的套件管理器沒有收錄 nvim 或是你不知道該怎麼辦的話,可以看看這個文章 幾乎所有作業系統他都有介紹怎麼安裝了,當然他也有教你如何自己 build。
操作
vim 的前身—— vi 誕生於幾乎沒有圖形化界面的時候,那時候也沒有滑鼠,所以所有的操作都必須在鍵盤上達成,今天就來認識一些簡單的命令吧!
離開 vim
為什麼要在還沒進入 vim 之前就教如何離開呢? 因為幾乎所有初學者都會有這個疑問,要怎麼離開 vim 啦!! 這邊我提供一個必勝的方法,不論你在 vim 做了什麼操作,ESC 狂按個 100 次三到四次,然後輸入 :q!ENTER 就會離開了。
命令模式?編輯模式?
vim 的「模式」也是讓初學者很困擾的東西之一,下面用一張圖來解釋他們的關係
vim 模式切換 (From: 高見龍——超簡明 Vim 操作介紹) |
通常 Normal Mode 中文是 「命令模式」 ,顧名思義這個模式下你可以打命令,Insert Mode 的中文是 「編輯模式」 ,在這個模式你可以編輯你的檔案。
從命令模式切回編輯模式的命令不只 iao 這三個,還有很多,但這是最常見的三個,其他的會在之後介紹
命令
注意:我的用詞可能和你看到其他文章不太一樣,這裡我的「命令」指的是 vim 中冒號開頭的命令,其他的則被我歸類到「快捷鍵」但是其實對 vim 來說他們都是命令(文件中都是 command )
如果你想打某個 vim 命令,例如說「儲存並離開」,你需要先到 「命令模式」 ,然後按下 :,螢幕下面就會有一行空行,你可以在這裡打命令,也可按上、下 瀏覽以前打過的命令。常用的命令有儲存、離開、搜尋與取代、開啟檔案等等,這裡我列出幾個和檔案操作有關的命令
命令 | 說明 |
---|---|
:w [filename] | 儲存 |
:q | 離開 |
:q! | 強制離開不儲存(如果有更動檔案但只用 :q 的話會跳出錯誤訊息) |
:wq | 儲存並離開 |
:e [filename] | 開啟某個檔案 |
:{number} | 跳掉第幾行 |
:! {cmd} | 執行 shell 命令 |
注意第三個和最後一個,雖然都有驚嘆號,但是第三個的驚嘆號在最後面,執行 shell 命令的驚嘆號在最前面。第三個的驚嘆號表示 「強制」 、 「忽略警告」 ,搭配其他命令可以達到以下效果
命令 | 說明 |
---|---|
:w [filename] | 強制存檔,有時候會遇到檔案在開啟 vim 途中被其他程式修改或是權限問題,用 :w! 可以強制覆蓋 |
:e [filename] | 不管現在這個檔案有沒有修改,直接從硬碟載入另一個檔案 |
快捷鍵
和 tmux 一樣,vim 也可以把某個按鍵對應到命令,這樣就不用常常打一堆指令了。
要注意,vim 可以指定快捷鍵生效的模式,所以如果在編輯模式不能用,那可能要切換到指令模式。
以下的快捷鍵都是在命令模式下用的喔,常用的快捷鍵有
快捷鍵 | 說明 |
---|---|
yy | 複製一行 |
dd | 剪下一行 |
x | 剪下一個字 |
p | 貼上剪貼簿的內容 |
v | 選取(之後可以複製、剪下) |
. | 重複執行剛剛執行過的指令 |
u | 回復( undo ) |
<C-r> | 重做( redo,重做 undo 取消的操作,也就是說要先 u 之後才能 r ) |
分隔線 | 接下來的快捷鍵看看就好,你可以用方向鍵解決 |
h | 左移 |
j | 下移 |
k | 上移 |
l | 右移 |
gg | 移至檔案開頭 |
G | 移至檔案結尾 |
^ | 移至行頭 |
$ | 移至行尾 |
<C-r>
的意思是 CTRL+r,這是 vim 常見的表示法,以後還會看到
結尾
vim 的命令(快捷鍵)其實是個非常高深的學問,我的文章可能沒辦法講的非常詳細,你可以去找其他教學,或是在 vim 中用指令 :help
看官方的教學