Раньше я использовал vi только на Debian 8 и мог нажать "i", чтобы добавить любой текст. Даже удаление работало нормально. Но теперь на Debian 9 поведение vi, похоже, отличается, так как при нажатии "i" ничего не происходит.
В Debian 8 при нажатии "i" внизу появляется надпись "INSERT", что означает, что теперь вы можете начать изменять текст. В Debian 9 нажатие "i" ничего не делает, но если я нажму дважды, то появится одна "i", а затем я смогу написать оставшийся текст.
Сейчас я просто хочу изменить порт SSH, а для этого мне нужно просто удалить символ «#» и изменить порт 22 на что-то другое, но сейчас я даже не могу выполнить эту простую задачу.
Есть ли руководство по использованию команды vi в Debian 9?
решение1
Обычно в Debian 9 /usr/bin/vi
это символическая ссылка на vim
или vim-tiny
в версии 8.0, тогда как в Debian 8 это была символическая ссылка на версию 7.4. Абсолютно ничего не изменилось в абсолютно базовых командах, таких как i
или x
. Даже в режиме только для чтения (опция -R
или запущенная с командой view
) команды работают, просто выдавая предупреждение об изменении файла только для чтения. Даже ужасный "легкий" режим (опция -y
) не производит поведение, которое вы описываете.
Итог: это вызвано не просто переходом с Debian 8 на 9.
Что делать:
type vi
скажет вам, что вы на самом деле выполняете, например/usr/bin/vi
vi --version
должен сказать вам, что вы на самом деле делаете- Если это действительно некоторые
vi
илиvim
, вы используете какие-то действительно странные сочетания клавиш! Проверьте, локальное это или глобальное, попробовав как другой пользователь
Обновление после прочтения комментария OP:
"В Debian 9 нажатие «i» ничего не делает, но если я нажму ее дважды, то появится одна «i», после чего я смогу написать оставшийся текст.", так что нажатие iна самом деле что-то делает: оно переводит вас в режим вставки, как и раньше. Вы просто раздражены, потому что в последней строке ничего не отображается. В этом отношении также не должно быть никаких различий между Debian 8 и 9.
Две возможные причины такого поведения:
- Вы установилиnoshowmodeгде-то в вашем
~/.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
для входа и выхода из режима редактирования не должно было измениться с обновлением ядра.