在vim中,為什麼要跟:-1j
上面那行連結呢?
例如,:g/^ /-1j
連接以空格開頭的所有行。
當你了解它們是如何產生的時,這些命令就更容易記住,在這種情況下我已經預料到了:g/^ /-1J
-1
move 移動到上面的行並J
與下面的行連接。
答案1
您無法在命令列上使用普通命令按原樣。
在 中:g/^ /-1j
,j
是縮寫:join
:你向上一行(-1
也可能是-
)然後執行:join
。
在:g/^ /-1J
,對 Vim 來說沒有任何意義:您正在使用超出其上下文的正常模式命令,因此基本上,除了回顯明確的錯誤訊息之外,J
它不會執行任何操作。-1
Vim 需要 Ex 指令,而不是普通模式指令。
您的困惑可能來自於冒號只需要一次,因此您無法辨識 Ex 指令。如果我們添加幾個冒號,完整的命令可能對您更有意義:
:g/^ /:-1:j
若要在命令列上使用正常模式命令,請使用:norm
:
:g/^ /-1norm J
答案2
中有兩種類型的命令vi
。有些命令可以在文件中的任何位置直接從命令模式調用(我不確定這些命令是否有特定的名稱),並且有些命令來自ex
專門對行(而不是對行)進行操作的命令。:
字元來呼叫它們。
通常,只有ex
命令可以與命令一起使用:g
。