Как вставить и удалить текст в vi на Debian 9

Как вставить и удалить текст в vi на Debian 9

Раньше я использовал 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для входа и выхода из режима редактирования не должно было измениться с обновлением ядра.

Связанный контент