Alias per rendere Emacs Aprire un file in un nuovo buffer (non telaio) e essere attivato / vieni davanti?
-
07-09-2020 - |
Domanda
Quello che ho finora è
alias em="open -a /Applications/Emacs.app "$@" && osascript -e 'tell application "Emacs.app" to activate'"
.
Ma sono ciotto.
Con quel codice, em file.txt si attiverà, ma non aprirà il file .E ottengo il '22: 23: Errore di sintassi: fine della linea prevista ma ha trovato token sconosciuto.(-2741) '
.
Fare
alias em=open -a /Applications/Emacs.app "$@"
.
funziona bene e poi aprirà il file, ma ovviamente non porta Emacs alla parte anteriore.
.
e per qualche strano ragione
osascript -e 'tell application "Emacs.app" to activate'
.
Non attiva Emacs .... Non ho idea di cosa sta succedendo.
.
Sono felice di sistemarlo con il codice di alias, o con codice .emacs
.
Modifica: vedere i commenti per un'altra cosa provata.
Soluzione
Potrebbe il problema è che tu abbia bisogno di sfuggire a te citazioni, come questa?
alias em="open -a /Applications/Emacs.app \"$@\" && osascript -e 'tell application \"Emacs.app\" to activate'"
. Altri suggerimenti
Ho il seguente nel mio .bashrc
proveniente dal mio .profile
:
alias emacs='open -a /Applications/Emacs.app "$@"'
.
E nella mia area personalizzata .emacs
:
(custom-set-variables
;; yadda yadda
;;...
'(ns-pop-up-frames nil))
.
o se non ti piace generarecodicitagcode la tua strada dentro, come ha detto Jeff:
(setq ns-pop-up-frames nil)
.
Non avevo bisogno di alcun applescript per farlo;Anche se ho notato che mancava il M-x customize-variable
?Ad ogni modo, funziona come un fascino per me, Pops Emacs Apri o usa la finestra esistente se ce n'è uno, ed è in cima, e il terminale rimane pronto per ulteriori ingressi.
Puoi usare:
emacsclient -nt somefile
.
Nel terminale, che aprirebbe i file specificati nel nuovo buffer utilizzando il telaio esistente piuttosto che un nuovo telaio del client.
http://www.gnu.org/Software / Emacs / Manuale / HTML_node / Emacs / EmacSclient-options.html