Dov'è il mio file .vimrc?


439

Ho usato Vim e vorrei davvero salvare le mie impostazioni. Il problema che sto riscontrando è che non riesco a trovare il mio file .vimrc e non si trova nella /home/user/.vimrcposizione standard . Come posso trovare questo file?


21
Se non è lì, crealo.

10
La mia macchina Ubuntu lo aveva in un file chiamato /usr/share/vim/vimrc.
ckjbgames,

Risposte:


515

Devi crearlo. Nella maggior parte delle installazioni che ho usato non è stato creato per impostazione predefinita.

Di solito lo crei come ~/.vimrc.


17
controlla anche / etc / vim / vimrc
Natesh bhat il

@Nateshbhat: dovrei continuare a usarlo /etc/vim/vimrco copiarlo ~/.vimrc? O posso avere entrambi?
Mohammad Faisal,

Se vuoi personalizzarlo, lo copi prima in locale. Altrimenti stai modificando le impostazioni per tutti gli utenti.
AlG,

354

Questi metodi funzionano se hai già un file .vimrc:

:scriptnameselenca tutti i file .vim che Vim ha caricato per te, incluso il tuo .vimrcfile.

:e $MYVIMRCapri e modifica l'attuale .vimrc che stai utilizzando, quindi usa Ctrl+ Gper visualizzare il percorso nella barra di stato.


7
@MorganWilde Non necessariamente, :scriptnamesed :e $MYVIMRCentrambi restituiscono output vuoti per me.
Rohmer,

1
+1 per :scriptnames. Tuttavia $MYVIMRCnon è garantito che sia impostato, ad esempio quando si avvia vim con vim -u filename.
1983,

4
: scriptnames ha vimrc ma non .vimrc, sono uguali? Li trovo che si trovano nella mia cartella usr / share, aggiungendo ~ / .vimrc (come risposta accettata) farei qualcosa anche senza ulteriore configurazione? È forse un modo per aggiungere opzioni specifiche dell'utente a vimrc?
Tyler,

15
Nota che :e $MYVIMRCfunziona solo quando c'è un vimrcfile in primo luogo. Altrimenti questo inizierà a modificare un file chiamato letteralmente $MYVIMRC.
Tomalak,

1
@Shadoninja - non era "tuo", questo è il rcfile globale . Qualunque cosa tu definisca nel tuo .vimrcfile (nella maggior parte dei casi nella tua home directory) sovrascriverà le impostazioni predefinite /etc/vimrc.
Mathguy,

92

Risposta breve:

Per creare il tuo vimrc, avvia Vim ed esegui una delle seguenti operazioni:

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

:e $HOME/_vimrc  " on Windows

:e s:.vimrc      " on Amiga

Inserisci le impostazioni desiderate e salva il file.

Nota che l'esistenza di questo file disabiliterà l' compatibleopzione. Vedi sotto per i dettagli.

Risposta lunga:

Esistono due tipi di vimrc:

  • l' utente vimrc in$HOME
  • il sistema vimrc in $VIM(sui sistemi Amiga, s:.vimrcè considerato un utente vimrc)

Il file vimrc dell'utente spesso non esiste fino a quando non viene creato dall'utente. Se non riesci a trovare $HOME/.vimrc(o $HOME/_vimrcsu Windows), puoi, e probabilmente dovresti, crearlo.

Il sistema vimrc dovrebbe normalmente essere lasciato non modificato e si trova nella directory $VIM* . Il sistema vimrc non è un buon posto in cui conservare le impostazioni personali. Se si modifica questo file, è possibile che le modifiche vengano sovrascritte se si aggiorna Vim. Inoltre, le modifiche qui influiranno su altri utenti in un sistema multiutente. Nella maggior parte dei casi, le impostazioni dell'utente vimrc sostituiranno le impostazioni del sistema vimrc.

Da :help vimrc:

Un file che contiene comandi di inizializzazione è chiamato file "vimrc". Ogni riga in un file vimrc viene eseguita come riga di comando Ex. A volte viene anche chiamato file "exrc". Sono lo stesso tipo di file, ma "exrc" è quello che Vi ha sempre usato, "vimrc" è un nome specifico di Vim. Vedi anche | vimrc-intro |.

Luoghi per le tue inizializzazioni personali:

    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

I file vengono cercati nell'ordine sopra specificato e viene letto solo il primo trovato.

(MacOS conta come Unix per quanto sopra.)

Nota che la semplice esistenza di un utente vimrc cambierà il comportamento di Vim disattivando l' compatibleopzione. Da :help compatible-default:

All'avvio di Vim, l'opzione 'compatibile' è attiva. Questo sarà usato quando Vim inizia le sue inizializzazioni. Ma non appena viene trovato un file vimrc dell'utente o un file vimrc nella directory corrente o viene impostata la variabile di ambiente "VIMINIT", verrà impostato su "nocompatible". Ciò ha l'effetto collaterale di impostare o ripristinare altre opzioni (vedere "compatibile"). Ma verranno modificate solo le opzioni che non sono state impostate o ripristinate.


* $VIMpotrebbe non essere impostato nella shell, ma è sempre impostato in Vim. Se vuoi vedere a cosa è impostato, avvia Vim e usa il comando:echo $VIM


28

Come informazioni aggiuntive, principalmente in macOS, il file .vimrc si trova nella directory:

/usr/share/vim/.vimrc

25
Questo è il sistema vimrc. È meglio modificare $ HOME / .vimrc e crearlo se non esiste già.
Laurence Gonsalves,

1
Se il file .vimrc non viene creato nella home directory, allora vi fa riferimento al /usr/share/vim/.vimrcfile per l'uso.
Sandeep,

Lo stesso in Ubuntu, come ho scoperto.
ckjbgames,

25
:echo($MYVIMRC)

ti darà la posizione del tuo file .vimrc.

:e $MYVIMRC

lo aprirà.


1
Riprendo quanto segue: -bash: errore di sintassi vicino al token imprevisto '$ MYVIMRC'
Yannis Dran,

@YannisDran - Uhmm, cosa?
Rook,

@Idigas Stavo scrivendo: echo (xxx) nella mia finestra di comando ma mi sono reso conto che ora intendevi digitare questo nell'editor vim. Tuttavia, anche se: e xxx funziona, il: echo (xxx) no. Dice E121 Variabile non definita: xxx E15: Espressione non valida: ($ xxx)
Yannis Dran

@YannisDran - Giusto per essere chiari, hai avuto questo errore digitando: echo ($ myvimrc) nella riga di comando di vim? Non: echo (myvimrc) per caso?
Rook,

1
Uso $ e l'ho fatto nell'editor vi (Digitando: abilita la riga di comando). A proposito, ora VIM non risponde a nulla, mette solo l'indicatore sulla prima riga di VIM. (Vim-Vi Migliorato v.7.3 su OSX)
Yannis Dran,

15

Per qualsiasi motivo, queste risposte non hanno funzionato per me. Questo è ciò che ha funzionato per me invece:

In Vim, il :versioncomando fornisce i percorsi dei file vimrc e gvimrc dell'utente e di sistema (tra le altre cose) e l'output è simile al seguente:

 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"

Quello che vuoi è user vimrc file: "$HOME/.vimrc"

Quindi per modificare il file: vim $HOME/.vimrc

Fonte: aprire il file vimrc


2
Non capisco come le risposte esistenti non abbiano funzionato del tutto per te quando in realtà la soluzione che hai proposto è già coperta da loro. Questa risposta menziona $HOME/.vimrce la risposta principale menziona ~/.vimrcla stessa cosa $HOME/.vimrc.
doubleDown

Completamente d'accordo con te. Quello che intendevo dire andò perso quando la mia risposta fu modificata
Aaron Alphonsus il

11

Apri Vim e in modalità normale digita:

:echo $VIM

risposta sottovalutata
Fl.pf.

Per me esce solo /usr/share/vim. Versione 8.2.100, Arch Linux.
Yaroslav Nikitenko il

Questo ti dice la directory in cui si trova il tuo sistema vimrc, ma non ti dice dove dovrebbe andare il tuo utente vimrc, o quale dovrebbe essere il suo nome.
Laurence Gonsalves,

Bene, la domanda "dove" è il file vimrc. Dove dovrebbe andare l'utente vimrc? Inseriscilo ~/.vimrco ~/.vim/vimrc, nota che quest'ultimo non ha un punto davanti.
Adem

8

su unix vim --versionti dice le varie posizioni dei file di configurazione di 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"

È possibile verificare che funzioni con VIM in bundle con Git per Windows. (Notando questo solo perché così tanto che una risposta SO potrebbe presumere che NON funziona in Git Bash.)
Janet

5

Ecco alcuni altri suggerimenti:

  • In Arch Linux è quello globale /etc/vimrc. Ci sono alcuni commenti con dettagli utili.

  • Poiché il nome file inizia con a ., è nascosto a meno che non si usi ls -aper mostrare TUTTI i file.

  • Digitando :versionin Vim ti mostrerà un sacco di informazioni interessanti tra cui la posizione del file.

  • Se non sei sicuro di cosa ~/.vimrcsignifichi, guarda questa domanda .


5

Vorrei condividere come ho impostato mostrando il numero di riga come predefinito su Mac.

  1. In un terminale, digitare cd. Questo ti aiuterà ad andare alla cartella principale.
  2. Nel terminale, digitare vi .vimrc. Ciò creerà un file di sistema vimrc vuoto che si desidera utilizzare.
  3. Nel file, digitare set number, quindi premere Escsulla tastiera e digitare :wq. Ciò imposterà il numero di riga mostrato nel file di impostazione predefinito vimrce lo salverà.
  4. vi somethingper vedere se funziona. In caso contrario, provare a riavviare completamente il terminale.

Se in un terminale, digitare cd /usr/share/vim/, andare a quella cartella e digitare ls. Puoi vedere direttamente un file chiamato vimrc. Ma è un file di sistema che dice di sola lettura. Penso che non sia una buona idea provare a modificarlo. Quindi, seguire i passaggi precedenti per creare un vimrc da soli è meglio. Ha funzionato per me.


Una cosa che avevo bisogno di cambiare a quanto sopra per la mia installazione di CentOS7: dopo il passaggio 1, digitare "cd username".
HoldOffHunger

2

Ho provato di tutto nella risposta precedente e non sono riuscito a trovare un .vimrcfile, quindi ho dovuto crearne uno.

Ho copiato il file di esempio, cp vimrc_example.vim ~/.vimrc.

Ho dovuto creare il file, copiando da /usr/share/vim/vim74/vimrc_example.vima ~/.vimrc. Quelle erano le istruzioni nel vimrc_examplefile.

La mia soluzione è per Unix per altri sistemi operativi. Secondo la documentazione di Vim, il percorso di destinazione dovrebbe essere il seguente:

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

1

Da cmd (Windows):

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

Ora in Vim, entra in modalità comando digitando: " : " (ovvero Shift+ ;)

:tabedit $HOME/.vimrc

Ciò presume una tastiera con un layout americano.
Peter Mortensen,


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.