Vim 類似其他編輯器「書籤」的功能(使用 ShowMarks + wokmarks)
在沒有規則的位置間移動
雖然 ``、ga 等跳轉指令有不少,但是要跳到沒特殊意義的位置——例如「剛剛有看到,不過具體看到什麼完全沒印象」——這種情形除了 mark 應該也沒有更好的解了。
於是用 ma、mb、……放了幾個 mark,結果更難用:
- 視覺上看不見哪兒有 mark,所以不知道某 mark 的位置,比方 `b 會跳到哪裡去。
事實上按了 ` 之後,就會卡在不知道要按哪個字母。 - 不知道哪些 mark 已經用過,例如下 md 的時候要擔心會不會蓋掉舊的。
事實上按了 m 之後,就會卡在不知道要按哪個字母。
ShowMarks plugin
ShowMarks 會利用 sign column(在行號左邊的一欄,預設不會有)顯示 mark 的位置。雖然是很老的 plugin,不過先進替代品從缺,功能也冇問題,就用吧。
唯一不滿是用了 CursorHold autocmd 在閒置時自動開啟(如果開啟檔案後,突然畫面左邊冒出一條 bar,就是這功能),所以 fork 一份 bootleq/ShowMarks,加上 let g:showmarks_auto_toggle=0
即關閉它。
wokmarks.vim plugin
wokmarks.vim 提供不必記憶 mark 名稱(例:a-z)的操作。指令會變成 Prev、Next、Set、Toggle、Kill 這樣的感覺;另外設置 mark、在 mark 間移動時也會在狀態列顯示訊息。
具體設定
gist: 738007 - [vimrc] ShowMarks and wokmarks.vim- GitHub
完成後,看到有感覺的行就按 mm 放標記(sign column 會自動開啟),覺得這行沒用就按 mm 取消標記,想瀏覽標過的地方就按 mj、mk 前後移動。若新開的檔案沒有顯示任何標記,就按 mo 或 mt 顯示。
限制
因為使用 Vim 本身的 mark,所以 mark 總數有限(a-zA-Z,其中大寫的又不適合單一檔案使用)。
如果真的需要 26 個以上,也有一些 plugin 會另行記錄標記資訊,不過「不用 Vim 的 mark」是否比較好,就要考慮一下了。
有 0 個意見
☂