逐行輸入 # 極其低效。vi 的 :s(substitute)指令配合範圍操作,可秒級完成。
:.,+499s/^/#/
.:當前行+499:往後 499 行(共 500 行)s/^/#/:將行首 ^ 替換為 #若需指定絕對行號:
:10,50s/^/#/
:.,+499s/^#//
僅移除行首第一個 #。若行首可能有空白:
:.,+499s/^\s*#//
在 vim 中可定義函數/映射:
" ~/.vimrc
function! ToggleComment()
if getline('.') =~ '^\s*#'
silent execute ".,+499s/^\\s*#//"
else
silent execute ".,+499s/^/\\#/"
endif
endfunction
nnoremap c :call ToggleComment()<CR>
正常模式下按 \c(預設 Leader 鍵為反斜線)即可在 500 行範圍內切換註解。
V 進入視覺行模式j/k 選取範圍:'<,'>s/^/#/ 對選取範圍加註解:'<,'>s/^#// 移除| 語言 | 單行註解 | vim 設定建議 |
|---|---|---|
| Python | # | 同本文 |
| C/C++/Java/JS | // | :s|^|//| |
| HTML/XML | <!-- --> | 需成對,建議用插件 |
| SQL | -- | :s|^|--| |
掌握 :range s/^/#/ 與視覺模式配合,讓大段程式碼註解/取消註解成為指尖輕鬆之事。搭配 vim 映射或插件(如 vim-commentary、NERDCommenter),更能一鍵搞定多語言專案。