如何在 VI 中启用退格键?

如何在 VI 中启用退格键?

我安装了 FreeBSD,但没有任何软件包。而且 VI 不接受退格键。(我按了退格键,但什么也没发生)如何在 VI 中启用退格键?

哦,我正在使用 Mac,并通过 VM 或终端控制 FreeBSD。

答案1

您可以在运行 vi 之前在终端中尝试此操作:

$ stty erase [Ctrl-V] [Backspace]

其中 [Ctrl-V] 表示按下 Control + V,而 [Backspace] 表示按下退格键。

答案2

对我有帮助的 - 在终端偏好设置中 - 选择高级选项卡 - 选中“删除发送 Ctrl-H”

答案3

:h backspace-delete

退格键和删除键 *backspace-delete*


在 3.0 中,删除键和退格键在插入模式下都用作退格键;它们删除光标左侧的字符。在 4.0 中,删除键具有新功能:它删除光标下的字符,就像在命令行中一样。如果光标位于行尾之后并且设置了“bs”,则两行将合并。 |<Del>| |i_<Del>|

在 3.0 中,退格键始终定义为 CTRL-H,删除键定义为 CTRL-?。在 4.0 中,退格键和删除键的代码是从 termcap 或 termlib 获得的,并针对 Unix 上的“stty eras”值进行了调整。这有助于根据他们正在使用的键盘定义擦除字符的人。 |<BS>| |i_<BS>|

如果你喜欢在插入模式下使用退格和删除功能,请将以下行放入你的 vimrc 中:

    inoremap ^? ^H

您可能还想添加这些,以修复<BS>和的值<Del>

    set t_kb=^H
    set t_kD=^?

(使用 CTRL-V CTRL-H 输入 ^H 并使用 CTRL-V CTRL-? 输入 ^? 或<Del>.)

如果 t_kb 的值正确,但 t_kD 的值不正确,请使用 ":fixdel" 命令。它将根据 t_kb 的值设置 t_kD。如果您使用多个不同的终端,这将非常有用。 |:fixdel|

当 ^H 不被识别为<BS>或 时<Del>,其用法类似于退格键。

相关内容