Emacs에서는 종종 여러 개의 쉘 버퍼를 열어두고 버퍼 이름 바꾸기를 사용하여 이를 추적합니다. 때로는 ^D를 너무 많이 눌러 실수로 셸을 닫거나 비활성 셸을 자동으로 시간 초과하는 시스템을 사용하는 경우도 있습니다. 동일한 버퍼에서 새 쉘을 시작하는 방법이 있습니까? 버퍼 이름을 다음에서 변경했기 때문에껍데기Mx shell을 입력하면 새로운 쉘이 시작됩니다.껍데기현재 버퍼가 아닌 버퍼입니다.
답변1
Mx 쉘 대신 M-를 사용하여 다음 emacs lisp 코드를 실행하십시오.
(shell (current-buffer))
답변2
이것은 완벽하지는 않지만 원하는 것을 대부분 얻을 수 있습니다. 시작 파일 에 다음 코드를 넣으세요 .emacs
.
(defun my-shell-mode-hook ()
"Added to shell-mode-hook. This function runs every time function shell
starts a shell."
(rename-buffer "My Shell" 'unique))
(add-hook 'shell-mode-hook 'my-shell-mode-hook)
"My Shell"
문자열을 다른 이름으로 자유롭게 변경해 보세요 . 버퍼 M-x shell RET
에 있는 동안 그렇게 하면 My Shell
새 쉘이 동일한 버퍼에서 시작됩니다. 불행하게도 다른 버퍼에서 이 작업을 수행하면My Shell<2>
이 별로 좋지 않은 새 버퍼가 생성됩니다. 후자의 효과는 다음과 같이 제거될 수 있다고 생각합니다.조언function , 실제 함수를 실제로 실행하기 전에 shell
버퍼로 전환합니다 .My Shell
shell