问题描述
我是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