ปุ่มกดตัวเลขใน vi ใส่ตัวอักษรแทนตัวเลข


8

ฉันใหม่กับ vi ที่จริงฉันใช้เพื่อแก้ไขไฟล์ข้อความขนาดเล็ก ฉันเป็นคนจริงจังและผิดปกติฉันคิดว่ามีปัญหากับแป้นตัวเลขดังต่อไปนี้: ฉันเขียนvi INและกด Enter INนี้การเข้าถึงฉันทำกับไฟล์ที่ชื่อว่า จากนั้นฉันใช้ปุ่มลูกศร (หรือ hjkl) เพื่อเลื่อนเคอร์เซอร์ไปที่ไฟล์ จากนั้นฉันกดiเพื่อเปิดใช้งานinsert modeและเขียน ปัญหามาที่นี่: ปุ่มกดตัวเลขทำงานไม่ถูกต้องเนื่องจากฉันได้รับpqrstuvwxylเมื่อฉันกด0123456789+( ,.-*/=ยังใช้งานได้)


1
ทำไมคำถามของฉันถูกย้ายที่นี่ ปัญหาไม่ได้เกี่ยวกับ Mac แต่เกี่ยวกับ Vi ในความเป็นจริงที่ผมกล่าวว่าแป้นพิมพ์ตัวเลขไม่ได้ทำงานเพียงใน Vi ในทางตรงกันข้ามมันมักจะทำงานได้ในสถานีหรือในโปรแกรมอื่น ๆ
Enrico Maria De Angelis

คำตอบ:


8

เท่าที่ผมเข้าใจมีสองโหมดเป็นไปได้สำหรับแป้นจำนวน VT100 ขั้ว: ปกติโหมดแป้นตัวเลขและโหมดการประยุกต์ใช้ปุ่มกด ส่วนหลังมีปุ่มกดที่ไม่ได้ส่งตัวเลข แต่เป็นแบบ escape sequences เช่นปุ่ม '1' จะส่งคีย์<ESC>[Oq'2' จะส่ง<ESC>[Orซึ่งตัวอักษรqและrจะปรากฏบนหน้าจอ นี่คือลำดับการควบคุมที่โปรแกรม (โฮสต์) อาจตีความว่าเป็นคำสั่งสำหรับคุณสมบัติบางอย่าง ดังนั้นในโหมดนี้ปุ่มกดจะถูกใช้เป็นปุ่มฟังก์ชั่นเพิ่มเติม

ตามมาตรฐานเทอร์มินัล VT100 โปรแกรม (โฮสต์) อาจ 'ขอให้' เครื่องเทอร์มินัลเปลี่ยนปุ่มกดเป็นโหมดแอปพลิเคชัน (สามารถทำได้โดยการส่งลำดับการควบคุมเฉพาะไปยังเทอร์มินัล) Vi และ Vim เป็นที่รู้จักในการทำสิ่งนี้ สวิตช์โหมดนั้นไม่ได้ใช้งานได้หลากหลาย แต่อยู่ในโปรแกรมหนึ่ง ๆ ไปยังฐานโปรแกรม: มันทำงานเฉพาะในโปรแกรมที่ร้องขอเท่านั้น ในโปรแกรมอื่นรวมถึงเชลล์ปุ่มกดยังคงอยู่ในโหมดตัวเลข การตั้งค่าเริ่มต้นใน Terminal.app ของ OS X คืออนุญาตให้โปรแกรมสลับไปยังโหมดแอปพลิเคชันซึ่งเป็นสิ่งที่คุณปิดใช้งานโดยยกเลิกการตรวจสอบตัวเลือก "อนุญาตโหมดแป้นพิมพ์แอปพลิเคชัน VT100" (BTW: ใน OS X 10.7 ตัวเลือกนี้มีป้ายกำกับว่า "การทำงานของปุ่มกดแบบเข้มงวด VT100")

ดูสิ่งนี้ด้วย:

http://www.vt100.net/docs/vt100-ug/chapter3.html https://ttssh2.osdn.jp/manual/th/usage/tips/appkeypad.html


บางทีฉันอาจไม่เข้าใจประเด็นที่คุณเขียน เมื่อฉันอยู่ในอาคารปุ่มกดทำงานได้ดี (แทรกหมายเลข) พฤติกรรม "แปลก" เกิดขึ้นเฉพาะในโหมดแทรกของ Vi
Enrico Maria De Angelis

1
สวิตช์โหมดทำงานเฉพาะในโปรแกรมที่ร้องขอเท่านั้น (ในกรณีนี้: vi) ดังนั้นคีย์แพดจึงใช้งานได้ตามปกติในโปรแกรมอื่นรวมถึงเชลล์ ฉันได้เพิ่มคำอธิบายนี้ไปที่คำตอบ
Dictionarics ไม่ประสงค์ออกนาม

9

ฉันแก้ไขปัญหาด้วยตัวเอง แต่ฉันอยากรู้ว่าทำไมโซลูชันของฉันถึงใช้งานได้ ฉันยกเลิกการเลือกตัวเลือกที่ลูกศรสีแดงระบุในภาพต่อไป เข้าสู่ นี้เป็นภาษาอิตาลี แต่หน้าต่างภาษาอังกฤษรุ่นเดียวกันอยู่ที่นี่

แต่ฉันจำไม่ได้ว่าเปิดใช้งานสิ่งนี้ แต่มีอยู่


การแก้ไขทำให้เข้าใจผิด มันผิดที่ " ฉันจำไม่ได้ว่าเปิดใช้งานสิ่งนี้ "; ในทางตรงกันข้ามฉันแน่ใจว่าฉันไม่เคยเปิดใช้งานในหน้าต่างนี้ !
Enrico Maria De Angelis

นอกจากนี้ยังมีบางส่วนที่ฉันขอให้ใครบางคนบอกฉันว่าทำไมตัวเลือกนี้จึงมีผลถ้ามีผลกระทบอื่น ๆ และถ้าเป็นไปได้ที่ฉันเปิดใช้งานโดยผลข้างเคียงของการพิมพ์ผิด
Enrico Maria De Angelis

AFAIK ตัวเลือกเปิดใช้งานเป็นค่าเริ่มต้น (อย่างน้อยก็เปิดใช้งานบน Mac ของฉันเช่นกันและฉันค่อนข้างแน่ใจว่าฉันไม่ได้เปิดใช้งานตัวเองอย่างจงใจ) สำหรับความคิดเห็นที่สองของคุณ: ดูหมายเหตุในประวัติการแก้ไขเกี่ยวกับคำถามติดตามที่ซ่อนอยู่ในคำตอบ
nohillside

1
การอ้างอิงคือฉันมักจะใช้แป้นตัวเลขเพื่อใส่ตัวเลขใน Vi อย่างไรก็ตามอาจมีการเปิดใช้งานตัวเลือกนี้โดยการอัปเกรดจาก Yosemite ไปยัง El Capitan (แต่ฉันแน่ใจว่าฉันใช้แป้นตัวเลขเพื่อใส่ตัวเลขหลังการอัพเกรด)
Enrico Maria De Angelis

1
มันเคยเป็นโดยค่าเริ่มต้น การเริ่มต้นใน OS X 10.11 El Capitan จะปิดตามค่าเริ่มต้น Vim กำลังเปิดใช้งานโหมดปุ่มกดแอปพลิเคชัน (DECKPAM) โดยไม่ต้องระบุการแมปเริ่มต้น ฉันไม่สามารถค้นพบสาเหตุที่ Vim ทำเช่นนี้ได้ ฉันคิดว่าควรจัดหาการแมปเริ่มต้นหรือไม่เปิดใช้งาน DECKPAM ตามค่าเริ่มต้น
Chris หน้า
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.