Почему vi ведет себя иначе в Ubuntu, чем в CentOS?
Вопрос
Мне становится все более и более комфортно использовать vi на ежедневной основе, но одна вещь, которая меня беспокоит, заключается в том, что когда я использую его на Ubuntu, он ведет себя иначе, чем когда я использую его на CentOS (и, вероятно, в других местах).На самом деле мне больше нравится, как это работает в CentOS.
Вот три вещи, которые действительно беспокоят меня в Ubuntu:
В режиме вставки CentOS внизу есть большое жирное уведомление о том, что я нахожусь в режиме вставки, но в Ubuntu уведомления нет, поэтому я никогда не могу сказать, в каком режиме я нахожусь.
В режиме вставки CentOS я могу нажимать клавиши up / down, и курсор будет перемещаться вверх и вниз.Но когда я нахожусь в Ubuntu, нажатие вверх и вниз вставляет буквы A и B соответственно в новые строки.
В режиме вставки CentOS я могу использовать клавишу backspace, и она удалит символ, который находится перед курсором, но в Ubuntu я просто слышу звуковой сигнал, и ничего не происходит.Я могу нажать клавишу delete в командном режиме, но я бы предпочел иметь возможность нажимать клавишу backspace.
Являются ли эти различия чем-то, с чем мне приходится жить, или это легко исправить?
Решение
В 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 в режиме вставки)
Другие советы
Ранее предложенные ответы для меня не сработали.
Я, как правило, предпочитаю оставлять установки операционной системы как можно более стандартными и сохранять конфигурационные файлы как можно более простыми.Чтобы исправить эти три проблемы в Ubuntu 12.04, я сделал следующее:
В "~/.vimrc" вставьте строки -
установить nocp
установите bs=2
В дополнение к установке vim-full, если у вас еще нет ~/.vimrc
:
$ cp /usr/share/vim/vimcurrent/vimrc_example.vim ~/.vimrc
Этот пример .vimrc
уже сделаны наиболее важные настройки, и это хорошее начало для настройки.
Я предполагаю, вы имеете в виду VIM, когда говорите VI?И, по крайней мере, 2-й пункт, похоже, связан с проблемой консоли / терминала с комбинацией VIM / term.На странице ниже предложены некоторые исправления, но ни одно из них не сработало (я использую vim поверх putty в окне разработки Ubuntu).
http://vim.wikia.com/wiki/Fix_broken_arrow_key_navigation_in_insert_mode
3 -й пункт можно перезаписать , используя следующее в вашем .vimrc
установить backspace=отступ, eol, начало
(1) Проверьте, есть ли showmode
настройки в обоих случаях разные.
(2) Не знаю насчет этого, я думаю, что это больше связано с терминалом, чем с самим Vi.
(3) Возможно, попробуйте использовать :map <BS> :normal d
?
В CentOS vi является псевдонимом для другой программы vim, но в последних версиях Ubuntu vi означает просто vi, а не vim.Разницу вы видите, если это разница между двумя разными программами, vi и vim.
Если вам нравится vim, просто запустите vim, а не vi.Это работает и в Ubuntu
Установка этого в моем .vimrc сработала для меня..
set term=builtin_ansi
У меня есть WDMyCloud с Debian 7 внутри, я использую like:
cp /usr/share/vim/vimcurrent/debian.vim ~/.vimrc
В моем случае vim-файл создается следующим образом:
set nocompatible
fixdel
Если я добавлю set t_kb=^H
, клавиша backspace просто отображается как клавиша удаления.