TAB และ <tab> ต่างกันอย่างไร


15

ฉันกำลังอ่านเอกสารสำหรับโหมด Yasnippet เมื่อฉันมาที่ส่วนที่กำหนดปุ่มไก:

ดูเหมือนว่าโหมดรอง Yasnippet จะกำหนดTABคีย์เพื่อให้ทำงานyas-expandโดยใช้:

(define-key yas-minor-mode-map (kbd "<tab>") 'yas-expand)
(define-key yas-minor-mode-map (kbd "TAB") 'yas-expand)

ความแตกต่างระหว่าง<tab>และTABคืออะไร? (ฉันพยายาม google นี้ แต่ฉันไม่สามารถหาคำอธิบายที่ชัดเจน)

คำตอบ:


9

แม้ว่าโดยปกติแล้ว Emacs จะแปล<tab>(ปุ่มเดียว) เป็น TAB( C-i) คุณสามารถผูก<tab> และTABทำสิ่งต่าง ๆ ได้:

(global-set-key (kbd "<tab>") #'proced)
(global-set-key (kbd "TAB") #'indent-for-tab-command)

2
ผมเห็น แต่ทำไม Yasnippet จำเป็นต้องกำหนดทั้งสอง<tab>และTAB?
HåkonHægland

3
@ HåkonHæglandหากคุณผูกมันกับคำสั่งที่แตกต่างกันในแผนที่โลก emacs หยุดแปลหนึ่งไปยังอีก (แม้ในแผนที่โหมดรอง) yasnippet ผูกทั้งในกรณี
Malabarba

1
@Malabarba ดังนั้นหากคุณกำหนดทั้งสอง<tab>และTABวิธีเดียวที่จะเรียกใช้คำสั่งที่เกี่ยวข้องกับTABคือการพิมพ์C-i?
HåkonHægland

2
หากคุณผูก<tab>กับคำสั่งที่แตกต่างจากสิ่งที่คุณผูกTABไว้แล้วสิ่งที่คุณได้รับเมื่อคุณกดปุ่ม "แท็บ" ขึ้นอยู่กับว่า / สิ่งที่มันส่งไปยัง Emacs ถ้ามันส่งC-i(aka TAB) แล้วคุณจะได้รับการTABผูก ถ้ามันส่ง<tab>มาคุณก็จะได้ข้อผูกพัน (และใช่คุณสามารถกดC-iเพื่อรับTABผลผูกพันได้เสมอ)
Drew

1
ข้อมูลทางประวัติศาสตร์เพิ่มเติมเกี่ยวกับที่แตกต่างกันTABคีย์จะได้รับจากStreakyCobraในนี้ปัญหา spacemacs GitHub คุณอาจต้องการรวมข้อมูลบางอย่างไว้ในคำตอบของคุณ
HåkonHægland
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.