C-x 2
Emacs에서는 C-x 3
(하나는 다른 것 위에) 또는 (하나는 다른 것 옆에)를 사용하여 창을 분할할 수 있습니다.
동일한 키 바인딩을 어떻게 얻을 수 있나요 tmux
?
또한 창이 분할되면 emacs에서는 창을 순환할 수 있습니다 C-x o
. tmux
동일한 키를 사용하도록 구성할 수 있나요 ?
답변1
이제 꿈이 이루어집니다. https://github.com/tmux/tmux/issues/2904
내 사용 사례는 다음과 같습니다
- tmux 창에 포커스가 있지만 emacsclient에는 없으면(예: 터미널 프롬프트에서) [Cx o]를 사용하여 동일한 창의 다음 tmux 창으로 전환합니다.
- tmux 창에 포커스와 emacsclient가 있는 경우집중하다마찬가지로, emacs가 [Cx o]를 처리하도록 하십시오.
tmux.conf:
is_emacs='echo "#{pane_current_command}" | grep -iqE "emacs"'
bind -Temacs-keys o if-shell "$is_emacs" "send C-x; send" "select-pane -t :.+"
bind -Temacs-keys Any { send C-x; send }
bind -Troot C-x switch-client -Temacs-keys
초기화.el:
;;; Tmux integration (See tmux.conf for details).
(defun id/other-window ()
"Switch to the next window if opened, otherwise select next tmux pane."
(interactive)
(if (eq (next-window) (get-buffer-window))
(call-process "tmux" nil nil nil "select-pane" "-t" ":.+")
(other-window 1)))
(global-set-key [remap other-window] #'id/other-window)
답변2
나는 이 tmux conf를 사용하여 분할과 동일한 동작을 시뮬레이션합니다. 동일한 단축키를 사용하여 창을 다른 창으로 분할하고 접두사를 Cx로 설정하면 선택 창은 emacs의 버퍼 작업과 유사하게 작동합니다. 한 번 시도해보고 더 편안하게 느끼도록 직접 수정해 보세요.
# remap prefix from 'C-b' to 'C-x'
unbind C-b
set-option -g prefix C-x
bind-key C-x send-prefix
# split panes using 3 and 2
bind 3 split-window -h
bind 2 split-window -v
unbind '"'
unbind %
# switch panes using Alt-arrow without prefix
bind Left select-pane -L
bind Right select-pane -R
bind Up select-pane -U
bind Down select-pane -D
# Enable switch session similar than emacs selecting buffer
unbind s
bind b choose-tree -w
# Kill window
bind k confirm kill-window
# Source the conf file
bind r source-file ~/.tmux.conf
# Use C-x 0 to close panel, similar than emacs when closing the splitted window
unbind 0
bind 0 kill-pane
답변3
꼭 읽어야 할 내용을 확인하세요http://pragprog.com/book/bhtmux/tmux;추가로 필요한 것을 얻을 수 있습니다. 다음을 시도해 보세요.
# Setting the prefix from C-b to C-d
# START:prefix
set -g prefix C-d
# END:prefix
# Ensure that we can send Ctrl-A to other apps
bind C-d send-prefix
# Free the original Ctrl-b prefix keybinding unbind C-b
unbind C-b
bind | split-window -h
bind _ split-window -v
이는 창 사이를 이동하는 데 사용됩니다.
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
모두 이전 참조 및 man
페이지에서 가져온 것입니다.