แมปกุญแจใน iterm2


15

ฉันพยายามตั้งค่าคีย์ผสมเริ่มต้นใหม่ใน iTerm2 และต้องการที่จะเข้าใจว่าเกิดอะไรขึ้นเมื่อฉันผูกคีย์เพื่อ "ส่งรหัส Hex"

การโพสต์ก่อนหน้านี้ช่วยให้ฉันเริ่มต้นด้วยการแมปคีย์คอมโบ ctrl-a และ ctrl-e ไปยัง cmd-left และ cmd-right ตามลำดับ แต่ฉันต้องการรีคอมโบคีย์อื่น ๆ ด้วย ( ลิงก์ไปยังโพสต์ Stackoverflow ก่อนหน้า )

ฉันมีความเข้าใจที่คลุมเครือว่ามีรหัสเลขฐานสิบหกที่เกี่ยวข้อง แต่ฉันอยู่ในจุดที่ฉันไม่สามารถคิดได้ว่าจะไปที่ไหนต่อไปเพื่อทำความเข้าใจกับสิ่งที่เกิดขึ้นหรือสิ่งที่ต้องทำ


ไม่มีอะไรเกี่ยวข้องกับการทุบตี ลบแท็กแล้ว

คำตอบ:


16

รหัสฐานสิบหกนั้นเป็นเพียงลำดับของไบต์ ยกตัวอย่างเช่นการทำแผนที่การรวมกันที่สำคัญในการจะทำให้มันแทรก0x66 0x6f 0x6f จะแทรกäถ้าคุณใช้ UTF-8 วิธีfoo0xc3 0xa40x1b 0x1b 0x5b 0x43escape escape [ C

บางส่วนของไบต์เช่นANSI escape sequencesและแม้แต่ไบต์เดียวเช่นอักขระควบคุม ASCII มีความหมายพิเศษในเทอร์มินัล

ในการสร้าง⌘←และ⌘→ไปที่จุดเริ่มต้นและจุดสิ้นสุดของบรรทัดคุณสามารถกำหนดให้กับ 0x01 (^ A ในสัญรูปคาเร็ต) และ 0x05 (^ E ในสัญรูปคาเร็ต):

  • ⌘←: ส่งรหัส Hex: 0x01
  • ⌘→: ส่งรหัส Hex: 0x05

คุณสามารถทำให้ word ลบคำไปข้างหน้าโดยการกำหนดให้กับ\ed:

  • ⌥⌦: ส่ง ^ [d

การเปลี่ยน⌥←และ⌥→เป็น\ebและ\efในการตั้งค่าของ iTerm ก็จะเปลี่ยนพวกเขาในโปรแกรมที่ไม่สนับสนุนการอ่านคีย์หรือ emacs แบบปุ่มลัด ตัวเลือกอื่นคือการเพิ่มสิ่งนี้ใน~ / .inputrc :

"\e\e[D": backward-word
"\e\e[C": forward-word

คุณสามารถเรียกใช้readและกดปุ่มผสมเพื่อดูว่าพวกเขาใส่อักขระอะไร ยกตัวอย่างเช่น⌥←แทรก^[^[[Dโดยเริ่มต้นที่^[หลบหนีในสัญกรณ์เครื่องหมาย

ดูเพิ่มเติมhttp://code.google.com/p/iterm2/wiki/Keybindings


ขอบคุณ ผมวิ่งเข้าไปในคำตอบนี้เมื่อมองถึงวิธีแก้ปัญหาสำหรับคำถามของฉันที่นี่ ฉันจะค้นหารหัสฐานสิบหกสำหรับคีย์ผสมที่เฉพาะเจาะจงได้อย่างไร (ในกรณีของฉันฉันสนใจในชุดCtrl+Alt+<char>ที่มี<char>การถูกi, j, k, lและu)
เมลิโอ Vazquez-Reina

6

ฉันขอแนะนำให้ติดตั้งรหัสคีย์ ($ 0) โดยเทคนิคมากมายและค้นหาทางลัดสำหรับตัวคุณเอง

ตัวอย่างเช่นถ้าคุณต้องการตั้งค่าช็อตคัตเริ่มต้นสำหรับ (ส่งต่อ) การลบตัวอักษร - ซึ่งเป็น Ctrl-D ( ⌃D) - ให้ง่ายเหมือนการกดปุ่มลบไปข้างหน้า ( ) คุณจะ ...

  1. เปิดแอพแล้วกด Ctrl-D

    ตัวอย่างรหัสคีย์

  2. ย้อนกลับไปใน iTerm 2 เพิ่มทางลัด Unicode ใน iTerm> ค่ากำหนด> คีย์

    iTerm ส่งรหัส Hex

หมายเหตุ: อย่าคัดลอกและวางเพียงพิมพ์ Unicode โดยไม่มีช่องว่าง


2

วิธีที่ดีที่สุดที่ฉันพบคือการส่งคีย์โค้ด (ตามที่อธิบายโดย @pattulus หรือใช้การโยงคีย์ vim

หมายเหตุเกี่ยวกับรหัสสำคัญ:ที่จริงคุณไม่สามารถทำให้มันทำงานโดยการส่งสายอักขระ Unicode ตามที่อธิบายไว้ข้างต้นคุณต้องส่งทั้งปรับปรุงและกุญแจสำคัญในการ Gether ในกรณีของControl+ Dคุณจะต้องส่งเป็นรหัส: 0x840101 0x4ที่0x840101เป็นตัวปรับแต่งปุ่มควบคุม และสามารถที่จะได้รับผ่านการคีย์รหัส

หมายเหตุเกี่ยวกับการส่งเป็นลำดับ vim : ตามที่อธิบายไว้ในเอกสารประกอบของ iTerm2 คุณสามารถส่งรหัสคีย์ในรูปแบบ vim-bindings เช่น\<C-d>การส่งControl+ D(หมายเหตุที่\สำคัญ)

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


1

ตรวจสอบKarabiner

ภายในเครื่องมือนี้คุณสามารถสร้างการแมปกำหนดเองที่สำคัญที่ใช้เฉพาะกับแอปพลิเคชัน มันมาพร้อมกับเครื่องมือบางอย่างที่ช่วยได้

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