иногда мой файл просто зависает в моем vi | vim, что случилось?

298

Иногда, когда я редактирую свой файл, используя vi или vim, мой файл просто зависает. Даже если я наберу Ctrl+Cили Ctrl+D, он все равно там замерзает. Я kill -9 <pid>с другого терминала, пид убит, но файл все равно там зависает.

Наверное, я набрал какую-то комбинацию клавиш, которую я не знаю. У кого-нибудь есть идея?

user399517
источник

Ответы:

606

Ctrl- Sвероятно виновник; он останавливает вывод вашего экрана в большинстве терминалов. Как упоминал Майкл, вы можете восстановить нормальный экран, введя Ctrl- Q.

Теоретически, установка stty -ixonдолжна предотвратить Ctrl- Sот замораживания экрана, но он не работает на моем локальном Solaris 10 входа в систему .

Пра
источник
@CallMeNorm - это также происходит с подлым ярлыком <Ctrl-A> для screen / tmux / etc, потому что у меня толстые пальцы. ;)
Cometsong
Если по какой-либо причине - вы глобально переназначили («инактивировали») Ctrl-Q (например, чтобы избежать случайного выхода из Firefox), добавив stty -ixonк вашим ~/.bashrcактивациям Ctrl-q в терминалах. В моем случае Ctrl-s зависал в Vim, и я не мог вернуться к нему ... пока я не сделал эту модификацию .bashrc. Подробности здесь: superuser.com/a/1328326/409327
Виктория Стюарт
75

Вы используете его внутри экрана GNU? (Как указывает пра, это, очевидно, верно даже вне экрана) Случайное нажатие Ctrl+S( xoff) довольно часто , что отключает рисование экрана, пока вы не нажмете Ctrl+Q( xon)

Майкл Мрозек
источник
есть ли ключ, который замораживает файл, если мой vim объединен с cscope?
user399517
1
это происходит (иногда) после того, как я набираю shift + insert, и vi показывает: открытый режим.
user399517
1
Ctr-S не является специфичным для экрана GNU.
пра
1

Если Ctrl+ Sне ваша проблема (как в ответе пра ), это может вам помочь.

Если вы пытались установить несколько пользовательских плагинов с помощью Vundle , иногда дела идут не так, как надо. Вы можете попробовать удалить эти пакеты вручную и посмотреть, поможет ли это. Узнайте, куда были написаны плагины - в моем случае все они были в .vim/bundleкаталоге, потому что я использовал git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vimдля установки Vundle . Поэтому, попав в .vimкаталог, вы можете стереть всю папку пакета, чтобы удалить все плагины, и начать заново, выполнивrm -rf bundle .

Надеюсь, поможет!

bibzzzz
источник
-11

Вы можете попробовать изменить раскладку клавиатуры. Vi | vim взаимодействует только с английским (-like?) Вводом.

Splat
источник