Открытый терминал от emacs

Есть ли быстрый способ (сочетание клавиш), чтобы открыть эмулятор терминала (в моем случае urxvt) в том же каталоге, что и файл в текущем буфере emacs?

4 Solutions collect form web for “Открытый терминал от emacs”

Комбинация M-! позволяет запускать команды оболочки. Вы можете использовать его для запуска отдельного urxvt .

 M-! urxvt RET 

Я просто попробовал его с xterm (у меня нет urxvt ), и он открылся в том же каталоге, что и файл в буфере.

Если вы хотите определить ярлык, добавьте что-то подобное в файл инициализации:

 (global-set-key (kbd "Cc s") (kbd "M-! urxvt RET")) 

В моем случае я привязал ярлык к: Ctrl + CS.

Обычно я использую Mx term .

Вы также можете проверить:

  • Mx terminal
  • Mx shell

Mx term эффективно запускает эмулятор терминала, написанный в elisp. С помощью:

срок
Mx … RET Запустите эмулятор терминала в новом буфере. (термин ПРОГРАММА)

term – это интерактивная скомпилированная функция Lisp в `term.el '.

Запустите эмулятор терминала в новом буфере. Буфер находится в режиме Term; см. «term-mode» для команд, которые будут использоваться в этом буфере.

Введите Cc b, чтобы переключиться на другой буфер.

Команда emacs Mx shell запустит оболочку в новом буфере (или переключится на существующий буфер оболочки, если таковой имеется). Если это новый буфер оболочки, он будет запущен в каталоге файла, который будет посещаться в текущем буфере. Если это уже существующий буфер оболочки, он все равно будет находиться в каталоге, в котором вы его оставили после последнего использования. Чтобы всегда получать нужное поведение, не забудьте убить буфер оболочки, когда вы закончите с ним ( Cx k )

Если Mx shell слишком много печатает, вы можете установить глобальный ключ для запуска оболочки для вас. Что-то вроде (global-set-key (kbd "Cx S") 'shell) в вашем файле автозагрузки должно это сделать (но будьте осторожны, чтобы не замаскировать еще одну полезную команду с помощью ярлыка!)

Я хотел запустить специальное приложение терминала, konsole . Я хотел открыть новую вкладку в консоли, если она запущена, или запустить ее, если это не так.

Поскольку я был моложе, тогда я разделил реализацию между emacs и bash. Я называю следующий defun от emacs:

 (defun bk-konsoles () "Calls: bk_konsoles.bash -- which starts new tab in a running konsole," (interactive) (let ((curDir default-directory)) (shell-command (concat "bk_konsoles.bash \"" curDir "\" 2>&1 > /dev/null & disown") nil nil) (kill-buffer "*Shell Command Output*"))) 

Defun вызывает скрипт bash, bk_konsoles.bash :

 #!/bin/bash myPath=`echo $@ | sed 's/.$//'` runningKonsole=`ps -e | grep konsole` if [ "$runningKonsole"!="" ]; then if [ "$@"!="" ]; then konsole --new-tab --workdir "$myPath" 2>&1 > /dev/null else konsole --new-tab 2>&1 > /dev/null fi wmctrl -a " – Konsole" else konsole fi 
  • Что означает «wd»?
  • GNU Emacs Gnus не может подключиться к gmail IMAP
  • Как заставить `helm-execute-persistent-action` не следовать исходному пути symlink
  • Найдите комбинацию клавиш терминала OS X / escape-последовательность для Ctrl-
  • Emacs автоматически добавляет спецификацию в файл XML
  • Emacs и gvim не отображают контент на FreeBSD 10.2
  • Совершенно пиксельные шрифты в Emacs
  • Как настроить чаепитие в emacs для использования собственной системы уведомлений в gnome
  • Трубопроводы в меньшем количестве и редактирование: ошибка «невозможно отредактировать стандартный вход». Обходные?
  • Используется ли интерпретатор командной строки bash на emacs?
  • Сделать 'CTRL- /' вести себя одинаково в vtty и xterm
  • Linux и Unix - лучшая ОС в мире.