我之前只在 Debain 8 上使用过 vi,我可以按“i”来添加任何文本。即使删除工作正常。但现在在 Debian 9 上,vi 的行为似乎有所不同,因为按下“i”没有任何反应。
在 Debian 8 上,当您按“i”时,它会在底部显示“INSERT”,这意味着您现在可以开始更改文本。在 Debian 9 上按“i”什么也没做,但如果我按两次它会显示一个“i”,然后我可以写剩余的文本。
现在我只想更改 SSH 端口,为此我只想删除字符“#”并将端口 22 更改为其他内容,但现在我什至无法完成这个简单的任务。
Debian 9 上是否有适用于 vi 的命令教程?
通常,在 Debian 9 上,
/usr/bin/vi
它是指向8.0 版vim
或vim-tiny
版本的符号链接,而在 Debian 8 上,它是指向 7.4 版的符号链接。绝对基本命令(如i
or )没有任何改变x
。即使在只读模式(选项-R
或以 command 开始view
),命令也可以工作,只是发出有关更改只读文件的警告。即使是可怕的“简单”模式(选项-y
)也不会产生你描述的行为。底线:这不是简单地从 Debian 8 切换到 9 造成的。
该怎么办:
type vi
会告诉你你实际在执行什么,例如/usr/bin/vi
vi --version
应该告诉你你真正在执行什么vi
orvim
,那么你正在使用一些非常奇怪的键绑定!通过以其他用户身份尝试来测试它是本地的还是全局的阅读OP的评论后更新:
”在 Debian 9 上,按“i”什么也没做,但如果我按两次,它会显示一个“i”,然后我可以写剩余的文本。 ”,所以按i实际上做了一些事情:它像以前一样让你进入插入模式。你只是被激怒了,因为最后一行没有显示任何内容。在这方面,Debian 8 和 9 之间也不应该有任何区别。
这种行为的两个可能原因:
~/.vimrc
键入:set showmode
or:set smd
并查看行为是否与您习惯的一样。如果是,请检查您set nosmd
或noshowmode
系统的vim
配置中的 或 并将其删除。LANG=C
然后开始vi
。最上面的答案暗示了这个问题,但问题在于这个版本的 Debian 中的默认配置是 vim.tiny 配置。如果您下载 vim.basic 配置并改用它,它将按预期工作。
然后,检查是否选择了 vim.basic:
如果您安装了 vi/vim,那么
vimtutor
应该在您的机器上,只需在命令行中输入它并按照演练进行操作。如果您熟悉
vi
然后 tryvim
,这是一个改进vi
但使用基本相同的控件,看看它是否按预期工作。i
/进入和退出编辑模式的行为esc
不应该随着内核更新而改变。