Псевдоним, чтобы заставить emacs открыть файл в новом буфере (НЕ в фрейме) и быть активированным / выйти вперед?
То, что я до сих пор
alias em="open -a /Applications/Emacs.app "$@" && osascript -e 'tell application "Emacs.app" to activate'"
Но я в тупике.
С этим кодом em file.txt будет активирован, но не откроет файл. И я получаю 22:23: синтаксическая ошибка: ожидаемый конец строки, но найден неизвестный токен. (-2741)"
дела
alias em=open -a /Applications/Emacs.app "$@"
Работает нормально и тогда он откроет файл, но явно не выведет emacs на передний план.
И по какой-то странной причине
osascript -e 'tell application "Emacs.app" to activate'
не активирует emacs.... Я понятия не имею, что происходит.
Я счастлив исправить это либо с помощью кода псевдонима, либо с помощью кода.emacs
редактировать: см. комментарии для другой вещи, которую пытались.
4 ответа
Может ли быть проблема в том, что вам нужно избегать цитат, как это?
alias em="open -a /Applications/Emacs.app \"$@\" && osascript -e 'tell application \"Emacs.app\" to activate'"
У меня есть следующее в моем .bashrc
Источник мой .profile
:
alias emacs='open -a /Applications/Emacs.app "$@"'
И по моему .emacs
Пользовательская область:
(custom-set-variables
;; yadda yadda
;;...
'(ns-pop-up-frames nil))
Или если вам не нравится M-x customize-variable
ваш путь в это, как сказал Джефф:
(setq ns-pop-up-frames nil)
Мне не нужно было никакого AppleScript, чтобы сделать это; хотя я заметил, что вы скучали по end tell
? В любом случае, это работает для меня как прелесть, открывает Emacs или использует существующее окно, если оно есть, и оно находится сверху, и Терминал остается готовым для большего ввода.
Ты можешь использовать:
emacsclient -nt somefile
в вашем терминале, который откроет указанные файлы в новом буфере, используя ваш существующий кадр, а не новый клиентский кадр.
http://www.gnu.org/software/emacs/manual/html_node/emacs/emacsclient-Options.html