【Vim】從離不開vim,到離不開vim

更新於 發佈於 閱讀時間約 4 分鐘

學習動機

作為程式開發人員,一路從Notepad++、VSCode、Eclipse,或多或少都有機會聽過vim,只為了追求極致的開發效率。看看國外直播主ThePrimeagen邊寫程式邊直播,行雲流水的編輯速度,我覺得...我的問題是出在英打。


基本操作

模式

  1. 命令模式 (Command Mode):查找字詞、離開等指令下達
  2. 正常模式 (Normal Mode):檢視檔案
  3. 插入模式 (Insert Mode):輸入、編輯
  4. 可視模式 (Visual Mode):範圍選取


  • 一定要會的迷因:怎麼離開vim?
按下:進入命令模式,輸入q(quit),視情況加上!,表示強制退出
例如 :q!
  • 正常模式下,左下上右移動
hjkl
  • 常用組合
ciw : change inner word
caw: change all word
de: delete till end
db: delete till begin
yy: yank a line
dd: delete a line
u: undo
ctrl + r: redo

其實不難發現,如果指令改以英文進行思考,動作加上次數及要執行的指令,可以組合出很多種變化,在反覆進行這些操作後,思考上漸漸由

"指令是在做什麼事"

轉變成

"要做哪些指令,可以組合出我要的結果"

剩下的只有日積月累的肌肉記憶,至於其他像是巨集功能、對數字直接增減等額外處理方式,最為一個初學,我就不把重點方在這些上面了。


你該學vim嗎?

以下列出幾項使用vim半年以來,稍微習慣移動方式後,我所認為的優缺點:

優點

  1. 在別人眼裡看起來很厲害,手都不用離開鍵盤
  2. 基本上是純文字編輯器,占用系統資源少、檔案開啟跟操作速度反應很快
  3. 常用IDE大多都支援vim擴充套件,不用記多套按鍵組合
  4. 高度客製化,自行設定按鍵綁定

缺點

  1. 學習曲線高,要花點時間才能習慣操作模式
  2. 中英文混合編輯下,輸入法比較容易在進行切換時卡住
  3. 作為其他IDE的擴充套件,可能與原本的快捷鍵發生指令覆蓋或衝突
  4. 習慣了就會不想用vim以外的編輯方式


如果日常工作需要進行大量文字編輯作業,作職涯基本技能的一項學習項目,只能是加分,而不會是必須。隨後,當知道怎麼修改.vimrc加入各式各樣的功能,編輯器最終變得越來越像IDE,或許在IDE中使用vim會是良好的折衷方案,不論如何,僅僅只是基本的vim移動編輯操作,我認為還是值得學習的一項技能。


題外話

Redragon K565R RUDRA(青軸)

Redragon K565R RUDRA(青軸)

自從上次筆電鍵盤壞了以後,一直想買一把機械鍵盤外接使用。在研究了幾周、了解一些常見的軸體,去賣場試打了幾把,最後還是回家網購了一把折扣最多的鍵盤來入門。

今天剛到貨,整體的質感都蠻喜歡的,沒有多餘的邊框,至於9段RGB燈光模式切換就不是我特別主要考量的點。前前後後摸了半小時,直到接上電源要打字的那一刻,才發現鍵帽上面少了注音符號,難怪視覺上清爽了許多。

至於打字起來有比較快嗎? 主觀感覺使用薄膜鍵盤時,打字速度比較快一點,用青軸打字時比較有段落感,不知不覺也會在輸入過程中稍作些停頓,青軸喀拉喀拉的聲響,某種程度上來說還挺紓壓,只不過換到午休中的辦公室或是宿舍,可就不一樣了。



留言
avatar-img
留言分享你的想法!
avatar-img
Err500
12會員
76內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
Err500的其他內容
2025/03/28
本文章提供Neovim在Windows環境下的安裝教學與入門設定,從基本安裝、環境變數設定到使用kickstart.nvim套件快速配置IDE環境,降低新手入門門檻。文章也提及了進階設定與客製化的方向。
Thumbnail
2025/03/28
本文章提供Neovim在Windows環境下的安裝教學與入門設定,從基本安裝、環境變數設定到使用kickstart.nvim套件快速配置IDE環境,降低新手入門門檻。文章也提及了進階設定與客製化的方向。
Thumbnail
2025/03/15
本文比較IntelliJ IDEA、VSCode和Eclipse三種Java開發工具的優缺點,針對不同使用者族群提供建議。IntelliJ IDEA適合初學者,VSCode輕量且具彈性,Eclipse則適合舊專案開發。
Thumbnail
2025/03/15
本文比較IntelliJ IDEA、VSCode和Eclipse三種Java開發工具的優缺點,針對不同使用者族群提供建議。IntelliJ IDEA適合初學者,VSCode輕量且具彈性,Eclipse則適合舊專案開發。
Thumbnail
2024/09/09
某天在檢視~/AppData/Roaming裡面的資料,看看有沒有垃圾要手動清理,一個不小心砍掉了VSCode的設定資料夾,以至於重新開啟後整個頁面跟剛下載來安裝後的編輯器沒兩樣,乾脆趁這機會整理一下日常配置設定,哪天換新機或是又手殘了也能快速復原歸位。
Thumbnail
2024/09/09
某天在檢視~/AppData/Roaming裡面的資料,看看有沒有垃圾要手動清理,一個不小心砍掉了VSCode的設定資料夾,以至於重新開啟後整個頁面跟剛下載來安裝後的編輯器沒兩樣,乾脆趁這機會整理一下日常配置設定,哪天換新機或是又手殘了也能快速復原歸位。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
作為程式開發人員,一路從Notepad++、VSCode、Eclipse,或多或少都有機會聽過vim,只為了追求極致的開發效率。看看國外直播主ThePrimeagen邊寫程式邊直播,行雲流水的編輯速度,我覺得...我的問題是出在英打。
Thumbnail
作為程式開發人員,一路從Notepad++、VSCode、Eclipse,或多或少都有機會聽過vim,只為了追求極致的開發效率。看看國外直播主ThePrimeagen邊寫程式邊直播,行雲流水的編輯速度,我覺得...我的問題是出在英打。
Thumbnail
為什麼寫這麼基本的設定呢? 剛開始打字時預設內定為微軟注音,因為沒有全部設定好,導致後續寫稿時常常打錯字,也有是因為打注音時選錯字也有關。 雖然這個很基本,但也有滿多人不知道該怎麼設定,或常被微軟裡其設定繁雜而困擾,至少我找了一陣子......。 進入畫面右下方切換中英文(右鍵),叫出IME工
Thumbnail
為什麼寫這麼基本的設定呢? 剛開始打字時預設內定為微軟注音,因為沒有全部設定好,導致後續寫稿時常常打錯字,也有是因為打注音時選錯字也有關。 雖然這個很基本,但也有滿多人不知道該怎麼設定,或常被微軟裡其設定繁雜而困擾,至少我找了一陣子......。 進入畫面右下方切換中英文(右鍵),叫出IME工
Thumbnail
本文教你如何運用終端機指令來操作你的電腦,包括Mac和Windows用法。包括指令如pwd, ls, cd, mkdir, touch, rm, rmdir, cp, mv。另外,還附有相關的影片教學和額外資源教學。
Thumbnail
本文教你如何運用終端機指令來操作你的電腦,包括Mac和Windows用法。包括指令如pwd, ls, cd, mkdir, touch, rm, rmdir, cp, mv。另外,還附有相關的影片教學和額外資源教學。
Thumbnail
兩種在windows系統用win32 api關閉輸入法的作法
Thumbnail
兩種在windows系統用win32 api關閉輸入法的作法
Thumbnail
近期已經進去了一個看完語法,進去實作的階段,自然需要去挑選一個適合的環境來開發了。 原本使用的VS code,基本的使用上沒什麼問題,只是每當我要裝一些套件時就會報錯,相信花點時間,這些錯都可以解決,但我突然轉念一想,不如換個環境來寫寫看吧。於是就把矛頭轉向系統內建的Vim了。
Thumbnail
近期已經進去了一個看完語法,進去實作的階段,自然需要去挑選一個適合的環境來開發了。 原本使用的VS code,基本的使用上沒什麼問題,只是每當我要裝一些套件時就會報錯,相信花點時間,這些錯都可以解決,但我突然轉念一想,不如換個環境來寫寫看吧。於是就把矛頭轉向系統內建的Vim了。
Thumbnail
一直以來都是靠手動的方式來進行檔案的版本管理,也就是自己複製檔案,然後改檔名,加入可以識別的編號。不過,越來越覺得,有必要用版本控制系統來幫忙,因為手動的方式實在很累人,而且當需要查找以前更動的內容時,非常沒有效率。當發現Spyder也有支援Git時,就想著:「好吧!那就試用看看好了。」
Thumbnail
一直以來都是靠手動的方式來進行檔案的版本管理,也就是自己複製檔案,然後改檔名,加入可以識別的編號。不過,越來越覺得,有必要用版本控制系統來幫忙,因為手動的方式實在很累人,而且當需要查找以前更動的內容時,非常沒有效率。當發現Spyder也有支援Git時,就想著:「好吧!那就試用看看好了。」
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News