ฉันจะส่ง C- / (นั่นคือ control-slash) ไปยังเทอร์มินัลได้อย่างไร


13

ฉันพยายามเรียกใช้ Emacs ในเทอร์มินัล ฉันได้เปิดใช้งาน "ตัวเลือกใช้เป็นเมตาดาต้า" ในการตั้งค่าเทอร์มินัลและมันทำงานได้ประมาณ 95%

ลำดับคีย์ ctrl- / (หรือในเครื่องหมาย Emacs C- /) คือ "เลิกทำ" ลำดับของคีย์นี้ทำให้เทอร์มินัลส่งเสียงระฆัง ฉันจะแก้ไขสิ่งนี้ได้อย่างไร


FWIW ใช้ได้กับ iTerm2 - iterm2.com - แต่ฉันคิดว่าฉันจะฝึกตัวเองให้ใช้ ^ _ ทุกที่เพื่อพกพาได้มากกว่า
Steven R. Loomis

@ StevenR.Loomis แบบพกพา? ไม่ใช่ control- / หรือ control-_ ทำงานภายใต้ Android ...
Michael

@Michael ฉันพูดแบบพกพาเพราะมันเป็นตัวแทนใน ASCII (ดูคำตอบที่ยอมรับ) และทำให้สามารถขนส่งการเชื่อมต่อเครือข่ายโดยไม่มีปัญหา นอกจากนี้ดูเหมือนว่าจะใช้งานได้บนแป้นพิมพ์กายภาพส่วนใหญ่ที่ฉันเคยเห็น ฉันไม่ได้ลองจับคู่คีย์บอร์ดกับอุปกรณ์ Android คุณหมายถึงคีย์บอร์ดนุ่มหรือแข็งหรือไม่?
Steven R. Loomis

ซอฟต์แวร์ @ StevenR.Loomis ... ส่วนควบคุมดูเหมือนจะถูกเพิกเฉยส่งผลให้มีความพยายามในการยกเลิกการใส่เครื่องหมายสแลชหรือขีดล่าง
Michael

คำตอบ:


19

ควบคุม/ไม่ได้เป็นส่วนหนึ่งของชุดที่รหัสควบคุมมาตรฐาน มันไม่สามารถแทนได้โดยตรงเหมือนกับการกดแป้นในการจำลองเทอร์มินัลจำนวนมาก การกดแป้นพิมพ์ดังกล่าวสามารถตรวจจับได้อย่างถูกต้องใน "โหมด scancode" หรือ "โหมด GUI" เฉพาะบางแพลตฟอร์ม (ซึ่ง API จะบอกให้คุณทราบถึงการใช้คีย์และตัวดัดแปลง) เทอร์มินัลอีมูเลเตอร์ของคุณกำลังส่งเสียงบี๊บเพราะเป็นการกดแป้นที่ไม่ถูกต้อง

รหัสควบคุมมาตรฐานครอบคลุมเฉพาะเวอร์ชัน“ การควบคุม” ของ

  • @ A- Z [\]^_(ASCII 0 - 31) และ
  • ? (ASCII 127)

ในโปรแกรมเทอร์มินัลอีมูเลเตอร์ส่วนใหญ่ที่ใช้เค้าโครงคีย์สหรัฐอเมริกาส่วนใหญ่คุณอาจต้องกดShiftเพื่อสร้าง“ รหัสควบคุม” บางส่วน:

  • C- @ คือControlShift2(เนื่องจาก@เป็นShift2)
  • C- ^ คือControlShift6(เนื่องจาก^เป็นShift6)
  • C-_ คือControlShift-(เนื่องจาก_เป็นShift-)
  • อย่างไรก็ตาม C-? อาจไม่เสมอไปControlShift/(เนื่องจาก?เป็นShift/) ค-? โดยทั่วไปแล้วจะถูกสร้างขึ้นโดยBackspace(บนแป้นพิมพ์ของ Apple, ปุ่มที่มีป้ายกำกับว่า "ลบ" โดยไม่มีสัญลักษณ์เพิ่มเติม⌦) หรือDelete(ตัวที่มี⌦บนแป้นพิมพ์ของ Apple)

ใน Emacs ที่ใช้ tty คุณสามารถใช้ C-_ undoแทน C- /


1
ขอบคุณสำหรับคำตอบอย่างละเอียด ฉันจะลองเล่นกับเทอร์มินัลชนิดต่าง ๆ เพื่อดูว่าฉันสามารถใช้งานได้หรือไม่
Kevin Peterson

1
"ประเภทอาคารต่าง ๆ "? คุณหมายถึงโปรแกรมจำลอง terminal แตกต่างกันหรือคุณหมายถึงมูลค่าลงทุน $ ซึ่งในเทอร์มิถูกตั้งค่าผ่านทางเทอร์มิ> การตั้งค่า> การตั้งค่า> [รายละเอียด]> ขั้นสูง> ประกาศเป็นขั้ว ? (การตั้งค่าทั้งหมดนั้นตั้งค่าเป็น $ TERM ซึ่งจะไม่เปลี่ยนการทำงานของเทอร์มินัลอีมูเลชั่น) Control- / เป็นคุณสมบัติของ X11 และไม่ได้รับการสนับสนุนจาก Cocoa หรือ Terminal
Chris หน้า

5

Ctrl- / ส่ง 0x1f ซึ่งเทียบเท่ากับ Ctrl-_ ตั้งแต่วันที่ VT102 มีตัวเลียนแบบ VT100 จำนวนมาก แต่จริง ๆ แล้วเป็นตัวเลียนแบบ VT102 iTerm2 ทำงานได้เพราะมันติดตามพฤติกรรมนี้

อีมูเลเตอร์ที่สอดคล้องกับข้อกำหนด VT100 เท่านั้นไม่สามารถส่ง Ctrl- / ฉันเชื่อว่าแอป Terminal เป็นหนึ่งในนั้น

VT100 หน้ากาก 2 บิตที่สำคัญที่สุดของ 7 บิต ASCII เมื่อกดปุ่มควบคุม / คือ 0x2f, o คือ 0x6f เมื่อมีการปิดบัง 2 บิตทั้งคู่จะเป็น 0x0f VT100 สามารถส่ง Ctrl-o แต่ไม่ใช่ Ctrl- /


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