我是 vi 的新手,实际上我从今天开始学习 vi 并且我已经陷入了退格键的行为。
实际上,当我第一次在 Ubuntu 12.04 上启动 vi 时,我的退格键正常工作,但在那之后它开始出现奇怪的行为。每当我在插入模式下按退格键时,它只会向左移动一个位置而不是擦除字符。
如何恢复默认退格功能?请注意,我不想安装 vim 或设置不兼容。
Adi*_*lam 86
这是最简单的解决方案。
打开终端,进入主目录并输入
vi .vimrc
Run Code Online (Sandbox Code Playgroud)
现在打开一个新文件将这些行添加到文件中并通过保存退出
$ set nocompatible
$ set backspace=2
Run Code Online (Sandbox Code Playgroud)
gei*_*rha 44
这是 vi 的正确行为,它确实删除了字符,只是没有像 vim 那样用空白替换它来显示它。当您用另一个字符覆盖已擦除的字符或切换回命令模式时,这将很明显。
例如,从空行的命令模式开始,以下将导致该行包含fo:
ifooBackspaceEsc
在您按下Esc键之前,该行将显示为foo,但最后一个o已被标记为“擦除列”。请参阅http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html#tag_20_152_13_88(主要是该标题下的第 4 点,还可以进一步浏览以了解 <Control>-H)
Arg*_*ion 28
您需要通过使用 移动光标来更改为“插入”模式i。还有其他方法可以直接删除字符。您可以在此处下载我在 VI 上教授课程时使用的 PowerPoint 。
听起来您处于“命令”模式。移动光标:
H= 左、J= 上、K= 下、 L= 右
定位光标后,您可以按如下方式删除文本:
x 删除光标下的字符
X 删除光标前的字符
dw删除光标至下一个单词
dd删除光标所在的行。
要输入文本,您可以使用其中一种文本输入模式。
a将文本添加到右侧光标的
A文本添加到结束当前行的
i文本添加到左光标
I再添考到beginin当前行中
o打开一个新的线下方的当前行和你的地方在文字输入模式
O开幕在当前行上方新建一行并使您进入文本输入模式
要退出文本输入模式并返回命令模式,请使用Esc。
要撤消的变化:(A学生的最爱)
u撤消的最后一个命令中输入
U撤消所有更改为**当前行**
保存/退出:
:w写操作(保存)文件并保持打开状态
:wq写入(保存)的文件,并退出VI
:q退出(退出)如果你进行任何更改
:q!退出(退出)不保存修改
ZZ写入(保存)的文件,并退出VI (同:wq)
小智 17
安装完整的 vim 包以获得退格和箭头键功能
sudo apt-get update
sudo apt-get install vim
Run Code Online (Sandbox Code Playgroud)