ปุ่มลูกศรของ Linux vi เสียในโหมดแทรก


97

ปุ่มลูกศรของฉันใช้ไม่ได้ใน vi ในโหมดแทรกที่บ้านโดยแต่ละปุ่มจะใส่ขึ้นบรรทัดใหม่และตัวพิมพ์ใหญ่เช่น 'A' มีวิธีแก้ไขไหม


3
ฉันหมายถึงการกระจายของ linux?
Miquel

พวกเขาทำงานนอกบ้านหรือไม่? :-)
Brian Agnew

4
เห็นได้ชัดว่าการแก้ปัญหาคือ emacs เห็นได้ชัด.
Paul Nathan

38
@ พอลนาธาน - ถ้าวิธีแก้ปัญหาคือ emacs ฉันก็ไม่อยากรู้ว่าปัญหาคืออะไร
Chas. Owens

คำตอบ:


107

ฉันคิดว่าคุณกำลังใช้ vim เนื่องจากแท็กนี้เป็น Linux ลอง:

:set nocompatible

(คุณอาจต้องการกำหนดค่า. vimrc ของคุณด้วยสิ่งนี้โดยเพิ่มคำสั่งนี้เข้าไปสร้างไฟล์. vimrc ใหม่หากยังไม่มีอยู่ในโฮมไดเร็กทอรีของคุณให้รันecho $HOMEเพื่อตรวจสอบพา ธ โฮมไดเร็กทอรี)


7
ให้แน่ใจว่าคุณเริ่มต้น vi กับคำสั่งและไม่ได้vim viที่สุดของคุณลักษณะขั้นสูงและการใช้งานของกำลังการยกเลิกโดยปริยายจนกว่าคุณจะเริ่มต้นด้วยvim vim
จุด

1
@pts - เฉพาะในระบบที่เสีย การเริ่ม vim as vi บนกล่องทั้งหมดของฉันก็ใช้ได้ดี อย่างไรก็ตามมีกล่อง CentOS บางกล่องที่ฉันใช้ซึ่งแสดงให้เห็นถึงพฤติกรรมที่คุณกำลังพูดถึง
Chas. Owens

ใครสามารถแก้ไขคำตอบนี้เพื่อรวมสิ่งที่ดูเหมือนใน vimrc ได้หรือไม่?
Stephan

1
@Stephan Add set nocompatibleทางไลน์ของตัวเองใน. vimrc
Matthew Wilcoxson

บน Ubuntu ฉันแก้ไขสิ่งนี้ได้โดยเพียงแค่ติดตั้ง vim (sudo apt install vim) จากนั้นบน vi ทำงานได้ดีกับปุ่มลูกศรในโหมดแทรก แก้ไข: ฉันเห็นว่าตอนนี้ฮันพูดถึงแล้วด้านล่างที่นี่
pizzamonster

75

อูบุนตูมาพร้อมกับค่าเริ่มต้นvim-tinyซึ่งไม่มีระฆังและนกหวีดทั้งหมดที่เป็นกลุ่ม

ทำอย่างรวดเร็วsudo apt-get install vimเพื่อรับคุณสมบัติที่น่าสนใจทั้งหมดที่ทุกคนพูดถึง


1
นี่คือสิ่งที่ฉันต้องการใน Mint linux โดยการติดตั้ง vim ฉันยังคงสามารถเริ่มต้นโดยใช้ "vi" ได้และตอนนี้การไฮไลต์โค้ดทั้งหมดได้เปิดใช้งานแล้ว อะไรเป็นชิ้นที่ยอดเยี่ยมของความรู้ลินุกซ์ :)
wired00

1
สิ่งนี้ใช้ได้กับ Raspberry Pi ของฉัน (Jessie Lite) ฉันประสบปัญหานี้เมื่อฉันจะใส่เชลล์เข้าไป แต่ตอนนี้ได้รับการแก้ไขทั้งหมดแล้ว :-)
JakeD

35

:set term=builtin_ansi

แก้ไขให้ฉัน คุณสามารถวางสิ่งนั้นลงในกลุ่มขณะอยู่ในโหมดหลบหนี (โหมดเบลอ) หรือเพิ่มลงในตอนท้ายของ ~ / .vimrc โดยไม่มี ":" นำหน้า


: set term = xterm อาจใช้งานได้เช่นกัน (และง่ายต่อการจดจำ)
Alexx Roche

FYI :set term=builtin_ansiทำงานให้ฉัน :set term=xtermไม่ได้.
FractalSpace

บนกล่อง Linux ตัวหนึ่งของฉันฉันใช้export TERM=xtermในบรรทัดคำสั่งก่อนที่จะเรียกใช้ vi จากนั้น:set term=xtermใน vim 7.2 ก็ใช้ได้กับฉัน
Alexx Roche

ทำงานได้สมบูรณ์แบบ! ขอบคุณ!
Akhmedzianov Danilian

ใช้งานได้เพื่อเปิดใช้งานการนำทางด้วยปุ่มลูกศร แต่มันได้ฆ่ารหัสสีทั้งหมดในเทอร์มินัล
Ken Ingram

17

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


1
แม้ว่าจะไม่ใช่วิธีการแก้ปัญหาก็เป็นคำอธิบายที่ดีที่สุดสำหรับพฤติกรรม (IMO) ทำให้ชัดเจนแตกต่างระหว่างและvi vimแต่บนกล่องของฉันvimพิมพ์command not found: D
Daniel W.

@DanFromGermany บางทีคุณอาจจะมีเพียง vi ที่ติดตั้งและไม่ได้เป็นกลุ่ม โปรดลองติดตั้ง vim ผ่านตัวจัดการแพ็คเกจของระบบ Linux ของคุณหากคุณต้องการใช้
lothar

:set term=ansiทำงานให้ฉันขอบคุณRaz คุณบอกว่า 'ไม่สนับสนุน' ฉันสงสัยว่าคุณบอกว่าเป็นเพราะvim-tinyแพ็คเกจของอูบุนตู - ฉันกำลังใช้ - แตกต่างจากวานิลลาviหรือการตั้งค่าระยะจะทำงานได้เช่นกัน?
n611x007

8

อีกรูปแบบหนึ่ง: ปัญหานี้ปรากฏให้ฉันเห็นหลังจากมีการเปลี่ยนแปลง. vimrc ในที่สุดการค้นหาร่วมกันพบว่าการทำแผนที่ ESC ใหม่อย่างชาญฉลาดของฉันในโหมดปกติไม่ใช่ความคิดที่ดี การนำออกช่วยแก้ปัญหาได้:

" this is NOT something you want in .vimrc:
" In normal mode, hitting Esc turns off search highlights:
nmap <ESC> :nohl<CR>  " Do NOT add this to .vimrc

ฉันลองทุกอย่างแล้วหลังจากพบปัญหานี้และนี่คือสิ่งที่ฉันกำลังมองหาขอบคุณ!
Dan Bartlett

ขอบคุณสำหรับการแก้ไขฉันมองหาทุกที่ มีความคิดว่าทำไมการรีแมปการหลบหนีทำให้เกิดปัญหา?
nonphoto

6

สิ่งเดียวที่ได้ผลสำหรับฉันคือ ": set term = ansi"


1
ดูเหมือนว่าจะได้ผลสำหรับฉันโดยใช้คอนเทนเนอร์ Docker
ohlando

1
อันนี้ใช้ได้ผลกับฉันด้วย ฉันใช้ cmd.exe ใน windows และเข้าสู่ Ubuntu โดยใช้ vagrant
codelogn

@ CodeCodeO-1-O-log-n แล้วคุณใช้ด้านไหนviบน windows หรือฝั่ง Ubuntu? :)
n611x007

บน windows ฉันรัน cmd.exe จากนั้น vagrant ssh เข้าสู่เซิร์ฟเวอร์ ubuntu จากนั้น vi เข้าสู่เซิร์ฟเวอร์ แต่ต่อมาฉันเริ่มใช้ Putty และฉันไม่จำเป็นต้องทำแบบนั้นอีกต่อไปและ Putty ก็ทำงานได้ดีสำหรับฉัน
codelogn

3

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

ด้วยเหตุผลบางอย่างเมื่อฉันติดตั้ง vim ด้วย sudo apt-get install vimvi ไม่มีปัญหาเกี่ยวกับลูกศรหรือ backspace อีกต่อไป


1

ฉันเพิ่งมีปัญหากับปุ่มลูกศรหลังจากเปลี่ยนไปใช้ git ใน. vim

ฉันได้ติดตั้ง repo นี้แล้ว - https://github.com/sunaku/.vim

และหลังจากขุดไปประมาณหนึ่งชั่วโมงฉันพบว่าปลั๊กอิน AutoClose (ซึ่งไม่ชอบเลย) ทำให้ปุ่มลูกศรหัก

เอกสารปลั๊กอินแนะนำว่าควรตั้งค่า ttimeoutlen = 100 แต่ไม่ได้ผลสำหรับฉัน! (ใช้ urxvt + screen หรือ urxvt และแม้แต่ xterm)

ดังนั้นฉันจึงลบปลั๊กอินในตอนท้าย


0

คุณอาจต้องการลอง 'noesckeys'


0

ฉันมีปัญหาเดียวกันในขณะที่ใช้ vim ใน Windows 8.1 กับ Cygwin

วิธีแก้ปัญหาสำหรับฉันคือเพียงเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล Cygwin ของคุณ:

cp vimrc_example.vim ~/.vimrc

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