วิธีการลดการหมดเวลาระหว่างคีย์คำนำหน้าและคีย์คำสั่งใน tmux?


45

ของฉัน~/.tmux.conf:

set -g prefix C-a
unbind C-b
bind C-a send-prefix

bind-key o split-window -v
bind-key e split-window -h

bind-key w kill-pane

(เพื่อให้คีย์คำสั่งเหมือนกับ GNOME Teminator)

สถานการณ์: หลังจากหน้าต่างแนวนอนแยกเป็น 2 บานหน้าต่างสลับเป็นบานหน้าต่างที่มีCtrl+ a Upลูกศรฉันต้องรอสักครู่ (2-3 วินาที) เพื่อดูคำสั่งประวัติเชลล์ในบานหน้าต่างนี้ เพราะถ้าฉันกดUpอีกครั้งมันจะสลับกลับไปที่บานหน้าต่างอื่นแทนที่จะแสดงคำสั่งประวัติเปลือก ฉันจะปิดสิ่งนี้ได้อย่างไร


ทางเลือกที่มีประโยชน์คือใช้ CTRL + B q ซึ่งจะแสดงหมายเลขหน้าต่างใน tmux การกด CTRL + B q <ตัวเลข> จะนำคุณไปที่หน้าต่างนั้นขึ้น / ลงจะสามารถใช้งานได้ทันที คุณต้องพิมพ์หมายเลขตาม q อย่างรวดเร็ว มีการหมดเวลาควบคุมสิ่งนี้เช่นกัน
Spacen Jasset

คำตอบ:


53

ขึ้น, ลง, ซ้ายและขวา ( select-paneการเชื่อมโยง; และการควบคุม - และ Meta- ของปุ่มเดียวกันสำหรับresize-pane) คือการผูก "ทำซ้ำ" โดยค่าเริ่มต้น (ทำผ่านbind-key -r) หลังจากพิมพ์คีย์คำนำหน้าและคีย์ที่ทำซ้ำได้ครั้งเดียวคุณสามารถพิมพ์คีย์ที่ทำซ้ำได้อื่น ๆ (โดยไม่ต้องพิมพ์คำนำหน้าอีกครั้ง) ภายในจำนวนมิลลิวินาทีที่ระบุผ่านrepeat-timeตัวเลือกเซสชัน (ค่าเริ่มต้นคือ 500ms)

คุณสามารถตรวจสอบค่าปัจจุบันของrepeat-timeคำสั่งเชลล์เหล่านี้:

tmux show-options -g | grep \^repeat-time     # global
tmux show-options    | grep \^repeat-time     # this session

หากคุณต้องการปิดใช้งานการทำซ้ำสำหรับเซสชันปัจจุบันให้พิมพ์คำนำหน้าโคลอนของคุณและป้อนคำสั่งนี้:

set-option repeat-time 0

หรือคุณอาจหาค่าที่ไม่เป็นศูนย์ที่สะดวกสบาย หากคุณทำจริงๆมีมูลค่าประมาณ 2000 (เช่น 2s) /etc/tmux.confแล้วฉันเดาว่ามันเป็นชุดใน

หากคุณต้องการปิดใช้งานการทำซ้ำ (หรือเปลี่ยนการหมดเวลา) สำหรับเซสชันทั้งหมดของคุณให้ตั้งค่าโกลบอลด้วยคำสั่งนี้:

set-option -g repeat-time 0

หากคุณตั้งค่าสำหรับแต่ละเซสชันคุณจะต้องยกเลิกการตั้งค่าก่อนที่ค่าโกลบอลจะมีผลในเซสชันนั้น ( set-option -u repeat-time) คุณอาจต้องการกำหนดค่าส่วนกลางผ่านทางของคุณ.tmux.confหากคุณต้องการปล่อยให้เป็น "ถาวร"

หากคุณมีปัญหากับ Up คุณสามารถ rebind มันใหม่โดยไม่-r:

bind-key Up select-pane -U

4

คุณสามารถปิดการทำซ้ำสำหรับการผูกคีย์เฉพาะได้หากต้องการ ตัวอย่างเช่นการเชื่อมโยงเริ่มต้นสำหรับการสลับระหว่างบานหน้าต่างต้มลงไปที่:

bind-key -r Up    select-pane -U
bind-key -r Down  select-pane -D
bind-key -r Left  select-pane -L
bind-key -r Right select-pane -R

คุณสามารถสร้างสิ่งเหล่านี้ได้โดยไม่ต้อง-rตั้งค่าสถานะเช่น

bind-key    Up    select-pane -U
bind-key    Down  select-pane -D
bind-key    Left  select-pane -L
bind-key    Right select-pane -R

โดยส่วนตัวแล้วฉันชอบที่จะเปลี่ยนเป็นแบบไม่สามารถทำซ้ำได้ การทำซ้ำนั้นดีถ้าคุณมีหน้าต่างแยกออกเป็นบานหน้าต่างเล็ก ๆ จำนวนมาก แต่มันอาจนำไปสู่การชนกันของคีย์ (เช่นที่คุณอธิบาย) กับแอปพลิเคชันที่ทำงานภายในบานหน้าต่างเหล่านั้น (เช่นประวัติเชลล์, vim เป็นต้น) และฉัน โดยปกติจะมีไม่เกิน 2 บานต่อหน้าต่าง แต่เพื่อตัวเขาเอง

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