如何在 Debian 9 上的 vi 中插入和删除文本

如何在 Debian 9 上的 vi 中插入和删除文本

我之前只在 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 的符号链接,vimvim-tiny在 Debian 8 上,它是到版本 7.4 的符号链接。像ior 这样的绝对基本命令绝对没有任何改变x。即使在只读模式(选项-R或以命令启动view)下,命令也可以工作,只是发出有关更改只读文件的警告。即使可怕的“简单”模式(选项-y)也不会产生您所描述的行为。

底线:这并不是简单地从 Debian 8 切换到 9 造成的。

该怎么办:

  • type vi例如,会告诉您实际正在执行什么/usr/bin/vi
  • vi --version应该告诉你你真正在执行什么
  • 如果它确实是 somevivim,那么您正在使用一些非常奇怪的键绑定!通过尝试作为另一个用户来测试它是本地还是全局

阅读OP评论后更新:

在 Debian 9 上按“i”没有任何反应,但如果我按两次,它就会显示一个“i”,然后我就可以写剩下的文本了。”,所以按下i实际上做了一些事情:它让你像以前一样进入插入模式。你只是因为最后一行没有显示任何内容而感到恼火。在这方面,Debian 8 和 9 之间也不应该有任何差异。

造成此行为的两个可能原因:

  • 您已设置无表演模式~/.vimrc在您或其他配置源中的某处。输入:set showmode:set smd并查看该行为是否与您习惯的一样。如果是,请检查您或系统的配置中是否有set nosmd或并将其删除。noshowmodevim
  • 或者您使用的区域设置有缺陷。做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进入和退出编辑模式的行为不应随内核更新而改变。

相关内容