Существует ли быстрый способ (сочетание клавиш) открыть эмулятор терминала (в моем случае urxvt) в том же каталоге, что и файл в текущем буфере emacs?
источник
Существует ли быстрый способ (сочетание клавиш) открыть эмулятор терминала (в моем случае urxvt) в том же каталоге, что и файл в текущем буфере emacs?
Комбинация M-!
позволяет запускать команды оболочки. Вы можете использовать его для запуска отдельного urxvt
.
M-! urxvt RET
Я только что попробовал с xterm
(у меня нет urxvt
), и он действительно открылся в том же каталоге, что и файл в буфере.
Если вы хотите определить ярлык, добавьте нечто подобное в ваш файл инициализации:
(global-set-key (kbd "C-c s") (kbd "M-! urxvt RET"))
В моем случае я связал ярлык с: Ctrl+ C- S.
Я обычно использую M-x term
.
Вы также можете оформить заказ:
M-x terminal
M-x shell
M-x term
эффективно запускает эмулятор терминала, написанный на elisp. Из справки:
term
M-x ... RET Запустить эмулятор терминала в новом буфере. (термин ПРОГРАММА)term - это интерактивная скомпилированная функция Lisp в `term.el '.
Запустите терминал-эмулятор в новом буфере. Буфер находится в режиме Term; смотрите `term-mode ' для команд, которые будут использоваться в этом буфере.
Введите Cc b, чтобы переключиться на другой буфер.
M-x term
, это кажется хорошим, но это не совсем то, что я хочу. Я хочу запустить не оболочку (например,bash
илиzsh
в буфере emacs, а эмулятор терминала (xterm
илиurxvt
...).multi-term
Команда emacs
M-x shell
запустит оболочку в новом буфере (или переключится на существующий буфер оболочки, если он есть). Если это новый буфер оболочки, он будет запущен в каталоге посещаемого файла в текущем буфере. Если это существующий буфер оболочки, он все равно будет в том каталоге, где вы оставили его после последнего использования. Чтобы всегда получить желаемое поведение, не забудьте убить буфер оболочки, когда закончите с ним (C-x k
)Если
M-x shell
вы слишком много печатаете, вы можете установить глобальный ключ для запуска оболочки. Это(global-set-key (kbd "C-x S") 'shell)
должно сделать что- то подобное в вашем файле запуска (но будьте осторожны, чтобы не замаскировать другую полезную команду с помощью ярлыка!)Кроме того, имейте в виду, что это «тупой терминал», поэтому некоторые команды, такие как «
git commit
Необходимые параметры», такие как-m
пароли, будут отображаться на экране в виде открытого текста.источник
Я хотел запустить специальное приложение терминала
konsole
. Я хотел открыть новую вкладку в konsole, если она запущена, или запустить ее, если она не запущена.Так как я был моложе тогда, я разделил реализацию между emacs и bash. Я вызываю следующий defun из emacs:
Defun вызывает bash-скрипт
bk_konsoles.bash
:источник
Большую часть времени я использую
shell-mode
. Так что я интенсивно использую шелл-тут . Но когда мне нужен внешний терминал. Я использую urxvt-клиент с tmux, используя это:Это откроет urxvt-client (с tmux) в вашем текущем каталоге. Я связываю это в dired-mode-map.
Я выбираю urxvt-client, потому что это быстро и просто. Не забудьте запустить свой urxvt-daemon при запуске.
источник
Если у вас установлена
helm
среда завершения, вы можете использовать ееhelm-run-external-command (C-x c C-c C-x)
для запуска эмулятора терминала или любой другой внешней программы в каталоге текущего буфера.источник