Il modo migliore per rendere vim di MacVim (console, non mvim) il valore predefinito invece di vim di Mac OS X?


101

Ho installato MacVim usando homebrew. ( brew install macvim). Se chiamo mvimda cmd, apre la GUI MacVim.

Vorrei fare vimchiamare il Vim ( /Users/user/Applications/MacVim.app/Contents/MacOS/Vim) di MacVim invece del /usr/bin/vimvim del sistema ( ). Qual è il modo migliore per farlo? So di poterlo fare alias vim="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim"ma non so se sia l'approccio migliore ...

EDIT : Ragazzi, grazie per tutte le vostre risposte, ma in effetti, dal momento che sto già usando homebrew, usare --override-system-vimè il modo elegante per realizzare ciò di cui ho bisogno.


Qual è la differenza tra la console MacVim vim e la normale vim in Terminal?
hobbes3,

2
@ hobbes3, il vim fornito con osx non ha compilato il supporto ruby ​​o python. Vim di MacVim. Ciò è necessario se si desidera utilizzare plug-in come Command-T
asgeo1

Il vim fornito con OS X inoltre non supporta gli appunti stravaganti.
Thanatos,

Risposte:


136

Credo che questo sia quello che stai cercando:

brew install macvim --with-override-system-vim

Questo creerà collegamenti simbolici vim, vimdiff, ecc. A mvim in / usr / local / bin / vim, e fintanto che / usr / local / bin è prima di / usr / bin nel tuo PERCORSO, otterrai i risultati " stai cercando.

Le versioni precedenti di brew utilizzavano l'interruttore --override-system-vimche era obsoleto.


3
Da quando ho detto che sto già usando l'homebrew, penso che questa sia davvero l'opzione migliore: non sapevo che questa opzione fosse possibile. Grazie!
Qualcuno usa ancora il tuo MS-DOS l'

2
Tecnicamente, questa è una gemma nascosta nella formula vim, piuttosto che lo stesso homebrew. :)
kejadlen,

Mi chiedo, cosa succede se faccio una birra per rimuovere macvim, questo rimuoverà macvim e lascerà il vim originale? O anche quello sparirà?
seds

4
Questo a quanto pare richiede l'Xcode completo installato tramite l'app store (e non solo gli strumenti da riga di comando).
ScoBe

3
Questo non funziona più, perché homebrew ha rimosso tutte le opzioni di formula in futuro. discourse.brew.sh/t/…
Fadecomic


17

Puoi creare un alias nel tuo ~/.bash_profile, basta aggiungere questa linea a quel file:

alias vim="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim"

In realtà, lo sarebbe alias vim="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim", dal momento che voglio collegarmi al vim della console di MacVim e non alla versione gui.
Qualcuno usa ancora il tuo MS-DOS l'

Ah, va bene. Fisso!
Wuffers,

Poiché vim è un'applicazione interattiva, fare un alias che sovrascrive Vim del sistema non sarà così dannoso, immagino ...
Qualcuno usa ancora il tuo MS-DOS l'

1
Per me questo era in / Applicazioni. Bello alias!
user72923

4

brew install macvim --override-system-vimè deprecato. Dovresti usare brew install macvim --with-override-system-viminvece.


Non lavora più.
GESii

3

Per modificare l'editor predefinito del sistema aggiungi quanto segue al tuo .bash_profile

export EDITOR=/usr/local/Cellar/macvim/<version>/bin/mvim 

La modifica di questo dovrebbe consentire di utilizzare MacVim per l'editor predefinito (anche per l'app che avvia automaticamente l'editor)

EDIT
Per un normale utilizzo sul terminale, dovresti comunque usare 'mvim' per modificare un file. Se vuoi ancora digitare "vi" sul terminale, suggerirei di aggiungere anche l'alias al .bash_profile.

EDIT 2
Dopo aver visto la modifica dell'OP, è possibile anteporre il percorso del vim di MacVim al percorso del sistema. Nota Non penso che questo sia il modo migliore perché potrebbe influenzare anche altre chiamate di sistema durante le chiamate al terminale. Quindi, se vuoi davvero che cambi quando scrivi 'vim' alla riga di comando, l'uso di un alias credo sia la cosa più pulita e sicura da fare.

PATH="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim:${PATH}"
export PATH

Metti alla prova le tue impostazioni usando which vimal terminale.


2
Non voglio rendere mvim predefinito. Voglio chiamare vim ( /Users/user/Applications/MacVim.app/Contents/MacOS/Vim) di MacVim quando scrivo vim sul terminale anziché vim ( /usr/bin/vim) del sistema .
Qualcuno usa ancora MS-DOS l'

@Somebody usa ancora il tuo MS-DOS: mi dispiace, ho capito male il tuo intento (rende un po 'di più da ora guardando la tua modifica).
Adam Lewis,

Hum, ma mi hai dato un'idea: se mi collego vima symlink /usr/local/bine utilizzo l' $PATHapproccio, potrebbe funzionare.
Qualcuno usa ancora il tuo MS-DOS l'

@Somebody ti usa ancora MS-DOS: fai attenzione al collegamento simbolico a una directory che ha già vim in essa ... Potrebbe diventare difficile sapere quale vim otterrai.
Adam Lewis,

1
:) La mia mente è passata al caso peggiore (locale rimosso). Dovresti stare bene con l'utente locale.
Adam Lewis,

2

Modifica: basta installare homebrew (vale la seccatura!) E brew install vim

La mia vecchia risposta è di seguito:


Non voglio installare xcode solo per questo, inoltre non voglio usare alias o metodo brew (che richiede anche xcode) quindi faccio questo:

  1. Per prima cosa scarico MacVim dalla pagina delle versioni ,
  2. Quindi installo MacVim trascinandolo nella mia cartella Applicazioni,
  3. Per l'utilizzo del terminale, c'è anche un'app terminale nella zip, chiamata mvim, la installo eseguendo questo comando:

    sudo mv mvim / usr / local / bin / vim

  4. E poi, ripasso l'ambiente hash -r(o chiudo e riapro il terminale).

  5. Infine, quando corro vimdal mio terminale vedo quello aggiornato "nella console".

Spero che questo aiuti qualcuno.


Uso l'homebrew per molte cose. Vale la pena. Avere XCode installato ma poter installare tutto ciò di cui ho bisogno semplicemente chiamando brew installè fantastico.
Qualcuno usa ancora il tuo MS-DOS il

1

I miei due centesimi, eseguo questo ogni volta che ho aggiornato il mio pitone tramite homebrew.

brew reinstall vim --HEAD --with-cscope --with-lua --override-system-vim
brew reinstall macvim --HEAD --with-cscope --with-lua --override-system-vim
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.