Де мій файл .vimrc?


438

Я використовую Vim , і дуже хотів би зберегти свої налаштування. Проблема, яка у мене виникає, полягає в тому, що я не можу знайти свій .vimrc файл, і він знаходиться не в стандартному /home/user/.vimrcмісці. Як я можу знайти цей файл?


21
Якщо його там немає, створіть його.

10
Мій апарат Ubuntu мав його у файлі з назвою /usr/share/vim/vimrc.
ckjbgames

Відповіді:


513

Вам потрібно його створити. У більшості установок, які я використовував, вона не створена за замовчуванням.

Ви зазвичай створюєте його як ~/.vimrc.


17
також перевірити / etc / vim / vimrc
Natesh bhat

@Nateshbhat: чи варто продовжувати використовувати /etc/vim/vimrcчи копіювати це ~/.vimrc? Або я можу мати обоє?
Мохаммед Файсал

Якщо ви хочете налаштувати його, спершу скопіюю його локально. Інакше ви змінюєте налаштування для всіх користувачів.
AlG

354

Ці методи працюють, якщо у вас вже є файл .vimrc:

:scriptnamesперерахуйте всі файли .vim, які завантажив Vim, включаючи ваш .vimrcфайл.

:e $MYVIMRCвідкрийте та відредагуйте поточний .vimrc, який ви використовуєте, а потім натисніть Ctrl+, Gщоб переглянути шлях у рядку стану.


7
@MorganWilde Не обов'язково, :scriptnamesі :e $MYVIMRCобидва повертають пусті вихідні дані для мене.
Ромер

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

4
: у імен сценаріїв є 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". Вони файли одного типу, але "exrc" - це те, що Vi завжди використовував, "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", він буде встановлений у "несумісний". Це має побічний ефект від встановлення або скидання інших параметрів (див. "Сумісність"). Але будуть змінені лише параметри, які не були встановлені або скинуті.


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


28

В якості додаткової інформації, в основному в macOS, файл .vimrc знаходиться в каталозі:

/usr/share/vim/.vimrc

25
Це система vimrc. Краще відредагувати $ HOME / .vimrc та створити його, якщо він ще не існує.
Лоранс Гонсальвс

1
Якщо файл .vimrc не створений у домашньому каталозі, тоді ви використовуєте /usr/share/vim/.vimrcфайл посилань на використання.
Сандіп

Те саме в Ubuntu, як я знайшов.
ckjbgames

25
:echo($MYVIMRC)

дасть вам розташування вашого файлу .vimrc.

:e $MYVIMRC

відкриє його.


1
Я повертаю наступне: -bash: синтаксична помилка поблизу несподіваного маркера '$ MYVIMRC'
Yannis Dran

@YannisDran - Гмм, що?
Грак

@Idigas Я вводив: echo (xxx) у моєму вікні команд, але я зрозумів, що ти маєш намір ввести це у редактор vim. Однак, хоча e xxx працює, echo (xxx) не робить. У ньому написано E121 Undefined Variable: xxx E15: Invalid Expression: ($ xxx)
Yannis Dran

@YannisDran - Просто щоб було зрозуміло, ви отримали цю помилку під час введення: echo ($ myvimrc) у командний рядок vim? Ні: відлуння (myvimrc) випадково?
Грач

1
Я використовую $ і зробив це в редакторі vi (Введення: дозволяє командний рядок). Btw, тепер vim нічого не відповідає, він лише ставить індикатор на перший рядок vim. (Vim-Vi Improved v.7.3 на OSX)
Yannis Dran

15

З будь-якої причини ці відповіді не дуже спрацювали для мене. Це замість мене працювало:

У :versionкоманді Vim команда дає вам шлях до системних та користувальницьких файлів 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.
подвійнеDown

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

11

Відкрийте Vim та в звичайному режимі:

:echo $VIM


Для мене це лише вихід /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. (Відзначаючи це лише тому, що стільки, що відповідь
Джанет

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 ім'я користувача".
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.