การใช้ tmux กับ emacs และ vim


16

คีย์เริ่มต้นที่ดีที่สุดสำหรับการผูก tmux คืออะไรและทำไมถ้าบางครั้งใช้ emacs และบางครั้งก็ใช้ vim (บน Linux Mint 12) Ctrl-b ก็โอเค แต่มันขัดแย้งกันเล็กน้อยกับ bash shell และ emacs


หนึ่งที่เหมาะสมกับคุณ ดุจ?
ЯрославРахматуллин

คำตอบ:


9

ฉันพบคำตอบที่ดีในโพสต์ที่เกี่ยวข้อง: ลำดับ prefix / escape ที่ขัดแย้งกันน้อยที่สุดสำหรับหน้าจอหรือ tmux คืออะไร

และฉันไปด้วย Ctrl- \ ด้านล่างนี้เป็น ~ / .tmux-conf ของฉัน:

set-window-option -g mode-keys vi
set-window-option -g window-status-current-bg blue
set-window-option -g automatic-rename on
set-option -g status-keys vi
set-option -g history-limit 100000
set-option -g base-index 1
set-option -s escape-time 0
setw -g mode-mouse on
set-option -g mouse-select-pane on

# We won't worry about sending C-\ to any programs
# bind-key C-\ send-prefix

# hit C-\ twice to go to last window
bind-key C-\ last-window
bind-key b set-option status

bind-key / command-prompt "split-window 'exec man %%'"
# vim's definition of a horizontal/vertical split is reversed from tmux's
bind s split-window -v
bind v split-window -h

# move around panes with hjkl, as one would in vim after pressing ctrl-w
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# resize panes like vim
bind < resize-pane -L 10
bind > resize-pane -R 10
bind - resize-pane -D 10
bind + resize-pane -U 10

# C-b is not acceptable, due to emacs, bash, and vim
unbind-key C-b
set-option -g prefix C-\

สิ่งนี้ไม่ได้ผลนอกกรอบสำหรับ Mac ฉันกลับไปที่ Ctrl-a และเปลี่ยนเป็นกลุ่มและโหมดชั่วสำหรับ emacs ดังนั้นฉันจึงไม่กด ctrl-a อีกต่อไปสำหรับการเริ่มต้นของบรรทัด
justingordon

4

ฉันชอบอย่างยิ่งC-]ซึ่งไม่ขัดแย้งกับการเชื่อมโยง vi และขัดแย้งกับการabort-recursive-editผูกมัดเริ่มต้นใน Emacs ฉันใช้มันไม่ค่อยพอและในสถานการณ์ที่น่ารังเกียจพอการพิมพ์สองครั้งไม่ใช่เรื่องใหญ่


1

ฉันใช้ Ctrl- / มาระยะหนึ่งแล้วและไม่พบว่าขัดแย้งกับสิ่งใดใน vim / bash ฉันไม่ใช้ emacs ดังนั้นฉันไม่รู้ว่ามันขัดแย้งกับสิ่งใดก็ตามที่สำคัญ

นอกจากนี้ยังมีโน้ตเล็ก ๆ ที่ฉันเชื่อว่าฉันต้องผูกไว้กับ C-_ เพื่อให้มันทำงานได้เพราะนั่นคือกุญแจจริงที่มันส่ง


C- \ และ C-_ เป็นตัวละครที่แตกต่างกันอย่างแน่นอน; ตามลำดับคือ 0x1C“ ตัวแยกไฟล์” และ 0x1F“ ตัวแยกหน่วย” ดูตารางในวิกิพีเดียการควบคุมตัวอักษร ASCII
Chris Johnsen


1

ฉันใช้ C- \ โปรดทราบว่าคุณต้องหลบหนีด้วยเครื่องหมายคำพูดเดี่ยว:

unbind-key C-b
set-option -g prefix C-'\'

ในฐานะที่เป็นโน้ต, สิ่งนี้ขัดแย้งกับคีย์ลัดของนิพจน์ประเมินของกลุ่ม
mahdix

0

ทางออกที่ดีที่สุดที่ฉันเจอสำหรับเรื่องนี้คือการใช้แค่ ` ที่เดียวที่ทำให้ฉันมีปัญหาคือการวางโค้ดโดยตรง (ด้วยบัฟเฟอร์ของระบบ) มิฉะนั้นมันจะเป็นโซลูชั่นที่สมบูรณ์แบบ

set -g prefix `
bind-key ` send-prefix

0

M-F3อีกหนึ่งความคิดที่ดีที่จะไป มันไม่ขัดแย้งกับ emacs และ vi, combinaison ค่อนข้างสะดวกสบาย, มัน 'ค่อนข้างใกล้กับ M-F2 และ M-F1 ที่ใช้สำหรับรันคำสั่งและเมนู virtualdesktops

[ฉันใช้ emacs และเริ่มเป็นกลุ่ม (ภายใน emacs มาก่อน) และใช้ linuxMint cinnamon สำหรับ distro]

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.