Gibt es eine schnelle Möglichkeit (Tastenkombination), einen Terminalemulator (in meinem Fall urxvt) im selben Verzeichnis wie die Datei im aktuellen Emacs-Puffer zu öffnen ?
quelle
Gibt es eine schnelle Möglichkeit (Tastenkombination), einen Terminalemulator (in meinem Fall urxvt) im selben Verzeichnis wie die Datei im aktuellen Emacs-Puffer zu öffnen ?
Mit dieser Kombination M-!
können Sie Shell-Befehle starten. Sie können es verwenden, um eine separate zu starten urxvt
.
M-! urxvt RET
Ich habe es gerade mit versucht xterm
(ich habe es nicht urxvt
) und es wurde im selben Verzeichnis wie die Datei im Puffer geöffnet.
Wenn Sie eine Verknüpfung definieren möchten, fügen Sie Ihrer Init-Datei etwas Ähnliches hinzu:
(global-set-key (kbd "C-c s") (kbd "M-! urxvt RET"))
In meinem Fall habe ich die Verknüpfung gebunden an: Ctrl+ C- S.
Ich benutze normalerweise M-x term
.
Sie können auch auschecken:
M-x terminal
M-x shell
M-x term
startet effektiv einen in elisp geschriebenen Terminalemulator. Aus der Hilfe:
term
M-x ... RET Startet einen Terminalemulator in einem neuen Puffer. (Begriff PROGRAMM)term ist eine interaktive kompilierte Lisp-Funktion in `term.el '.
Starten Sie einen Terminalemulator in einem neuen Puffer. Der Puffer befindet sich im Term-Modus. Siehe `term-mode ' für die Befehle, die in diesem Puffer verwendet werden sollen.
Geben Sie Cc b ein, um zu einem anderen Puffer zu wechseln.
M-x term
, es scheint schön, ist aber nicht genau das, was ich will. Ich möchte keine Shell starten (zum Beispielbash
oderzsh
in einem Emacs-Puffer, sondern einen Terminal-Emulator (xterm
oderurxvt
...).multi-term
Der Befehl emacs
M-x shell
startet eine Shell in einem neuen Puffer (oder wechselt zu einem vorhandenen Shell-Puffer, falls vorhanden). Wenn es sich um einen neuen Shell-Puffer handelt, wird er im Verzeichnis der Datei gestartet, die im aktuellen Puffer besucht wird. Wenn es sich um einen vorhandenen Shell-Puffer handelt, befindet er sich weiterhin in dem Verzeichnis, in dem Sie ihn nach der letzten Verwendung verlassen haben. Denken Sie daran, den Shell-Puffer zu beenden, wenn Sie damit fertig sind (C-x k
) , um immer das gewünschte Verhalten zu erzielen.Wenn Sie
M-x shell
zu viel tippen, können Sie einen globalen Schlüssel festlegen, um eine Shell für Sie zu starten. So etwas wie(global-set-key (kbd "C-x S") 'shell)
in Ihrer Startdatei sollte es tun (aber achten Sie darauf, keinen anderen nützlichen Befehl mit Ihrer Verknüpfung zu maskieren!)Beachten Sie auch, dass dies ein "dummes Terminal" ist, sodass einige Befehle wie "
git commit
Erforderliche Optionen"-m
und "Kennwörter" im Klartext auf Ihrem Bildschirm angezeigt werden.quelle
Ich wollte eine dedizierte Terminalanwendung ausführen
konsole
. Ich wollte einen neuen Tab in der Konsole öffnen, wenn er ausgeführt wird, oder einen starten, wenn dies nicht der Fall ist.Da ich damals jünger war, habe ich die Implementierung zwischen Emacs und Bash aufgeteilt. Ich nenne das folgende Defun von Emacs:
Der Defun ruft das Bash-Skript auf
bk_konsoles.bash
:quelle
Die meiste Zeit benutze ich
shell-mode
. Also benutze ich hier stark Shell- . Aber wenn ich ein externes Terminal brauche. Ich benutze urxvt-client mit tmux wie folgt:Dadurch wird urxvt-client (mit tmux) in Ihrem aktuellen Verzeichnis geöffnet. Ich binde es in dired-mode-map.
Ich wähle urxvt-client, weil es schnell und einfach ist. Vergessen Sie nicht, Ihren urxvt-Daemon beim Start auszuführen.
quelle
Wenn Sie das
helm
Completion Framework installiert haben, können Siehelm-run-external-command (C-x c C-c C-x)
einen Terminalemulator Ihrer Wahl oder ein anderes externes Programm im Verzeichnis des aktuellen Puffers ausführen.quelle