Modificare l'editor predefinito per i file aperti nel terminale? (es. impostalo su TextEdit / Coda / Textmate)


110

C'è un modo per rendere i file aperti per la modifica nel terminale invece aperti in Textedit?

Ad esempio, dove un comando potrebbe aprire un file per la modifica (come git commit), invece di aprire quel file in vim o emacs, si aprirà in Textedit (o forse un'altra applicazione di modifica del testo di tua scelta, come Coda o Sublime).

E come domanda bonus, c'è un modo per configurare specificamente git per aprire automaticamente il file creato dopo l'esecuzione git commitin un editor dalla directory delle applicazioni?


1
Sì, sto usando OSX (10.6.4).
Diogene

La migliore soluzione che ho trovato è usare duti-> apple.stackexchange.com/a/123954/58507
Gomino

per mac os 10.10+ le soluzioni precedenti non funzioneranno. Prova questo apple.stackexchange.com/questions/123833/…
Rishikesh Shukla

Risposte:


137

La maggior parte dei programmi controllerà la $EDITORvariabile d'ambiente, quindi puoi impostarla sul percorso di TextEdit nel tuo bashrc. Git userà anche questo.

Come fare questo:

  • Aggiungi quanto segue al tuo ~/.bashrcfile:
    export EDITOR="/Applications/TextEdit.app/Contents/MacOS/TextEdit"
  • o digita semplicemente il seguente comando nel tuo terminale:
    echo "export EDITOR=\"/Applications/TextEdit.app/Contents/MacOS/TextEdit\"" >> ~/.bashrc

Se stai usando zsh, usa ~/.zshrcinvece di ~/.bashrc.


20
Perfetto, questo lo fa. Ho anche eseguito questo comando per assicurarmi che git funzioni come mi sarei aspettato. Questo git config --global --unset-all core.editorallora git config --global --add core.editor "open -W -n".
Diogene

Stai usando una shell diversa?
alternativa

5
nel mio caso, sto usando zshquindi ovviamente ho bisogno di aggiornare il .zshrcfile di configurazione.
Malloc

3
usa le virgolette se il percorso del tuo editor ha spazi, ad esempio "echo "export EDITOR=\"/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl\"" >> ~/.bashrc" e potresti dover ricaricare il tuo .bashrc con:source ~/.bashrc
Mars Redwyne

Grazie, ho impostato nano editor come predefinito da questo. Ecco come aggiungerlo a OSX: http://hints.macworld.com/article.php?story=20021017065800302
Micer

28

Usa git config --global core.editor mate -wo git config --global core.editor opencome suggerisce @dmckee nei commenti.

Riferimento: http://git-scm.com/docs/git-config


3
... e impostarlo per l'uso opensignifica che ottieni automaticamente l'impostazione predefinita del Finder. Quindi le modifiche nel mirino vengono propagate naturalmente.
dmckee --- gattino ex moderatore

4
openutilizza i servizi di avvio per determinare il tipo di file, principalmente in base alla sua estensione. Se il file ha un'estensione sconosciuta, non riuscirà ad aprire il file. In generale, il tuo editor CLI dovrebbe essere qualcosa che presuppone file di testo ...
Gordon Davisson

Alcune istruzioni (molto) esplicite sarebbero molto utili ... il riferimento è estremamente conciso.
Diogene

2
@Diogenes: Vedere la mia risposta su un altro posto se hai ancora bisogno di aiuto più esplicito: stackoverflow.com/questions/6435246/...
X-Istence

4
Meglio che sia git config --global core.editor "open -W"(altrimenti otterrai un Aborting commit due to empty commit message.errore).
rsenna

18

Per OS X e Sublime Text

Metti a subldisposizione.

Metti questo ~/.bash_profile

[[ -s ~/.bashrc ]] && source ~/.bashrc

Metti questo ~/.bashrc

export EDITOR=subl

Ho scoperto che questo non funziona correttamente con chsh. Il file si apre, ma tutte le modifiche vengono perse. Ho dovuto usare chsh -s /bin/zshper cambiare shell manualmente.
Cryptc

9

Per chiunque venga qui nel 2018:

  • vai su iTerm -> Preferenze -> Profili -> Avanzate -> Cronologia semantica
  • dal menu a discesa, scegli Apri con editor e dal menu a discesa a destra scegli il tuo editor preferito

5

Imposta il tuo editor in modo che punti a questo programma:

/Applications/TextEdit.app/Contents/MacOS/TextEdit

Con SVN, dovresti impostare SVN_EDITORla variabile d'ambiente su:

$ export SVN_EDITOR=/Applications/TextEdit.app/Contents/MacOS/TextEdit

E poi, quando provi a eseguire il commit di qualcosa, TextEdit verrà avviato.


1
Preferisco usarlo /usr/bin/open, perché quello userà il Finder predefinito qualunque cosa tu lo imposti.
dmckee --- gattino ex moderatore

Come faresti lo stesso per git?
Diogenes

Il primo tipo è semplicemente impostare EDITOR = su quello, ma cosa devo digitare per la seconda riga?
Utente


0

Se vuoi che l'editor funzioni con le operazioni git, l'impostazione della $EDITORvariabile d'ambiente potrebbe non essere sufficiente, almeno non nel caso di Sublime - ad esempio, se vuoi rebase, dirà solo che il rebase ha avuto successo, ma hai vinto ' Non ho la possibilità di modificare il file in alcun modo, git lo chiuderà immediatamente:

git rebase -i HEAD~
Successfully rebased and updated refs/heads/master.

Se vuoi che Sublime funzioni correttamente con git, dovresti configurarlo usando:

git config --global core.editor "sublime -n -w"

Sono venuto qui cercando questo e ho trovato la soluzione in questo gist su GitHub .


0

rendi Sublime Text 3 il tuo editor di testo predefinito: (Riavvio richiesto)

defaults write com.apple.LaunchServices LSHandlers -array-add "{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;}"

rendi sublime il tuo editor di testo git predefinito git config --global core.editor "subl -W"

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.