Vim

為什麼vim被凍結?

  • May 5, 2021

我有兩台執行 Ubuntu 18.04 的不同機器(家庭和工作)。昨晚vim在家裡凍僵了。我處於插入模式並輸入並保存(esc :w),但什麼也沒發生。狀態欄仍顯示-- INSERT --,游標仍在原處閃爍。我卡住了。我找不到出路。我不能打字(我打字時什麼也沒發生),我不能四處走動(向上和向下箭頭什麼也沒做)。它卡在插入模式中,游標在它所在的位置閃爍。

我肯定是在處理多項任務,並且可能在那裡按下了其他一些鍵,但我不知道是什麼鍵。不過已經很晚了,所以我關閉了終端視窗並再次嘗試(我正在輸入 git commit 消息)。它在我打字的中途再次git commit -m "don't need an editor for this"發生,所以我改用了。然後我關閉了我的電腦並停止工作。

我想我只是累了,但是今天我在另一台筆記型電腦上工作時發生了這種情況。我又一次同時處理多項任務,不能發誓我沒有輸入任何奇怪的鍵序列,但如果我這樣做了,那是偶然的。並且同一終端中的其他選項卡不會被凍結。

visual我習慣於在 vim 中陷入模式。這是我學到的一個技巧。但卡在插入模式?關於我可能做了什麼以及如何擺脫它的任何想法?

根據我嘗試查看的評論建議,.viminfo.viminfo我看到的唯一內容是由我獨家擁有的,root並且似乎只顯示我會編輯的內容sudo

# Input Line History (newest to oldest):

# Debug Line History (newest to oldest):

# Registers:

# File marks:
'0  1  0  /etc/neomuttrc
|4,48,1,0,1531789956,"/etc/neomuttrc"
'1  1  66  /etc/apt/sources.list.d/signal-bionic.list
|4,49,1,66,1530816565,"/etc/apt/sources.list.d/signal-bionic.list"
'2  51  0  /etc/apt/sources.list
|4,50,51,0,1530816531,"/etc/apt/sources.list"

# Jumplist (newest first):
-'  1  0  /etc/neomuttrc
|4,39,1,0,1531789956,"/etc/neomuttrc"
-'  1  66  /etc/apt/sources.list.d/signal-bionic.list
|4,39,1,66,1530816565,"/etc/apt/sources.list.d/signal-bionic.list"
-'  1  66  /etc/apt/sources.list.d/signal-bionic.list
|4,39,1,66,1530816565,"/etc/apt/sources.list.d/signal-bionic.list"
-'  51  0  /etc/apt/sources.list
|4,39,51,0,1530816531,"/etc/apt/sources.list"
-'  51  0  /etc/apt/sources.list
|4,39,51,0,1530816531,"/etc/apt/sources.list"
-'  51  0  /etc/apt/sources.list
|4,39,51,0,1530816531,"/etc/apt/sources.list"
-'  51  0  /etc/apt/sources.list
|4,39,51,0,1530816531,"/etc/apt/sources.list"
-'  1  0  /etc/apt/sources.list
|4,39,1,0,1530816447,"/etc/apt/sources.list"
-'  1  0  /etc/apt/sources.list
|4,39,1,0,1530816447,"/etc/apt/sources.list"
-'  1  0  /etc/apt/sources.list
|4,39,1,0,1530816447,"/etc/apt/sources.list"
-'  1  0  /etc/apt/sources.list
|4,39,1,0,1530816447,"/etc/apt/sources.list"

# History of marks within files (newest to oldest):

> /etc/neomuttrc
   *   1531789952  0
   "   1   0

> /etc/apt/sources.list.d/signal-bionic.list
   *   1530816564  0
   "   1   66
   ^   1   67
   .   1   66
   +   1   66

> /etc/apt/sources.list
   *   1530816454  0
   "   51  0

我沒有一個非特權文件似乎很奇怪,.viminfo但我做到了sudo udpatedblocate .viminfo而且仍然沒有超過一個根擁有的文件。

我經常錯誤地胖手指的一個關鍵是Ctrl``S;停止所有終端輸出,直到Ctrl``Q輸入 a 。

這就是XON/XOFF預設啟用的控制流,並且^S^Q分別是預設值VSTARTVSTOP鍵——請參見手冊頁stty(1)termios(3)手冊頁。

您可以使用以下方法禁用它:

stty -ixon

vim不會在更改終端設置的過程中重新啟用它。

vim 被凍結;KNOPPIX 8.6 上的 vim 版本 81;

它經常發生,我已經找到了我的情況的原因;

即使我沒有忘記將選項更改為“noincsearch”,vim 也會開始搜尋並忙 10 到 20 個小時。因為我正在編輯的文件非常大。

這可能是由拼寫錯誤或“正常”向後搜尋很少文本引起的。

問題是,在這種狀態下 vim 是不可中斷的。

CTRL-C 不起作用。沒有其他按鍵序列或滑鼠事件可以停止 vim。

我通過“writevt”發送到 vim 或 shell bash 的任何命令都沒有效果。

至少 vim 應該對一個 SIGNAL 負責,例如 USR1。但 Vim 沒有反應。

此外,vim 沒有以任何方式顯示 vim 很忙並且它正在搜尋,這很糟糕。

作業系統的實用程序僅顯示該程序正在執行。我可以發送信號 SIGSTOP 和 SIGCONT。但這些都無濟於事。

最好的問候 Anton_Wessel@t-online.de

引用自:https://unix.stackexchange.com/questions/478532