我安装了 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>
,其用法类似于退格键。