Czy istnieje szybki sposób (skrót klawiaturowy), aby otworzyć emulator terminala (w moim przypadku urxvt) w tym samym katalogu, co plik w bieżącym buforze emacs?
źródło
Czy istnieje szybki sposób (skrót klawiaturowy), aby otworzyć emulator terminala (w moim przypadku urxvt) w tym samym katalogu, co plik w bieżącym buforze emacs?
Ta kombinacja M-!
umożliwia uruchamianie poleceń powłoki. Możesz go użyć do uruchomienia osobnego urxvt
.
M-! urxvt RET
Właśnie próbowałem z xterm
(nie mam urxvt
) i otworzyło się w tym samym katalogu, co plik w buforze.
Jeśli chcesz zdefiniować skrót, dodaj coś podobnego do pliku init:
(global-set-key (kbd "C-c s") (kbd "M-! urxvt RET"))
W moim przypadku powiązałem skrót z: Ctrl+ C- S.
Zwykle używam M-x term
.
Możesz także zrealizować transakcję:
M-x terminal
M-x shell
M-x term
skutecznie uruchamia emulator terminala napisany w elisp. Z pomocy:
termin
M-x ... RET Uruchom emulator terminala w nowym buforze. (termin PROGRAM)term jest interaktywną skompilowaną funkcją Lisp w `term.el '.
Uruchom emulator terminala w nowym buforze. Bufor jest w trybie Term; zobacz „term-mode”, aby zapoznać się z poleceniami używanymi w tym buforze.
Wpisz Cc b, aby przełączyć na inny bufor.
M-x term
, wygląda miło, ale nie jest dokładnie tym, czego chcę. Chcę uruchomić nie powłokę (na przykładbash
lubzsh
w buforze emacsa, ale emulator terminala (xterm
luburxvt
...).multi-term
Komenda emacs
M-x shell
uruchomi powłokę w nowym buforze (lub przełączy się na istniejący bufor powłoki, jeśli taki istnieje). Jeśli jest to nowy bufor powłoki, zostanie uruchomiony w katalogu odwiedzanego pliku w bieżącym buforze. Jeśli jest to istniejący bufor powłoki, nadal będzie w katalogu, w którym go zostawiłeś po ostatnim użyciu. Aby zawsze uzyskać pożądane zachowanie, pamiętaj o zabiciu bufora powłoki, gdy skończysz (C-x k
)Jeśli
M-x shell
jest zbyt dużo pisania, możesz ustawić klucz globalny, aby uruchomić dla ciebie powłokę.(global-set-key (kbd "C-x S") 'shell)
Powinno to zrobić coś takiego jak w pliku startowym (ale uważaj, aby nie maskować innego przydatnego polecenia za pomocą skrótu!)Pamiętaj też, że jest to „głupi terminal”, więc niektóre polecenia, takie jak
git commit
opcje takie jak-m
i hasła, będą wyświetlane na ekranie jako zwykły tekst.źródło
Chciałem uruchomić odpowiednią aplikację terminala,
konsole
. Chciałem otworzyć nową kartę w konsoli, jeśli jest uruchomiona lub uruchomić ją, jeśli nie jest.Od kiedy byłem młodszy, podzieliłem implementację między emacsa i basha. Nazywam następujący defun od emacsa:
Defun wywołuje skrypt bash
bk_konsoles.bash
:źródło
Większość czasu używam
shell-mode
. Więc mocno używam tu powłoki . Ale kiedy potrzebuję zewnętrznego terminala. Używam klienta urxvt z tmux, używając tego:Spowoduje to otwarcie klienta urxvt (z tmux) w bieżącym katalogu. Wiążę to w dired-mode-map.
Wybieram urxvt-client, ponieważ jest szybki i prosty. Nie zapomnij uruchomić swojego demona urxvt podczas uruchamiania.
źródło
Jeśli masz
helm
zainstalowaną strukturę uzupełniania, możesz użyćhelm-run-external-command (C-x c C-c C-x)
do uruchomienia wybranego emulatora terminala lub dowolnego innego programu zewnętrznego w katalogu bieżącego bufora.źródło