В A. vimrc "set nocompatible" совершенно бесполезен?
несколько пользователей в этом эпическом вопросе поставили следующее в .vimrc
:
" Necesary for lots of cool vim things
set nocompatible
но это действительно необходимо? Из документов:
'compatible' 'cp'
boolean (default on, off when a |vimrc| or |gvimrc| file is found)
если set nocompatible
едет в .vimrc
, это означает, что a .vimrc
файл существует, что, по-видимому, делает его бессмысленным.
4 ответа:
Если это общесистемный vimrc, эта опция не будет выключена. Итак, если вы меняете общесистемный vimrc и хотите его, вам нужно его установить.
из раздела документации *совместимость-по умолчанию* (выделено мной):
когда Vim запускается, "совместимый" опция включена. Это будет использоваться, когда Vim начинает свою инициализацию. Но как только vimrc пользователей файл найден, или файл vimrc в текущая каталог, или "VIMINIT" переменная окружения установлена, она будет установите значение "nocompatible".
другое отличие заключается в том, что явная установка "nocompatible" отменяет вызов vim с помощью -C флаг.
в любом другом сценарии, да, установка "nocompatible" в вашем vimrc-это noop.
В конце концов я думаю, что это просто "береженого Бог бережет".
многие люди разделяют их .файлы vimrc на GitHub, и я иногда буду тестировать настройки без замены моего .файл vimrc. vim позволяет мне делать это с флагом-U.
vim -u test_vimrc
от vim": help nocompatible"
(Примечание: это не происходит для общесистемного файла vimrc или gvimrc, ни для файла, заданного с аргументом | - u/).
Это означает, что если вы поделитесь своими .vimrc с кем-то, и они используют флаг-u для загрузки вашего файла, vim не будет настроен так же, как если бы файл был назван .vimrc и находится в вашем домашнем каталоге.
Я использовал vim в Cygwin на виртуальной машине Windows, и каждый раз, когда я был в режиме вставки, нажатие клавиш со стрелками приведет к печати vim "A", "B", "C" или "D" на экране вместо прокрутки. Я нашел форум, который сказал, что включение vim в nocompatible mode исправит это. К счастью, так оно и было.
Я поставил "set nocompatible" в моем ~/.файл vimrc и проблема ушла. Так что, возможно, это не 100% бесполезно.
основываясь на том, что Джонни указал выше, я был просто поражен, когда я только что узнал:
$ cat /usr/share/vim/vimrc.tiny " Debian system-wide default configuration Vim set runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim74,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after set compatible
ARGH!!!
Нет, я этого не ожидал. Debian (или Debian Unstable aka Ubuntu) действительно создает кошмар для своих пользователей, переопределяя настройку по умолчанию установить совместимый. Я надеюсь, что теперь вы будете знать, почему, когда вы приходите из FreeBSD, первое, что вам нужно будет сделать, это переопределить общесистемную настройку, поставив
set nocompatible
в свой собственный~/.vimrc
. Потому что в противном случае вы бы просто создавали буквы вместо того, чтобы перемещать курсор так, как вы привыкли.Я думаю, что это ужасная идея. Другими словами, это
set compatible
строка должна быть удалены от всей системыvimrc.tiny
как в Debian, так и в Ubuntu, потому что это будет раздражать новых пользователей, которые еще не так умны, как знать, как заставить работать клавиши курсора. Это такие вещи, которые заставляют ихnano
и другие из-за такие совершенно бессмысленные блокираторы!Я бы очень хотел поговорить с чуваком, который когда-то распространил это изменение в общесистемный файл ресурсов в Debian. А может быть, и тем людям, которые в полной мере осознали его перемены.
Джонни прав: на собственном компьютере, вы можете удалить строку из системы .vimrc (если есть), и коснитесь пустого .vimrc на вашем $HOME. Большое спасибо, что указали на это, снова меньше беспорядка. Обратите внимание, что вы Должно быть, это
~/.vimrc
(даже если пустая!) как иначе вы не сможете использовать курсоры без явно указавset nocompatible
.