Почему vi ведет себя по-другому в Ubuntu, чем в CentOS?
Я получаю все больше и больше удобнее использовать vi на ежедневной основе, но меня беспокоит то, что когда я использую его на Ubuntu, он ведет себя иначе, чем когда я использую его в CentOS (и, возможно, в других местах). Я действительно предпочитаю, как он работает в CentOS.
Вот три вещи, которые действительно беспокоят меня на Ubuntu:
-
В режиме вставки CentOS в нижней части экрана появляется большое смелое уведомление о том, что я в режиме INSERT, но в Ubuntu нет уведомления, поэтому я не могу сказать, в каком режиме я вхожу.
-
В режиме вставки CentOS я могу нажимать клавиши вверх/вниз, и курсор перемещается вверх и вниз. Но когда я нахожусь в Ubuntu, при нажатии вверх и вниз вставляют буквы A и B соответственно на новые строки.
-
В режиме вставки CentOS я могу использовать клавишу backspace, и он удалит символ, который находится перед курсором, но в Ubuntu я просто слышу звуковой сигнал и ничего не происходит. Я могу нажать клавишу "Удалить" в командном режиме, но я бы скорее нажал клавишу возврата.
Являются ли эти различия чем-то, с чем мне приходится жить, или это легко исправить?
Ответы
Ответ 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 просто превращается в клавишу удаления.