tmux: บางครั้ง CTRL + B <แป้นลูกศร> พิมพ์รหัสอักขระ ([A, [B, [C หรือ [D) แทนการสลับบานหน้าต่าง


3

เมื่อฉันพยายามสลับบานหน้าต่างใน tmux ด้วย ctrl + b tmux จะพิมพ์รหัสอักขระที่เกี่ยวข้องเป็นระยะ ๆ [A, [B, [C หรือ [D] แทนบานหน้าต่างสวิตช์

ฉันสามารถทำสิ่งนี้ซ้ำ ๆ ได้เหมือนกัน 75% เวลาที่จะเปลี่ยนอย่างเหมาะสมและอีก 25% เวลาที่จะพิมพ์รหัสอักขระ

ctrl+b <up arrow>    prints [A
ctrl+b <down arrow>  prints [B
ctrl+b <right arrow> prints [C
ctrl+b <left arrow>  prints [D

ฉันใช้ cygwin เชื่อมต่อกับ Linux Mint Tmux ทำงานบน Linux mint และเชลล์ที่ฉันใช้อยู่นั้นใช้งานไม่ได้

แก้ไข: เพื่อทำให้คำถามนี้เป็นมิตรกับการค้นหามากขึ้นฉันจะเพิ่มคำหลักเหล่านี้:

เทอร์มินัลเอาท์พุทรหัสอักขระ open open bracket A, open bracket B, open bracket C, open bracket D

ความคิดใด ๆ


คุณใช้เทอร์มินัลอีมูเลเตอร์ใดใน Cygwin mintty?
jjlin

เทอร์มินัลอีมูเลเตอร์นั้นมินต์พร้อมชนิดเทอร์มินัลตั้งเป็น xterm-256color
Matthew

คำตอบ:


2

ดูเหมือนว่า tmux ‘s escape-time ตั้งค่าเป็นบิตต่ำสำหรับคุณภาพการเชื่อมต่อที่คุณมีระหว่างระบบ Cygwin และระบบ Linux

เทอร์มินัลจำนวนมากสร้าง ESC ลำดับสามไบต์ [ B สำหรับปุ่มลูกศรชี้ลง escape-time การตั้งค่าบอก tmux ระยะเวลาที่ควรรอลำดับที่สมบูรณ์หลังจากได้รับ ESC; หากหมดเวลาโดยไม่ได้รับลำดับที่สมบูรณ์แล้ว tmux จะถือว่าแต่ละไบต์เป็นการกดแป้นแต่ละครั้ง tmux กุญแจและกำลังผ่านไป [B ไปที่ tty ของบานหน้าต่างที่ใช้งานอยู่)

ดังนั้นคุณอาจมี escape-time ตั้งเป็นค่าที่ต่ำมาก (ซึ่งอาจจะใช้ได้เมื่อคุณเข้าถึง tmux ผ่านการเชื่อมต่อในท้องถิ่นอย่างเคร่งครัด) หรือบางครั้งการเชื่อมต่อระหว่างเครื่องทั้งสองก็จบลงด้วยความล่าช้าเพียงเล็กน้อยของคุณ escape-time ราคา. คุณสามารถสอบถามค่าปัจจุบันด้วยคำสั่ง tmux show-options -s | grep escape-time.

ค่าเริ่มต้นคือ 500 มิลลิวินาที สิ่งนี้จะทำงานได้ดีในสถานการณ์ส่วนใหญ่ แต่อาจสั้นเกินไปสำหรับการเชื่อมต่อเล็กน้อย คุณอาจลองเพิ่มมูลค่าของ escape-time:

set-option -s escape-time 1000

คุณสามารถใส่สิ่งนี้ในของคุณ ~/.tmux.conf ไฟล์เรียกใช้มันเป็น tmux คำสั่งในเปลือกภายใน tmux เซสชันหรือพิมพ์โดยตรงที่ tmux พรอมต์ (เปิดด้วย C-b : ) หมายเหตุ: การเปลี่ยนแปลงเกิดขึ้น ~/.tmux.conf จะไม่มีผลจนกว่าคุณจะ source ไฟล์หรือรีสตาร์ทของคุณ tmux เซิร์ฟเวอร์


+1 สำหรับคำอธิบายที่น่ากลัวโชคไม่ดีที่มันไม่สามารถแก้ปัญหาได้ ปัญหาดูเหมือนจะแย่ลงหลังจากเพิ่มระยะเวลาหลบหนี :( ฉันควรทราบว่าปุ่มลูกศรทำหน้าที่คล้ายกันเมื่อพยายามนำทางบรรทัดคำสั่ง tmux (ctrl + b :) กดซ้ายเพื่อเลื่อนเคอร์เซอร์เมื่อเสร็จสิ้นบางส่วน บางครั้งคำสั่ง tmux จะลบตัวอักษรแทนการเลื่อนเคอร์เซอร์และฉันต้องกด 'i' เพื่อให้สามารถพิมพ์อีกครั้งราวกับว่ามันมีการเชื่อมโยงปุ่ม vi และกดแป้น Escape คุณอาจพูดถูกปัญหาการเชื่อมต่อช้า แต่เวลาหลบหนีที่สูงขึ้นทำให้แย่ลง
Matthew

พฤติกรรมของคุณ tmux บรรทัดคำสั่งดูเหมือนจะเป็นปัญหาลำดับความล่าช้าอย่างแน่นอน: ESC จะนำคุณออกจากโหมดแทรก [ ถูกละเว้น (ไม่มีการผูกมัดใน vi-edit ตาราง) และ D คือ delete-end-of-line คำสั่ง ฉันจะไม่คาดหวังสูง escape-time เพื่อทำให้ปัญหาลำดับที่ถูกขัดจังหวะ แม้ว่ามันจะทำให้ vi - การผูกแบบไม่สะดวก - คุณต้องรอเสมอ escape-time เพื่อผ่านไปหลังจากกดปุ่ม ESC (เช่นออกจากโหมดแทรก) และก่อนที่จะเริ่มพิมพ์คำสั่งโหมดปกติ (เช่น b เพื่อเลื่อนกลับคำ)
Chris Johnsen

ทำไมสิ่งนี้จะเกิดขึ้นภายใต้ tmux และไม่ได้เลยเมื่ออยู่ในทุบตีหรือเซสชั่นหน้าจอ gnu?
Matthew

นอกจากนี้ยังเกิดขึ้นเมื่อตีความโดย tmux เท่านั้น (หลังจาก ctrl + b หรือขณะที่อยู่บน tmux: บรรทัดคำสั่ง); ฉันสามารถกดปุ่มลูกศรซ้ำ ๆ ที่เทอร์มินัลในหน้าต่าง tmux โดยไม่มีปัญหา (bash prompt ใน tmux session)
Matthew

1
สมมติว่าเทอร์มินัลต้องการส่ง ESC สามชุดลำดับ [ Dแต่มันหยุดหลังจากไบต์แรก หากสิ่งนี้เกิดขึ้นหลังจากคำนำหน้าของคุณ ESC ที่นำหน้าคือ "eaten" เป็นชุดคีย์ที่รวมได้ ใน vi โหมดแก้ไขบรรทัดคำสั่งสไตล์มันเป็น "กิน" เป็น vi ปุ่มกลับสู่โหมดปกติ เมื่อคุณพิมพ์ด้วย tty (เช่น ทุบตี ใน tmux ), ESC ไม่เคย "กิน" มันแค่ส่งไปยัง tty พื้นฐานเป็นคีย์ "แยก" ถ้ากระบวนการฟัง ( ทุบตี ) ไม่เป็นเรื่องเกี่ยวกับ Escape vs. start-of-sequence แล้วมันจะรอ [D และถือเป็นลูกศรซ้าย
Chris Johnsen

1

ฉันมีปัญหานี้เช่นกัน มันเฉพาะเจาะจงกับปุ่มลูกศร (และอาจ cygwin) ในขณะนี้ฉันตัดสินใจที่จะยกเลิกการผูกปุ่มลูกศรและย้ายคำสั่ง select-pane ที่อื่นและการผูกคีย์ใหม่นั้นทำงานได้อย่างไม่มีที่ติ ไม่ใช่วิธีที่น่าพอใจมาก ฉันชอบที่จะได้ยินว่ามีใครคิดออกว่าเกิดอะไรขึ้น

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