ฉันจะสร้าง ctrl + ปุ่มซ้าย / ขวาเพื่อเลื่อนไปตามคำทั้งหมดใน tmux ได้อย่างไร


100

ในทั้ง zsh และ bash ลูกศร ctrl + ช่วยให้ฉันสามารถย้ายตำแหน่งที่ฉันพิมพ์ด้วยคำทั้งหมด แต่สิ่งนี้ไม่ทำงานใน tmux ซึ่งเป็นปัญหาเนื่องจากฉันเปิดตัวมันโดยอัตโนมัติทุกครั้งที่ฉันเปิดเปลือก .

ฉันจะแก้ไขสิ่งนี้ได้อย่างไร

คำตอบ:


130
  1. แก้ไข~/.tmux.confและเพิ่มบรรทัดของคุณ:

    set-window-option -g xterm-keys on
    
  2. หากคุณยังไม่ต้องการให้ถาวรให้ทำ:

    C-b :set-window-option xterm-keys on
    
  3. โหลดการกำหนดค่าของคุณใน tmux โดยทำ:

    C-b :source-file ~/.tmux.conf
    

ข้อมูลเพิ่มเติมที่นี่ :


2
แปลก: สิ่งนี้ใช้ได้กับฉันเฉพาะเมื่อฉันโหลดไฟล์ ~ / .tmux.conf จาก tmux หรือตั้งค่าการดำเนินการใน: -prompt ของ tmux ไม่ใช่เริ่มแรกเมื่อฉันเปิด tmux ความคิดใด ๆ ที่อาจเป็นปัญหาที่นั่น?
AME

@AME ปิดเซสชัน tmux ทั้งหมดจากนั้นลองอีกครั้ง
นาธาน

หากการกำหนดค่าโหลดซ้ำไม่สามารถแก้ปัญหาได้ (นี่เป็นกรณีสำหรับฉัน) ให้ลองเซสชันใหม่ บางทีคุณอาจต้องฆ่าเซสชันปัจจุบันและสร้างเซสชันใหม่ ตัวเลือกอื่นเพื่อให้มีผลในบานหน้าต่าง (ไม่ใช่เซสชัน) คือ Cb:
respawn-

สิ่งนี้ใช้ได้กับฉันเป็นส่วนใหญ่ ฉันสงสัยว่าทำไมไม่เป็นค่าเริ่มต้น
inetknght

ฆ่าเซสชันหรืออะไรก็ตามที่set-window-option -g xterm-keys onยังไม่ได้ทำในกรณีของฉัน
noraj

8
set-window-option -g xterm-keys on

ให้ฉันมีวิธีที่นั่นและให้ฉันCtrl- Left/Rightบนคอนโซล แต่มันก็ยังคงตอบสนองแตกต่างกันในกลุ่ม

การผูกกุญแจไม่ได้ช่วยอะไร

มันกลับกลายเป็นว่าในบางครั้งฉันได้ตั้งค่าเทอร์มินัลเริ่มต้นของฉันไปที่หน้าจอ ( set-option -g default-terminal "screen"ใน.tmux.conf)

การเปลี่ยนสิ่งต่อไปนี้ให้ฉันCtrl- Left/Rightในทุกสิ่ง:

set-option -g default-terminal "xterm-256color"

หวังว่าจะช่วยใครซักคน


1
ยกเว้นนี้แบ่งสีในกลุ่ม, TIG และพวงสันนิษฐานทั้งหมดของสิ่งอื่น ๆ ...
koniiiik

1
ดูเพิ่มเติมที่unix.stackexchange.com/a/1098/250สำหรับคำแนะนำเกี่ยวกับการตั้ง TERM แบบนั้นใน tmux
phunehehe

3

สำหรับ msys2 / Cygwin / mintty:

~/.inputrcเพิ่มด้านล่างเพื่อ

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

Reload จะทำให้ tmux ทำงานอย่างถูกต้อง


2

ฉันไม่แน่ใจ แต่อาจเป็นเพราะการtmuxผูกค่าเริ่มต้นC-<up/down/left/right>เพื่อเลื่อนโฟกัสไปยังบานหน้าต่างด้านบน / ด้านล่าง / ด้านซ้ายของ / ขวาของบานหน้าต่างที่โฟกัสอยู่ในปัจจุบัน หากคุณไม่ได้ใช้บานหน้าต่างบ่อยๆคุณอาจไม่ได้สังเกตเห็นคุณสมบัตินี้ หากนี่คือปัญหาคุณสามารถยกเลิกการผูกคีย์เหล่านั้นด้วยการพูดว่า:

unbind C-Left
unbind C-Right

นั่นอาจเพียงพอสำหรับตัวคุณเองหรือคุณอาจจำเป็นต้องผูกมัดพวกเขาเองอีกครั้งกับสิ่งที่คุณต้องการให้พวกเขาทำผ่าน:

bind -n C-Left <the action you want>
bind -n C-Right <other action you want>

1
มันควรจะเพียงพอสำหรับตัวมันเองถ้ามันไม่ได้ถูกดักจับด้วย tmux มันควรจะส่งผ่านไปยังเชลล์
Rob

0

สำหรับฉันกุญแจไม่ได้ถูกผูกไว้อย่างถูกต้องเพราะการตั้งค่าระบบในเซียร์ราสูงถูกกำหนดให้ใช้โดยการควบคุมภารกิจ การยกเลิกการเลือกเหล่านี้อนุญาตให้การเชื่อมโยงที่ถูกต้องทำงานใน iTerm2 และ Tmux

ค่ากำหนดของระบบ

การยกเลิกการเลือกรายการทั้งหมดที่อ้างอิงถึงคีย์ควบคุมทำให้การเชื่อมโยงทำงานได้อย่างถูกต้อง

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