当前位置: 首页>>技术教程>>正文


vi中插入模式下的退格键不会删除该字符

,

问题描述

我是vi的新手,实际上我已经从今天开始学习vi而且我已经陷入了退格键的行为。

实际上,当我第一次在我的Ubuntu 12.04上启动vi时,我的退格键正常工作,但之后它开始表现得很奇怪。每当我在插入模式下按退格键时,它只会向左移动一个位置而不是删除角色。

如何恢复默认退格功能?请注意,我不想安装vim或设置nocompatibilty。

最佳解决方案

这对于vi来说是正确的行为,并且它确实擦除了字符,它只是没有通过用类似于vim的空格替换它来显示它。当您用另一个字符覆盖已擦除的字符或切换回命令模式时,将会很明显。

例如。从空行的命令模式开始,以下将导致包含fo的行:

i f o o Backspace Esc

在点击Esc键之前,该行将读取foo,但最后一个o已被标记为”erase-column”。请参阅http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html#tag_20_152_13_88(主要指向该标题下的第4点,并进一步向下浏览以阅读< Control> -H)

次佳解决方案

这是最简单的解决方案。打开终端,转到主目录并键入

vi .vimrc

现在打开一个新文件,将这些行添加到文件中并通过保存退出

$ set nocompatible
$ set backspace=2

第三种解决方案

您需要通过使用i移动光标来更改为”insert”模式。还有其他方法可以直接删除字符。您可以下载我在VI here上课时使用的powerpoint。

听起来你处于”Command”模式。移动光标:H = Left,J = Up,K = Down,L = Right

将光标定位后,可以按如下方式删除文本:x删除光标下的字符X删除光标前的字符dw从光标删除到下一个字dd删除光标所在的行。

要输入文本,您可以使用其中一种文本输入模式。 a在光标右侧添加文本A将文本添加到当前行的末尾i在光标左侧添加文本I将测试添加到当前行的开头o在当前行下面打开一个新行并放置在文本输入模式下O在当前行上方打开一个新行并将您置于文本输入模式

要退出文本输入模式,并返回到命令模式,请使用Esc

撤消更改:(学生最喜欢的)u撤消输入的最后一个命令U撤消对**当前行的所有更改**

保存/退出::w写入(保存)文件并保持打开状态:wq写入(保存)文件并退出VI :q退出(退出)如果您没有更改:q!退出(退出)而不保存更改ZZ写入(保存)文件并退出VI(与:wq相同)

第四种方案

安装完整的vim包以获得退格键和箭头键功能

sudo apt-get update
sudo apt-get install vim

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1512.html,未经允许,请勿转载。