我是vi的新手,实际上我从今天起就开始学习vi,并且对退格键的行为有所了解。
实际上,当我第一次在Ubuntu 12.04上启动vi时,我的退格键正常工作,但之后它开始表现出异常。每当我在插入模式下按退格键时,它只会向左移动一个位置,而不是擦除字符。
如何找回默认的退格功能?请注意,我不想安装vim或设置不兼容。
我是vi的新手,实际上我从今天起就开始学习vi,并且对退格键的行为有所了解。
实际上,当我第一次在Ubuntu 12.04上启动vi时,我的退格键正常工作,但之后它开始表现出异常。每当我在插入模式下按退格键时,它只会向左移动一个位置,而不是擦除字符。
如何找回默认的退格功能?请注意,我不想安装vim或设置不兼容。
Answers:
对于vi来说,这是正确的行为,它确实擦除了字符,只是没有像在vim中那样用空白代替它来显示它。当您用另一个字符覆盖已擦除的字符或切换回命令模式时,将很明显。
例如从命令模式开始在空行中,以下内容将导致该行包含fo
:
ifooBackspaceEsc
在您敲Esc键之前,该行将显示为foo
,但是最后一行o
已被标记为“擦除列”。请参阅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
。还有其他直接删除字符的方法。您可以在此处下载在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
)
安装完整的vim软件包以获得退格键和箭头键功能
sudo apt-get update
sudo apt-get install vim
vim-runtime
软件包即可,一切都按我惯用的方式工作。谢谢!
nocompatibility