vi показывает как vim

Когда я ввожу vi в терминал, он показывает следующий экран:

VI

Обратите внимание, что он говорит, что vim не vi, я уверен, что я еще не загрузил vim и что это на самом деле vi не vim: например, клавиши со стрелками печатают ABCD вместо перемещения.

  • Как вставить названный регистр из командной строки vim
  • / usr / bin / vim vs. / bin / vim
  • обновить измененное содержимое файла, открытого в vi (m)
  • VIM - как свести к минимуму tabindent на hightighted text
  • Неизвестная функция в Vim
  • Есть ли способ передвижения по экранам в vim?
  • «Нажмите ENTER или введите команду для продолжения»: почему я вижу это?
  • Что это за точка зрения в vim?
  • 6 Solutions collect form web for “vi показывает как vim”

    Если вы используете Debian, то vi открывается как vim из-за ввода vi в /etc/alternatives . Позволь мне разобраться с тобой.

    Когда вы выполните ls -l /usr/bin/vi :

     lrwxrwxrwx 1 root root 20 Jul 1 2014 /usr/bin/vi -> /etc/alternatives/vi 

    Как вы можете видеть, vi бинар является символической ссылкой на /etc/alternatives/vi .

    Теперь, если вы выполните ls -l /etc/alternatives/vi :

     lrwxrwxrwx 1 root root 18 Jul 1 2014 /etc/alternatives/vi -> /usr/bin/vim.basic 

    Это символическая ссылка на двоичный файл vim.basic .

    Итак, в двух словах: /usr/bin/vi/etc/alternatives/vi/usr/bin/vim.basic

    В результате, если вы vim.basic vi в оболочке, vim.basic .

    Вы можете проверить и изменить значения в /etc/alternatives с помощью команд update-alternatives но я думаю, что ваш исходный вопрос уже ответил.

    Хотя исходный vi все еще доступен , я не думаю, что он широко используется в текущих дистрибутивах Linux или BSD; По- видимому, он был вычищен в 2000 году после того, как он был законсервирован за десять лет до этого, а последний релиз – 2005 год.

    Существуют различные реализации vi вокруг, которые действительно являются спецификацией POSIX . К ним относятся elvis и elvis , но наиболее популярным является, вероятно, vim .

    В системах, которые используют vim, vi будет просто программным связыванием с ним, и при вызове таким образом он должен запускаться в режиме, совместимом с vi, поэтому система имеет что-то, что соответствует спецификации POSIX. Однако это не изменяет фактическое имя программы, которое является vim, и это то, что вы видите на экране заголовка.


    1. Хотя он доступен на Arch , по крайней мере. Вы можете найти и другие места.

    Во многих Linux-системах по умолчанию vi действительно является версией Vim, обычно скомпилированной с меньшим количеством опций (без встроенной поддержки perl и python, без GUI и т. Д.), Чем тот, который вы получите, если вы установили пакет Vim.

    например, клавиши стрелки печатают ABCD вместо перемещения.

    Это вызвано несогласованностью между вашим эмулятором терминала и пониманием Vim использования термина terminfo / termcap. Как правило, это вызвано тем, что Vim отправил код t_ks для «включения» клавиш со стрелками (фактически помещает их в режим, когда они отправляют <1b>OA вместо <1b>[A ), но ожидаемые клавиши предназначены для другого режима (например, t_ku=<1b>[A для стрелки вверх). Попробуйте изменить переменную окружения TERM или опцию vim ( set term=builtin_ansi или builtin_xterm в vimrc, возможно, он может отключить цвет), используя другой терминал или, в качестве последнего средства, добавить set t_ks= t_ke= в ваш .vimrc файл, чтобы отключите этот режим. Это предлагаемое решение в файлах справки vim, следующий абзац после :help cs7-problem .

    Такое поведение никоим образом не является признаком того, что это «на самом деле vi не vim» – самые современные «настоящие» версии vi или nvi также поддерживают клавиши со стрелками.

    На исходный вопрос уже был дан ответ, объясняющий, что vi является псевдонимом для vim, и что для команды vi для запуска vim нормально.

    Следует отметить, что vim (в некоторых настройках) чувствителен к тому, к какому имени он вызывается. Хотя vi и vim выполняют один и тот же двоичный файл, они могут вести себя по-разному.

    Во всяком случае, vim – это надмножество vi . Значит, все, что работает в vi работает в vim . Во всех смыслах и целях это более расширяемая версия vi .

    например, клавиши стрелки печатают ABCD вместо перемещения.

    Для этого есть 2 решения.

    • Измените кодировку символов терминалов на что-то совместимое с vi .
    • Добавьте set nocompatible где-нибудь в ~/.vimrc (вы можете сделать файл, если у вас его нет). затем перезапустите свой термин.

    Второе решение всегда работало лучше всего для меня.

    Обратите внимание, что в нескольких дистрибутивах на основе Debian символическая ссылка в / bin / vi – это «busybox», а не vim. В некоторых случаях это может быть ОК, но функции busybox предоставляют минимальный набор и по какой-то причине, похоже, зависят от того, как был скомпилирован busybox.

    Если vim установлен, он обычно заменяет ссылку busybox – но иногда это не так – busybox все еще может быть связан с / bin / vi, в то время как vim связан с / usr / bin / vi, поэтому он будет зависеть от переменной среды PATH на котором находится первый. Типичный пользователь может получить «vim», но при входе в систему как «root» get busybox vi.

    Лучше всего проверить и посмотреть, какую ссылку vi вы используете (что vi) и с чем связано.

    Linux и Unix - лучшая ОС в мире.