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