在vim中替代使用退格键的方法

6

当我在vim中犯了错误时,我使用退格键进行更正,因为切换到命令模式并使用'x'的方式比较麻烦,但也许还有其他vim的方法可以实现吗?


2
你可以在所有地方重复这个错误,然后进行查找和替换 : )。但说真的,我怀疑你会找不到比使用老式的退格键更好的方法。 - Lieven Keersmaekers
3个回答

12

ctrl-w 按下可以删除最后一个单词,ctrl-u 按下可以删除整个当前行。


9
在插入模式下,ctrl+h与退格键执行相同的操作(即向后删除一个字符)。

1
有些终端实际上在您键入退格时发送 <C-h>:这是控制代码,表示“将光标向后移动一个字符”,但大多数终端程序(包括 vim)会将其重新映射为“删除前一个字符”。例如,当您按下“<C-h>”时,zsh 将从其命令缓冲区中删除字符并向终端发送“<C-h><Space><C-h>”(此处的空格用于清除已键入的字符)。 - ZyX

3
您可以使用u来撤销。但它倾向于擦除您输入的整行内容...
根据不同情况,您可以使用以下文本对象:
  • ciw 删除并重写当前单词
  • c$ 删除并重写直到行末
  • c^ 删除并重写直到行首
  • ci) 更改括号内的内容
请参阅:help text-objects以获取更多信息。
如果您需要更改单个字母,则Vim的方法可能是使用r替换错误的字母。
  1. 输入tje home
  2. 使用fjFj将光标放在j上,具体取决于光标是否在j之后或之前
  3. 输入r然后输入h

我认为OP的意图是保持插入模式。 - Lieven Keersmaekers
@Lieven:很好的观点,在这种情况下,我认为你不能少于一个键来纠正问题。 - Xavier T.
+1 提醒我 fjr 序列。作为一个 Vim 新手,这比我迄今为止做的更方便。 - Lieven Keersmaekers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接