나는 뛰고있어 ratpoison
. emacs
키 바인딩을 통해 실행 중 입니다 (따라서 xterm은 없음). 그런 다음 실수로 Ctrl-Z를 눌렀고 emacs가 사라졌습니다( emacs iconify-or-deiconify-frame
). 나는 쥐약을 떠나 mwm emacs로 갔을 때 그것이 다시 전경으로 돌아왔기 때문에 그것이 여전히 거기에 있다는 것을 압니다. 그러나 xterm을 시작하고 %emacs
bash를 실행하면 bash: fg: %emacs: no such job
.
쥐약에서 emacs 아이콘을 취소하는 방법은 무엇입니까?
(이 글은 많이 수정되었습니다)
답변1
서브쉘 #1의 프로세스를 백그라운드로 두고 이를 서브쉘 #2의 포그라운드로 되돌리는 것은 불가능합니다(다음과 같은 추가 도구를 사용하지 않는 경우).렙텔).
귀하의 경우 터미널에서 실행하지도 않았으며 Ctrl+Z
터미널에 없으면 다르게 작동합니다. 내 생각엔 당신이 Ctrl+Z
다른 "마법"을 행하고 있는 것 같아요.쥐약 기본 키 바인딩목록에도 없습니다. 어쩌면 Ctrl+Z
설정에 어떤 제한이 있는지 알아내야 할 수도 있습니다 .
편집하다
~에서이맥스 매뉴얼:
Cz는 Emacs가 X 서버와 직접 통신하고 자신의 개인 X 창을 생성할 때 다른 의미를 갖습니다. 자체 X 창을 사용하는 응용 프로그램을 정지하는 데에는 아무런 의미도 없고 쓸모도 없습니다. 대신 Cz는 선택된 Emacs 프레임을 일시적으로 아이콘화(또는 "최소화")하는 iconify-or-deiconify-frame 명령을 실행합니다(P. 프레임 및 X Windows 섹션 참조). 그런 다음 창 관리자를 사용하여 쉘 창으로 돌아갈 수 있습니다.
Alt+Tab
열려 있는 애플리케이션을 통해 emacs에 액세스 할 수 있어야 합니다 . 어쩌면 쥐약을 사용하여 최소화된 프레임을 복구할 수 있는 다른 방법이 있을 수도 있습니다. 또는 Alt-Tab
쥐약에 추가하려면 다음을 편집하세요 .ratpoisonrc
.
definekey top M-Tab next
definekey top M-ISO_Left_Tab prev
그리고 rp를 다시 시작하세요.
답변2
Ctrl+ Z는 Emacs 명령입니다.창 최소화(Emacs는 창을 "프레임"이라고 부릅니다). 기술적으로 이는 터미널 창에서 명령을 일시 중지하기 위해 Ctrl+를 사용하는 것과는 아무런 관련이 없습니다 Z(그러나 Emacs 디자이너는 작업이 다소 유사하기 때문에 해당 단축키를 선택했습니다).
일반적으로 창 관리자는 최소화된 창 목록을 어딘가에 표시합니다. 원래 "어딘가"는 데스크탑의 아이콘이었기 때문에 최소화를 아이콘화라고도 합니다. 많은 창 관리자는 목록에서 선택하는 등 최소화된 창을 최소화 해제하는 다른 방법을 제공합니다.
창 관리자가 이 기능을 제공하지 않는 경우 명령줄에서 이 기능을 수행할 수 있습니다. 최신 버전wmctrl
그렇게 하는 데 사용될 수 있습니다 wmctrl -x -Y Emacs
. 최신 버전xdotool
그렇게 하는 데 사용될 수 있습니다 xdotool search --classname Emacs windowmap
.
Emacs 서버를 시작한 경우 Emacs 복원 창을 사용할 수 있습니다 emacsclient -c '(make-frame-visible)'
.
향후 예상치 못한 상황을 방지하려면 파일에 다음 줄을 추가하여 ~/.emacs
최소화하기 전에 확인 메시지를 표시할 수 있습니다.
(defadvice iconify-frame (around iconify-frame-confirm)
(if (y-or-n-p "Really iconify this frame?")
ad-do-it))
C-z
바인딩은 터미널에서 유용하므로 재정의하지 않겠습니다 . 아이콘을 Ratpoison에 유용한 다른 것으로 바꿀 수도 있습니다. 또한 emacsclient
다음 (server-start)
을 사용하여 명령을 실행할 수 있도록 Emacs 서버를 시작하십시오 .emacs
.
답변3
Git 저장소에서 RatPoison의 소스를 보고 있습니다. 기본적으로 창이 아이콘화되었다는 이벤트를 받으면 창을 다시 가져와 전역 목록에 넣습니다. 와 의 unmap_notify
기능을 확인하세요 .events.c
withdraw_window
manage.c
withdraw_window
창을 일종의 전역 목록에 넣습니다. list_move_tail(&win->node, &rp_unmapped_window);
의 줄을 참조하세요 withdraw_window
.
rp_unmapped_window
어쩌면 새로운 작업을 해독하고 특정 키 바인딩에 할당하고 해당 목록에서 창을 띄운 다음 XLib 호출을 수행하여 아이콘화를 해제하여 다시 활성화하는 것은 그리 어렵지 않을 것입니다. (무작위 선택을 위해 아이콘화된 창 목록을 렌더링하는 것과 같은 멋진 작업을 수행할 필요가 없습니다.)
답변4
기본 쥐약 키 바인딩:
Ctrl++ 창을 숨 t Ctrl깁니다 .Enterratpoison
Emacs Gui
under 는 + ratpoison
뒤에도 숨겨져 있습니다 .Ctrlz
Ctrl+ t Enter숨겨진 창을 복원합니다.