我想設置簡單的用戶定義命令,以便能夠在VIM中一次註釋多行。我想這在用戶定義命令中使用行號
:command -range Cm :<line1>,<line2>s/^/##/
,並調用它,如
:Cm 11,14
但得到的錯誤說Trailing Characters
。還試圖用-nargs = +相同的替換 - 範圍,但仍然無法正常工作。任何人都可以幫助我什麼,我在這裏失蹤?
我想設置簡單的用戶定義命令,以便能夠在VIM中一次註釋多行。我想這在用戶定義命令中使用行號
:command -range Cm :<line1>,<line2>s/^/##/
,並調用它,如
:Cm 11,14
但得到的錯誤說Trailing Characters
。還試圖用-nargs = +相同的替換 - 範圍,但仍然無法正常工作。任何人都可以幫助我什麼,我在這裏失蹤?
用戶定義的命令以與其他Vim命令相同的方式接受範圍。也就是說,它們出現在命令行的開頭。你會想執行
:11,14Cm
有意見徵求在vim,包括tComment和vim-commentary很多很好的插件。但是,如果您想製作像這樣的自定義命令,請使用以下模板:
command! -range -nargs=* Cm <line1>,<line2>call Comment(<f-args>)
fun! Comment(...) range
if a:firstline != a:lastline
sil exe a:firstline . "," . a:lastline . "s/^/##/"
else
sil exe a:1 . "," . a:2 . "s/^/##/"
endif
endfun
此命令可以使用一個或多個參數。由於您可能希望通過視覺選擇來操作命令,因此允許它取一個範圍很有用。它將默認範圍設置爲當前行,然後說明當前行是否是我們正在操作的所有行,忽略給定的範圍,而是查看給定的參數。