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

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

VI

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

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) и с чем связано.

  • В Vim, как я могу удалить весь текст из текущей позиции курсора до следующего пробела?
  • собирать символ из строки 1 с символом из строки 2
  • Редактирование последовательности полей в vim
  • быстро измените следующие несколько строк в vim?
  • Как выбрать / удалить до конца файла в vim / gvim?
  • Почему пробелы не включаются в обернутый контент vim backreference?
  • Почему в команде «: normal» ^ [кажется, не работает с A? (ВИМ)
  • vim: скрыть первые n букв всех строк в файле
  • Одновременно открывать сразу несколько файлов
  • Является ли этот сумасшедший vim voodoo (увеличение альфа-регистров) возможным внутри макроса?
  • В Vim, как я могу копировать несколько строк? (не диапазон);
  • Как вставить текущее имя файла в содержимое Vim?
  • Interesting Posts

    Как сообщить «последней» команде прочитать STDIN?

    Перенаправить домой общий раздел NTFS

    Несоответствие команды lsof при попытке получить количество открытых файлов на каждый процесс

    Msgstr "Нет пакета <имя пакета>."?

    Как установить Sun / Oracle Java 1.6 на centOS 6, используя только текстовый режим?

    Как этот каталог использует столько места

    Как sipsak может имитировать вызов с usrloc?

    Почему запрос пароля немного отстает после ввода имени пользователя в tty?

    Создание нескольких устройств с одного устройства?

    Linux Mint вешает проверку батареи, не может получить доступ к терминалу

    CentOS 7 загружается слишком быстро, и сеть не готова при выполнении сценариев cron

    Есть ли способ контролировать температуру процессора с использованием lm_sensors?

    Список пакетов, управляемых DKMS

    SELinux не позволяет oddjobd-mkhomedir создавать пользовательский домашний каталог в нестандартном месте

    Как искать пустое чередование с tcsh

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