ปุ่มลูกศรหยุดทำงานเป็นกลุ่มโดยธรรมชาติ


25

ฉันเพิ่งอัพเกรดจาก OS X 10.6 (ฉันคิดว่า) เป็น 10.9 ตั้งแต่นั้นมาดูเหมือนว่าในขณะที่แก้ไขvimปุ่มลูกศรจะ "หยุด" ตามธรรมชาติหยุดทำงาน

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

เลิกและเปิดแก้ปัญหาชั่วคราว แต่ฉันต้องการป้องกันมัน!

ใครรู้ว่าสิ่งนี้อาจเป็นอย่างไร และจะแก้ไขได้อย่างไร?


ดูเหมือนว่าค่าเริ่มต้นของฉันvimrcจะถูกแก้ไขในระหว่างการอัพเดต หากหน่วยความจำของฉันถูกต้องมันเป็นไฟล์ที่ค่อนข้างใหญ่มาก่อน ตอนนี้มันมี:

" Configuration file for vim
set modelines=0         " CVE-2007-2438

" Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible        " Use Vim defaults instead of 100% vi compatibility
set backspace=2         " more powerful backspacing

" Don't write backup file if vim is being called by "crontab -e"
au BufWrite /private/tmp/crontab.* set nowritebackup
" Don't write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup

ฉันไม่รู้ว่าตัวเลือกเหล่านี้ยังทำอะไรอยู่ ฉันจะดูมัน - แต่หวังว่าจะมีใครบางคนที่นี่รู้ได้เร็วกว่าที่ฉันสามารถ google และอ่าน ...


ฉันเพิ่งรู้ว่ามีฟอรัมที่เป็นศูนย์กลางของ Apple ที่นี่ซึ่งคำถามนี้อาจเหมาะกว่า ดังนั้นหากนี่เป็นเงื่อนไขของ OS X มากกว่าvimอาจจะเป็น mod ที่สามารถโยกย้ายสิ่งนี้ได้สำหรับฉัน
svidgen

2
เตือนฉันเกี่ยวกับการทำงานกับเมนเฟรม "นายก" ในวิทยาลัย viอาจารย์สอนว่าคุณไม่ควรใช้ปุ่มลูกศรใน ใช้ hjkl เสมอ นั่นคือสิ่งที่ปุ่ม "ลูกศร" ใช้เพื่อเป็นฮาร์ดแวร์โบราณ
Red Cricket

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

1
จะเกิดอะไรขึ้นเมื่อคุณใส่ตัวอักษรสำคัญลงในบัฟเฟอร์ เข้าสู่โหมดแทรกแล้วกด Ctrl + v จากนั้นกดปุ่มลูกศร เป็นกลุ่มในการแสดงของฉัน Mac คีย์ลูกศรขึ้นเป็น^[OAลงเป็น^[OBขวาเป็นและที่เหลือเป็น^[OC ^[ODตรวจสอบก่อนและหลังปัญหานำเสนอตัวเอง
นาธานวอลเลซ

@NathanWallace ไม่แน่ใจว่าฉันมองข้ามคำถามของคุณอย่างไร ฉันจะลองเมื่อฉันอยู่ที่ Mac ของฉันต่อไป
svidgen

คำตอบ:


24

พบในบล็อกของ James Hodgkinsonคำสั่งต่อไปนี้ใช้ได้กับฉัน หมายเหตุมันจะรีเฟรชหน้าจอเป็นกลุ่ม

:!reset

ไม่แน่ใจว่าฉันมองข้ามคำตอบนี้ได้อย่างไร แต่มันก็ดูดีมาก!
svidgen

ในความเป็นจริง ... การกดปุ่ม Ctrl + R ตามที่อธิบายไว้ในบทความทำให้เกิดปัญหาขึ้นอีกครั้งโดยการจับคู่ปุ่มลูกศรผิดในการตอบสนองของฉันต่อนาธานด้านบน และคำสั่งรีเซ็ตจะแก้ไขมันในกรณีนั้น และ .. ฉันไม่สามารถสร้างปัญหาขึ้นมาได้อย่างน่าเชื่อถือดังนั้นวิธีนี้จึงเป็นคำตอบที่มีประโยชน์ที่สุดอย่างแน่นอน!
svidgen

11

ฉันพบปัญหานี้สองสามครั้งเช่นกัน ฉันบังเอิญใช้งานหน้าจอ GNU บนคอมพิวเตอร์เครื่องอื่นที่ฉันลงชื่อเข้าใช้ผ่านทาง SSH ในการแก้ไขปัญหาฉันถอดหน้าจอ ( Ctrl- a d) ออกจากระบบออกจากระบบลงชื่อเข้าใช้screen -xใหม่แล้วใช้อีกครั้ง มันอาจทำงานได้โดยไม่ต้องออกจากเครื่องเพียงแค่ดึงหน้าจอออกและใส่กลับเข้าไปใหม่ ฉันจำไม่ได้ว่า


ปิดเซสชั่นหน้าจอของฉันและเริ่มต้นมันคงที่สำหรับฉัน
Eno

1
นั่นคือปัญหาสำหรับฉัน ยังไงscreenก็เถอะอยู่ในสถานะของความกลัว (ผ่านการเชื่อมต่อ SSH) ปิดเทอร์มินัลนั้นแล้ว ssh อีกครั้งและscreen -rdทำเคล็ดลับ ขอบคุณ!
Pierre D

@ ถูกต้องฉันได้พบปัญหานี้สองสามครั้งแล้วเช่นกัน - ในscreenเซสชั่น Detach & Reattach แก้ไขปัญหาได้ขอบคุณ!
stdcerr

6

ในเส้นทาง/usr/share/vim/ฉันพบ.vimrcไฟล์ ... ที่นั่นฉันเพิ่มบรรทัด

set term=ansi 

มันใช้งานได้สำหรับฉัน ตอนนี้ปุ่มลูกศรทำงานอย่างถูกต้องในเครื่องมือแก้ไข Vim


2
การแก้ไขนี้สำหรับฉันด้วยเช่นกันเนื่องจากการอัปเดตล่าสุดของ Windows 10 WSL / Ubuntu ทำให้แตก
สุนัขจิ้งจอกสีเทา

3

ฟังดูเหมือนปัญหาของคุณมาก บทความนี้มีชื่อว่า: Cursor Keys in Vim: You Mac'ing Me Crazy! .

สิ่งที่สกัดมา

กลุ่มมีประโยชน์ในหลาย ๆ สถานการณ์โดยเฉพาะอย่างยิ่งการแก้ไขอย่างรวดเร็ว (โดยเฉพาะอย่างยิ่งรูท) และการแก้ไขไฟล์บนเซิร์ฟเวอร์ระยะไกล สิ่งที่น่ารำคาญอย่างหนึ่งที่ฉันมีในช่วงเก้าเดือนที่ใช้ Mac Book Pro คือปุ่มเคอร์เซอร์ในเสียงเรียกเข้าของเสียงกริ่งในโหมดแทรกหรือโหมดคำสั่งแทนที่จะเปลี่ยนเส้น การอัปเกรดเป็นเวอร์ชัน 7 ผ่าน MacPorts ให้ผลลัพธ์เหมือนกัน ปุ่มลูกศรทำงานหลังจากเปลี่ยน TERM ของฉันเป็น VT220 จาก rxvt! ข้อเสียคือการเน้นไวยากรณ์หยุดทำงาน

โชคดีที่การเพิ่ม VT220 ไปยังพารามิเตอร์การค้นหาของ Google ของฉันได้เปิดการอ้างอิงถึง vt100-cursor-keys ในเอกสาร Vim เพิ่มรหัสต่อไปนี้ไปยังไฟล์. vimrc ของคุณเพื่อแก้ไขปัญหา:

    :set notimeout          " don't timeout on mappings
    :set ttimeout           " do timeout on terminal key codes
    :set timeoutlen=100     " timeout after 100 msec

ในบทความเดียวกันมีข้อเสนอแนะของการตั้งค่าอื่น$TERMไปlinuxแทนใน OSX

สิ่งที่สกัดมา

ทางออกที่ดีกว่าคือการเปลี่ยนค่าเริ่มต้นสำหรับ TERM เป็น linux หรือ dtterm เนื่องจากค่า TERM จะถูกหยิบขึ้นมาบนเซิร์ฟเวอร์ระยะไกล ในวันนี้และอายุฉันจะเดิมพันเซิร์ฟเวอร์ส่วนใหญ่สนับสนุนทั้งประเภทอาคารเหล่านี้


อืม ... ข้ายิ่งสับสนมากขึ้นแล้ว ฉันคิดว่าฉันมี.vimrcไฟล์สากล / ค่าเริ่มต้น สิ่งเหล่านี้จะถูกย้ายหรือลบออกในระหว่างการอัพเดท OS X หรือไม่?
svidgen

@svidgen - ไม่ฉันไม่คิดว่ามันจะเปลี่ยนไป แต่ปัญหานั้นฟังดูคล้ายกับของคุณและการแก้ไขนั้นง่ายพอที่จะลองใช้ดังนั้นฉันคิดว่าฉันจะแบ่งปันกับคุณ บังเอิญที่$TERMคุณได้รับการเปลี่ยนแปลงกับคุณ
slm

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

หลังจากใช้การแก้ไขนี้แล้วปัญหาได้เกิดขึ้นอีกครั้ง ยังคงเป็นคำตอบที่เกี่ยวข้องปล่อยให้ +1 แต่โปรดดูความคิดเห็นของฉันด้านบนหากคุณสนใจที่จะให้คำตอบเพิ่มเติม
svidgen

0

ยินดีด้วยกับการอัพเดท ฉันได้อัปเดตของฉันเองในช่วงสุดสัปดาห์และได้รับการจัดการกับปัญหาแป้นพิมพ์แปลก ๆ ของฉัน

นี่คือสองสิ่งที่ฉันต้องการ:

  • ลบซอฟต์แวร์เกม Logitech เก่าออกแล้วอัปเกรด ก่อนที่จะทำสิ่งนี้ฉันมีปัญหาในการใช้เครื่องมือจัดฟันแบบเหลี่ยมและแบบหยัก ปุ่มพิเศษมักจะส่งลำดับในบริบท VIM ดังนั้นสิ่งนี้อาจเกี่ยวข้อง
  • เข้าสู่การตั้งค่าระบบ: ความปลอดภัยและความเป็นส่วนตัว: ความเป็นส่วนตัว: การเข้าถึงและเปิดใช้งานแอพสองตัว (synergy_server และซอฟต์แวร์เกม Logitech) ก่อนการเปลี่ยนแปลงนี้ฉันไม่สามารถควบคุมคอมพิวเตอร์เครื่องอื่น ๆ ด้วยการทำงานร่วมกันหรือใช้มาโครกับ G11 ของฉัน ฉันสงสัยว่านี่เป็นการเชื่อมต่อโดยตรงกับคุณ แต่ตัวเลือกการช่วยสำหรับการเข้าถึงเป็นเรื่องใหม่และอาจนำไปใช้กับแอพอื่น ๆ ของคุณ

0

หากคุณกำลังทำงานกับ.sqlไฟล์ในvim(คุณไม่ได้พูดถึง) สิ่งนี้จะช่วยคุณได้ ฉันเพิ่งจัดการกับเรื่องนี้เมื่อวันก่อน

ในไฟล์ ~/.vimrc

let g:omni_sql_no_default_maps = 1

ปัญหานี้จะกล่าวถึงที่นี่โดยเฉพาะ

หากคุณไม่พบปัญหาเกี่ยวกับ.sqlไฟล์ในvimตอนนี้ฉันต้องขออภัยเพียงอย่างเดียวที่ฉันจะต้องตรวจสอบการทำแผนที่ภายในvimเมื่อเกิดปัญหาขึ้น

:map Ctrl V → เมื่อคุณสูญเสียความสามารถในการใช้ลูกศรให้ทำคำสั่งนั้นแล้วดูว่าการแมปหายไปหรือไม่ ถ้าเป็นเช่นนั้นสิ่งนี้จะช่วยให้คุณได้เริ่มขุด


0

ฉันมีปัญหานี้ในเซสชัน SSH และแก้ไขได้โดยออกจากระบบแล้วกลับเข้ามาอีกครั้ง:

exit
ssh ...

ขอบคุณที่ชั่งน้ำหนักค่ะคำตอบที่เลือกนั้นได้ผลกับฉันมาตลอด คุณเคยลองไหม
svidgen

ใช่โซลูชันที่ยอมรับไม่ทำงานบน Ubuntu 18. ฉันยังถอนการติดตั้งและติดตั้ง vim ใหม่ (ในเซสชัน ssh เดียวกัน) และไม่มีลูกเต๋า เฉพาะการออกจากระบบและกลับมาใช้งานฟังก์ชั่นลูกศรที่คืนค่าอีกครั้ง
duhaime

0

ผมมีปัญหานี้เมื่อผมใช้ "ระบบตัวแปรสภาพแวดล้อม" ใน Windows, การตั้งค่าไปTERM xterm-256colorปัญหาหายไป (และฉันvimกลับสู่ปกติ) เมื่อฉันลบตัวแปรอีกครั้ง

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