Подтвердить что ты не робот

Почему vi ведет себя по-другому в Ubuntu, чем в CentOS?

Я получаю все больше и больше удобнее использовать vi на ежедневной основе, но меня беспокоит то, что когда я использую его на Ubuntu, он ведет себя иначе, чем когда я использую его в CentOS (и, возможно, в других местах). Я действительно предпочитаю, как он работает в CentOS.

Вот три вещи, которые действительно беспокоят меня на Ubuntu:

  • В режиме вставки CentOS в нижней части экрана появляется большое смелое уведомление о том, что я в режиме INSERT, но в Ubuntu нет уведомления, поэтому я не могу сказать, в каком режиме я вхожу.

  • В режиме вставки CentOS я могу нажимать клавиши вверх/вниз, и курсор перемещается вверх и вниз. Но когда я нахожусь в Ubuntu, при нажатии вверх и вниз вставляют буквы A и B соответственно на новые строки.

  • В режиме вставки CentOS я могу использовать клавишу backspace, и он удалит символ, который находится перед курсором, но в Ubuntu я просто слышу звуковой сигнал и ничего не происходит. Я могу нажать клавишу "Удалить" в командном режиме, но я бы скорее нажал клавишу возврата.

Являются ли эти различия чем-то, с чем мне приходится жить, или это легко исправить?

4b9b3361

Ответ 1

В ubuntu установка vim по умолчанию происходит из пакета vim-tiny, что не все.

Вы, вероятно, захотите:

apt-get install vim

или

apt-get install vim-full

Некоторые из ваших других проблем звучат как проблемы с ключевым словом backspace и другими вещами. Как только вы получите полную версию vim, попробуйте добавить их в свой .vimrc:

set nocompatible

set t_kb=^H
fixdel

(ВАЖНОЕ ПРИМЕЧАНИЕ: что ^ H - буквальный символ ctrl-H, который вы получите, сделав Ctrl-V Ctrl-H в режиме вставки)

Ответ 2

Ранее предложенные ответы не помогли мне.

Я предпочитаю оставлять установки ОС в качестве запаса, насколько это возможно, и сохранять файлы конфигурации как можно проще. Чтобы исправить эти три проблемы в Ubuntu 12.04, я сделал следующее:

В "~/.vimrc" вставьте строки -
set nocp
set bs = 2

Ответ 3

В дополнение к установке vim-full, если вы еще не hava a ~/.vimrc:

$ cp /usr/share/vim/vimcurrent/vimrc_example.vim ~/.vimrc

Этот пример .vimrc уже делает наиболее важные настройки и является хорошим началом для настройки.

Ответ 4

Я предполагаю, что вы имеете в виду VIM, когда говорите VI? И, по крайней мере, вторая точка, похоже, представляет собой консольную/терминальную проблему с VIM/term combo. На приведенной ниже странице предлагаются некоторые исправления, но никто из них не смог выполнить работу (я использую vim поверх шпатлевки в окне Ubuntu dev)

http://vim.wikia.com/wiki/Fix_broken_arrow_key_navigation_in_insert_mode

Третья точка может быть перезаписана с использованием следующего в вашем .vimrc

set backspace = indent, eol, start

Ответ 5

Мне лично нравится vim tiny и его элементы управления - намного ближе к реальному vi. В некоторых дистрибутивах вы ТОЛЬКО получаете "vim" - vim-tiny недоступны. В них я нашел похожие решения - к основным из них - украсть vim-крошечный из другого дистрибутива или скомпилировать реальный vi (код все еще доступен).

Некоторые из моих проблем с vim - это его раскраска - большинство из которых можно отключить, но не все. Большая проблема заключается не в сообщении номера строки на Ctrl-G для меня, это делает полный vim непригодным для использования - я не нашел пути вокруг этого.

Почти все проблемы vim/vi могут быть устранены, если обе версии могут быть доступны с установкой vim. Если установлен только vim-tiny, вы всегда можете установить полную версию vim - однако по какой-то неизвестной причине, если установлен полный vim (версии Slackware), vim-tiny недоступен.

Полный "vim" должен иметь простой переключатель, чтобы перейти на "vim-tiny", переключатель vi-совместимости НЕ делает этого. Это отношение разработчиков vim сохраняется в течение многих лет - их цель состоит в том, чтобы эффективно использовать концепцию "рыночная доля", то есть взять на себя и настроить параметры пользователей - я НЕ впечатлен.

Ответ 6

(1) Проверьте, отличается ли параметр showmode на обоих.

(2) Не знаю об этом, я думаю, что это больше связано с терминалом, чем сам Vi.

(3) Возможно, попробуйте использовать :map <BS> :normal d?

Ответ 7

В CentOS vi является псевдонимом для другой программы, vim, но в последних версиях Ubuntu vi означает только vi, а не vim. Разницу вы видите, если разница между двумя различными программами, vi и vim.

Если вам нравится vim, просто запустите vim, а не vi. Это также работает в Ubuntu.

Ответ 8

Настройка этого в моем .vimrc сработала для меня..

set term=builtin_ansi

Ответ 9

У меня есть WDMyCLoud с Debian 7 внутри, im используя:

cp /usr/share/vim/vimcurrent/debian.vim ~/.vimrc

Ответ 10

В моем случае файл .vim создается следующим образом:

set nocompatible

fixdel

Если я добавлю set t_kb=^H, клавиша Backspace просто превращается в клавишу удаления.