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