Где мой файл .vimrc?


440

Я использовал Vim , и я действительно хотел бы сохранить свои настройки. Проблема в том, что я не могу найти свой файл .vimrc, и он не находится в стандартном /home/user/.vimrcместе. Как я могу найти этот файл?


21
Если его там нет, создайте его.

10
На моей машине с Ubuntu он был в файле с именем /usr/share/vim/vimrc.
ckjbgames

Ответы:


515

Вы должны создать это. В большинстве установок, которые я использовал, он не был создан по умолчанию.

Вы обычно создаете это как ~/.vimrc.


17
также проверьте / etc / vim / vimrc
Натеш Бхат

@Nateshbhat: я должен продолжать использовать /etc/vim/vimrcили скопировать это ~/.vimrc? Или я могу иметь оба?
Мухаммед Фейсал

Если вы хотите настроить его, я бы сначала скопировал его локально. В противном случае вы меняете настройки для всех пользователей.
AlG

354

Эти методы работают, если у вас уже есть файл .vimrc:

:scriptnamesперечислите все файлы .vim, которые Vim загрузил для вас, включая ваш .vimrcфайл.

:e $MYVIMRCоткройте и отредактируйте текущий .vimrc, который вы используете, затем используйте Ctrl+ Gдля просмотра пути в строке состояния.


7
@MorganWilde Не обязательно, :scriptnamesи :e $MYVIMRCоба возвращают пустые результаты для меня.
Rohmer

1
+1 за :scriptnames. Однако $MYVIMRCне гарантируется его установка, например, при запуске vim с vim -u filename.
1983

4
: scriptnames имеет vimrc, но не .vimrc, они одинаковы? Я нахожу их в моей папке usr / share, будет ли добавление ~ / .vimrc (как принятый ответ) вообще что-то делать без дальнейшей настройки? Возможно, это способ добавить пользовательские параметры в vimrc?
Тайлер

15
Обратите внимание, что :e $MYVIMRCработает только тогда, когда есть vimrcфайл в первую очередь. В противном случае начнется редактирование файла с буквальным названием $MYVIMRC.
Томалак

1
@Shadoninja - это не «твое», это глобальный rcфайл. Все, что вы определяете в своем .vimrcфайле (в большинстве случаев в вашем домашнем каталоге), переопределяет значения по умолчанию в /etc/vimrc.
mathguy

92

Короткий ответ:

Чтобы создать vimrc, запустите Vim и выполните одно из следующих действий:

:e $HOME/.vimrc  " on Unix, Mac or OS/2

:e $HOME/_vimrc  " on Windows

:e s:.vimrc      " on Amiga

Вставьте нужные настройки и сохраните файл.

Обратите внимание, что наличие этого файла отключит эту compatibleопцию. Смотрите ниже для деталей.

Длинный ответ:

Существует два вида vimrc:

  • пользователь vimrc в$HOME
  • система vimrc в $VIM(в системах Amiga, s:.vimrcсчитается пользователь vimrc)

Пользовательский файл vimrc часто не существует, пока не создан пользователем. Если вы не можете найти $HOME/.vimrc(или $HOME/_vimrcв Windows), вы можете, и, вероятно, должны просто создать его.

Системный vimrc обычно следует оставить без изменений и находится в каталоге $VIM* . Система vimrc не подходит для хранения ваших личных настроек. Если вы измените этот файл, ваши изменения могут быть перезаписаны при обновлении Vim. Кроме того, изменения здесь коснутся других пользователей многопользовательской системы. В большинстве случаев настройки в пользовательском vimrc переопределяют настройки в системном vimrc.

От :help vimrc:

Файл, содержащий команды инициализации, называется файлом «vimrc». Каждая строка в файле vimrc выполняется как командная строка Ex. Иногда его также называют файлом "exrc". Это файлы одинакового типа, но Vi всегда использовал exrc, а vimrc - специфическое имя Vim. Также см. | Vimrc-intro |.

Места для вашей личной инициализации:

    Unix            $HOME/.vimrc or $HOME/.vim/vimrc
    OS/2            $HOME/.vimrc, $HOME/vimfiles/vimrc
                    or $VIM/.vimrc (or _vimrc)
    MS-Windows      $HOME/_vimrc, $HOME/vimfiles/vimrc
                    or $VIM/_vimrc
    Amiga           s:.vimrc, home:.vimrc, home:vimfiles:vimrc
                    or $VIM/.vimrc

Файлы ищутся в порядке, указанном выше, и читается только первый найденный файл.

(MacOS считается Unix для выше.)

Обратите внимание, что само существование пользователя vimrc изменит поведение Vim, отключив эту compatibleопцию. От :help compatible-default:

Когда Vim запускается, опция «совместимый» включена. Это будет использоваться, когда Vim начнет свою инициализацию. Но как только будет найден пользовательский файл vimrc, или файл vimrc в текущем каталоге, или переменная окружения "VIMINIT", он будет установлен как nocompatible. Это имеет побочный эффект установки или сброса других параметров (см. «Совместимые»). Но будут изменены только те параметры, которые не были установлены или сброшены.


* $VIMне может быть установлен в вашей оболочке, но всегда устанавливается внутри Vim. Если вы хотите увидеть, на что он настроен, запустите Vim и используйте команду:echo $VIM


28

В качестве дополнительной информации, в основном в macOS, файл .vimrc находится в каталоге:

/usr/share/vim/.vimrc

25
Это система vimrc. Лучше отредактировать $ HOME / .vimrc и создать его, если он еще не существует.
Лоуренс Гонсалвес

1
Если файл .vimrc не создан в домашнем каталоге, то vi ссылается на /usr/share/vim/.vimrcфайл для использования.
Сандип

То же самое в Ubuntu, как я нашел.
ckjbgames

25
:echo($MYVIMRC)

даст вам местоположение вашего файла .vimrc.

:e $MYVIMRC

открою это.


1
Я возвращаю следующее: -bash: синтаксическая ошибка рядом с неожиданным токеном '$ MYVIMRC'
Яннис Дран

@YannisDran - Хм, а что?
Ладья

@Idigas Я набирал: echo (xxx) в моем командном окне, но теперь я понял, что вы хотели напечатать это в редакторе vim. Однако, хотя: e xxx работает, а: echo (xxx) - нет. Там написано E121 Неопределенная переменная: xxx E15: Неверное выражение: ($ xxx)
Яннис Дран

@YannisDran - Просто чтобы прояснить, вы получили эту ошибку при вводе: echo ($ myvimrc) в командной строке vim? Не: echo (myvimrc) случайно?
Ладья

1
Я использую $, и я сделал это в редакторе vi (набрав: включает командную строку). Кстати, теперь vim ничего не отвечает, он только помещает индикатор в первую строку vim. (Vim-Vi улучшен v.7.3 для OSX)
Яннис Дран

15

По какой-то причине эти ответы не совсем сработали для меня. Вот что сработало для меня вместо этого:

В Vim :versionкоманда дает вам пути к системным и пользовательским файлам vimrc и gvimrc (среди прочего), и результат выглядит примерно так:

 system vimrc file: "$VIM/vimrc"
   user vimrc file: "$HOME/.vimrc"
    user exrc file: "$HOME/.exrc"
system gvimrc file: "$VIM/gvimrc"
  user gvimrc file: "$HOME/.gvimrc"

Тот, который вы хотите, это user vimrc file: "$HOME/.vimrc"

Итак, чтобы отредактировать файл: vim $HOME/.vimrc

Источник: Открыть файл vimrc


2
Я не понимаю, как существующие ответы не совсем сработали для вас, когда фактически предложенное вами решение уже покрыто ими. В этом ответе упоминается, $HOME/.vimrcа в верхнем ответе упоминается ~/.vimrcто же самое, что и $HOME/.vimrc.
DoubleDown

Полностью с тобой согласен. То, что я хотел сказать, было потеряно, когда мой ответ был отредактирован
Аарон Альфонсус

11

Откройте Vim и в обычном режиме введите:

:echo $VIM

недооцененный ответ
Fl.pf.

Для меня это только вывод /usr/share/vim. Версия 8.2.100, Arch Linux.
Ярослав Никитенко

Это говорит вам о том, в каком каталоге находится ваша система vimrc, но не указывает, куда должен идти ваш пользователь vimrc или как должно быть его имя.
Лоуренс Гонсалвес

Что ж, вопрос «где» - это файл vimrc. Куда должен пойти пользователь vimrc? Поместите это в ~/.vimrcили ~/.vim/vimrc, заметьте, что у последнего нет точки перед этим.
ADEM

8

на Unix vim --versionсообщает вам различные местоположения конфигурационных файлов VIM:

   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/share/vim"

Можно убедиться, что это работает с VIM, который поставляется вместе с Git для Windows. (Отмечая это только потому, что такой ответ может предполагать, что НЕ работает в Git Bash.)
Джанет

5

Вот еще несколько советов:

  • В Arch Linux глобальный находится на /etc/vimrc. Там есть несколько комментариев с полезными деталями.

  • Поскольку имя файла начинается с a ., оно скрыто, если вы не используете ls -aдля отображения ВСЕХ файлов.

  • Печатая в :versionто время как в Vim покажет вам кучу интересной информации, включая местоположение файла.

  • Если вы не уверены, что ~/.vimrcзначит посмотрите на этот вопрос .


5

Я хотел бы поделиться тем, как я установил отображение номера строки по умолчанию на Mac.

  1. В терминале введите cd. Это поможет вам перейти в домашнюю папку.
  2. В терминале введите vi .vimrc. Это создаст пустой системный файл vimrc, который вы хотите использовать.
  3. В файле введите set number, а затем нажмите Escна клавиатуре и введите :wq. Это установит номер строки, показанный в файле настроек по умолчанию, vimrcи сохранит его.
  4. vi somethingчтобы увидеть, если это работает. Если нет, попробуйте перезагрузить терминал полностью.

Если в терминале, введите cd /usr/share/vim/, перейдите в эту папку и введите ls. Вы можете непосредственно увидеть файл с именем vimrc. Но это системный файл, который говорит только для чтения. Я чувствую, что не стоит пытаться изменить его. Так что, следуя вышеприведенным шагам, лучше создать vimrc самостоятельно. Это сработало для меня.


Для установки CentOS7 мне нужно было перейти к описанному выше: после шага 1 введите «cd username».
HoldOffHunger

2

Я попробовал все в предыдущем ответе и не смог найти .vimrcфайл, поэтому мне пришлось его создать.

Я скопировал файл примера cp vimrc_example.vim ~/.vimrc.

Я должен был создать файл, копируя из /usr/share/vim/vim74/vimrc_example.vimв ~/.vimrc. Это были инструкции в vimrc_exampleфайле.

Мое решение для Unix для других операционных систем. Согласно документации Vim, ваш путь назначения должен быть следующим:

    For Unix and OS/2   : ~/.vimrc
    For Amiga           : s:.vimrc
    For MS-DOS and Win32: $VIM\_vimrc
    For OpenVMS         : sys$login:.vimrc

1

Из cmd (Windows):

C\Users\You> `vim foo.txt`

Теперь в Vim войдите в командный режим, набрав: " : " (т.е. Shift+ ;)

:tabedit $HOME/.vimrc

Это предполагает клавиатуру с американской раскладкой.
Питер Мортенсен


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.