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

Если бы Вы идете для чего-то, что можно использовать на нескольких компьютерах, я предположил бы, что требуется пойти для скорости также. Ожидание живой ОС для начальной загрузки может быть болезненным, настолько выбирающий легкий идеален при тех обстоятельствах.

До точки зрения создания Linux как что-то еще позвольте Linux быть самостоятельно. Дайте ему справедливый выстрел и посмотрите, как Вы хотели бы его в сравнении, потому что при движении всего пути рассматривать его как окна или Mac, Вы упускаете суть его.

Хром получает некоторые довольно хорошие виды на него, хотя это также предназначено, чтобы быть WebOS. Вы могли бы дать этому выстрел.

9
07.08.2012, 15:23
6 ответов

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

M-! urxvt RET

Я просто попробовал его xterm (Я не имею urxvt) и это действительно открывалось в том же каталоге как файл в буфере.

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

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

В моем случае я связал ярлык на: Ctrl+C - S.

14
27.01.2020, 20:04

Я обычно использую M-x term.

Вы можете также контроль:

  • M-x terminal
  • M-x shell

M-x term эффективно запускает эмулятор терминала, записанный в elisp. От справки:

термин
M-x... RET Запускает эмулятор терминала в новом буфере. (назовите ПРОГРАММУ),

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

Запустите эмулятор терминала в новом буфере. Буфер находится в режиме Term; см. 'режим термина' для команд для использования в том буфере.

Введите C-c b для переключения на другой буфер.

7
27.01.2020, 20:04
  • 1
    Спасибо, я не знал M-x term, это кажется хорошим, но не точно, что я хочу. Я хочу запустить не оболочку (например, bash или zsh в буфере emacs, но эмуляторе терминала (xterm или urxvt...). –  student 07.08.2012, 15:50
  • 2
    @student учетной записи взглянуть на multi-term –  Ulrich Dangel 07.08.2012, 17:10

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

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

6
27.01.2020, 20:04

Я хотел запустить специальное терминальное приложение, konsole. Я хотел открыть новую закладку в 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
2
27.01.2020, 20:04

Чаще всего я использую shell-mode. Поэтому я активно использую shell -здесь . Но когда мне нужен внешний терминал. Я использую клиент urxvt -с tmux, используя этот:

  • Создайте файл с именем «термин -здесь» в /usr/local/bin/, содержащий
urxvtc -e bash -c "tmux -q has-session && exec tmux attach-session -d || exec tmux new-session -n$USER -s$USER@$HOSTNAME"
  • Создать новую функцию в emacs
(defun term-here ()
  (interactive)
  (start-process "" nil "term-here"))
  • Привязать к любимой клавише

Это откроет клиент urxvt -(с tmux )в вашем текущем каталоге. Привязываю в dired -mode -карту.

(use-package dired
  :ensure nil
  :ensure-system-package urxvt
  :bind ((:map dired-mode-map
           (",". term-here))))

Я выбираю клиент urxvt -, потому что он быстрый и простой. Не забудьте запустить демон urxvt -при запуске.

1
27.01.2020, 20:04

Если у вас установлена ​​среда завершения helm, вы можете использовать helm-run-external-command (C-x c C-c C-x)для запуска эмулятора терминала -по вашему выбору или любой другой внешней программы в каталоге текущего буфера.

1
09.03.2020, 12:51

Теги

Похожие вопросы