如何在 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進入和退出編輯模式的行為不應隨核心更新而改變。

相關內容