버퍼에서 쉘 프로세스 다시 시작

버퍼에서 쉘 프로세스 다시 시작

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 Shellshell

관련 정보