emacs에서 터미널 열기
On 2월 14, 2021 by admin동일한 디렉토리 <에서 터미널 에뮬레이터 (내 경우에는 urxvt)를 여는 빠른 방법 (키보드 단축키)이 있습니까? / em>을 현재 emacs 버퍼의 파일로 사용 하시겠습니까?
답변
조합 M-!
를 사용하면 셸 명령을 시작할 수 있습니다. 이를 사용하여 별도의 urxvt
를 시작할 수 있습니다.
M-! urxvt RET
xterm
로 시도했습니다 (urxvt
) 버퍼에있는 파일과 같은 디렉토리에서 열렸습니다.
바로 가기를 정의하려면 init 파일에 비슷한 것을 추가하십시오.
(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
Mx … RET 새 버퍼에서 터미널 에뮬레이터를 시작합니다. (term PROGRAM)term은`에서 인터랙티브 컴파일 된 Lisp 함수입니다. term.el “.
새 버퍼에서 터미널 에뮬레이터를 시작합니다. 버퍼가 기간 모드에 있습니다. 해당 버퍼에서 사용할 명령은 `term-mode “를 참조하세요.
다른 버퍼로 전환하려면 Cc b를 입력하세요.
댓글
Answer
emacs 명령 M-x shell
는 새 버퍼에서 셸을 시작합니다 (또는 기존 셸 버퍼가있는 경우 기존 셸 버퍼로 전환). “새 셸 버퍼”인 경우 다음 디렉토리에서 시작됩니다. 현재 버퍼에서 방문중인 파일입니다. “기존 쉘 버퍼 인 경우”마지막으로 사용한 후 남은 디렉토리에 계속 남아 있습니다. r 항상 원하는 동작을 얻으려면 “완료되면 쉘 버퍼를 종료해야합니다 (C-x k
).
If M-x shell
가 너무 많이 입력하면 전역 키를 설정하여 셸을 시작할 수 있습니다. 시작 파일에있는 (global-set-key (kbd "C-x S") "shell)
와 같은 것이이를 수행해야합니다 (단, 바로 가기로 다른 유용한 명령을 가리지 않도록주의하십시오!)
또한 이것은 “dumb terminal”이므로 git commit
와 같은 일부 명령에는 -m
와 같은 옵션이 필요하며 비밀번호는 화면에 일반 텍스트로 표시됩니다.
답변
전용 터미널 애플리케이션 konsole
을 실행하고 싶었습니다. 실행중인 경우 konsole에서 새 탭을 열거 나 그렇지 않은 경우 하나를 실행하고 싶었습니다.
어렸을 때부터 구현을 emacs와 bash로 나누었습니다. emacs에서 다음 defun을 호출합니다.
(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
답변
대부분 shell-mode
를 사용합니다. 그래서 저는 shell-here 를 많이 사용합니다. 하지만 외부 터미널이 필요할 때. 다음을 사용하여 tmux와 함께 urxvt-client를 사용합니다.
- / usr / local / bin /에 “term-here”라는 이름의 파일 만들기
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-client (tmux 포함)가 열립니다. 나는 그것을 dired-mode-map에서 묶는다.
(use-package dired :ensure nil :ensure-system-package urxvt :bind ((:map dired-mode-map ("," . term-here))))
빠르고 간단하기 때문에 urxvt-client를 선택합니다. 시작할 때 urxvt-daemon을 실행하는 것을 잊지 마십시오.
답변
완료 프레임 워크가 설치되어 있으면 helm-run-external-command (C-x c C-c C-x)
를 사용하여 선택한 터미널 에뮬레이터 또는 현재 버퍼의 디렉토리에있는 다른 외부 프로그램을 실행할 수 있습니다.
M-x term
, 멋져 보이지만 정확히 원하는 것은 아닙니다. 셸이 아닌 시작하고 싶습니다 (예 :bash
또는zsh
emacs 버퍼에 있지만 터미널 에뮬레이터 (xterm
또는urxvt
…).multi-term