ปุ่มลูกศรกดปุ่มเพิ่มตัวอักษรในตัวแก้ไข vi


188

เมื่อฉันพยายามใช้ปุ่มลูกศรในโหมดแทรกในตัวviแก้ไขมีการแทรกอักขระต่อไปนี้ในตัวแก้ไข:

  • สำหรับฉันได้ B
  • สำหรับฉันได้รับ
  • สำหรับฉันได้ D
  • สำหรับฉันได้รับซี

โปรดช่วยฉันแก้ไขปัญหานี้


3
ฉันหัวเราะได้ดีในการอ่านชื่อ;) ฉันแน่ใจว่ามี XKCD สำหรับความรู้สึกที่น่ากลัวที่เกิดขึ้น (สำหรับผู้ใช้มือใหม่) เมื่อปุ่มลูกศรพิมพ์ตัวอักษร
vvy

1
มันน่ากลัวมาก ๆ )
Kyle Bridenstine

คำตอบ:


233

หากคุณยังไม่มี.vimrcไฟล์ในโฮมไดเร็กตอรี่ของคุณสร้างไฟล์โดยใช้สิ่งนี้:

vim ~/.vimrc

เพิ่มบรรทัดนี้ไปที่ด้านบนของไฟล์:

set nocompatible

บันทึกไฟล์และสิ่งนี้จะแก้ไขปัญหาให้คุณ :)


1
ฉันต้องสร้างไฟล์. exrc สำหรับ vi แต่ชุดที่เข้ากันไม่ได้ทำงานได้ดีมาก
tgun926

25
มีเคล็ดลับถ้าคุณใช้viแทนคุณvimต้องทำการกำหนดค่าเดียวกัน แต่ใน~/.exrcไฟล์
58

15
ทำงาน แต่ทำไมต้องแก้ไขนี้ ทำไมโดยค่าเริ่มต้นมันไม่ได้จัดการลูกศร?
Mohit

6
โดยค่าเริ่มต้น vi / vim ถูกตั้งโปรแกรมให้แทนที่ปุ่มลูกศรด้วยปุ่ม h, j, k, l การทำเช่นนี้ทำให้คุณไม่ต้องย้ายจากส่วนสำคัญของแป้นพิมพ์
Gaurav Manchanda

10
ปัญหาต่อไปคือ Backspace การแก้ปัญหา: askubuntu.com/questions/296385/…
daVe

87

ติดตั้งเป็นกลุ่ม -> สิ่งนี้จะแก้ไขปัญหา

sudo apt-get install vim

มีบทช่วยสอน vim / vi ที่ดีมากมายบน youtube หรือเว็บทั่วไป สำหรับปัญหาของคุณดูที่นี่

จากนั้นเปิดไฟล์ต่อตามปกติ :

vi desired-file

ทำงานให้ฉัน - แต่ไม่แน่ใจว่าทำไมสิ่งนี้แตกต่างจากเสียงเรียกเข้าที่ฉันเปิดตัวก่อนหน้านี้
Amos Folarin

6
นี่ควรเป็นคำตอบที่ยอมรับได้ (แต่ดูเหมือนว่าไม่มีใครยอมรับ) เป็นวิธีที่ง่ายที่สุด / สะอาดที่สุดในการรับ vim 'modernized' ไปยังคอนโซลคอมพิวเตอร์ (แทนเทอร์มินัลยุค tty / ANSI
Lockszmith

ใช่ฉันเห็นด้วยกับคุณ Lockzsmith นี่ควรเป็นคำตอบที่ยอมรับ
niccolo m

สิ่งนี้ใช้ได้สำหรับฉัน ฉันประหลาดใจที่ราสเปียนมาพร้อมกับเวอร์ชั่นของ vi / vim ที่มันทำ ... ถึงแม้ว่าบทเรียนทั้งหมดสำหรับมันจะบอกให้คุณใช้นาโนซึ่งมันยากที่จะเถียงว่าเสียงเรียกเข้านั้นดีกว่าจริง ๆ อาจเป็นเหตุผลเดียวที่ฉันใช้เสียงเรียกเข้ามากกว่านาโนเพราะเสียงเรียกเข้านั้นอยู่บนเครื่องทุกเครื่องและดูเหมือนว่ามีโอกาส 50/50 ไม่ว่าจะเป็นนาโน
ArtOfWarfare

คอมพิวเตอร์ BLEEPIN!
คริส

27

ด้วยviเมื่อคลิกที่iคุณเปิดใช้งานคำสั่งเพื่อแทรกข้อความ
คำสั่งนี้ช่วยให้คุณสามารถแทรกข้อความในไฟล์ของคุณ
และถูกต้องเมื่อคลิก:

  • เมื่อมันจะแทรก "A"
  • เมื่อมันจะแทรก "B"
  • ...

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

  • ที่จะขึ้นไป
  • ลงไป
  • ...

FYI นี่คือviคำสั่งบางส่วน:
จากแหล่งนี้

:xReturn ออกจาก vi , เขียนไฟล์ที่แก้ไขแล้วไปยังไฟล์ที่มีชื่อในการเรียกเดิม
:wqReturn ออกจาก vi , เขียนออกไฟล์ที่แก้ไขไปยังไฟล์ที่มีชื่อในการร้องขอเดิม
:qReturn ออกจาก (หรือออก) vi
:q!Return ออกจาก viแม้ว่าจะไม่มีการบันทึกการเปลี่ยนแปลงล่าสุดสำหรับการโทร vi นี้

เลื่อนเคอร์เซอร์ลงหนึ่งบรรทัด
เลื่อนเคอร์เซอร์ขึ้นหนึ่งบรรทัด
เลื่อนเคอร์เซอร์ซ้ายหนึ่งอักขระ
เลื่อนเคอร์เซอร์ขวาหนึ่งอักขระ

u ยกเลิกสิ่งที่คุณเพิ่งทำ สลับง่าย
. ทำซ้ำสิ่งที่คุณเพิ่งทำ

i แทรกข้อความก่อนเคอร์เซอร์จนกระทั่งEscตี
I แทรกข้อความที่จุดเริ่มต้นของบรรทัดปัจจุบันจนกระทั่งEscตี
a ท้ายข้อความหลังเคอร์เซอร์จนกระทั่งEscตี
A ท้ายข้อความถึงปลายบรรทัดปัจจุบันจนกระทั่งEscตี
o เปิดและใส่ข้อความในบรรทัดใหม่ด้านล่างบรรทัดปัจจุบันจนกระทั่งEscตี
O เปิดและ ใส่ข้อความในบรรทัดใหม่เหนือบรรทัดปัจจุบันจนกระทั่งEscกด

r แทนที่อักขระเดี่ยวภายใต้เคอร์เซอร์ (ไม่Escจำเป็น)
cw เปลี่ยนคำปัจจุบันด้วยข้อความใหม่เริ่มต้นด้วยอักขระภายใต้เคอร์เซอร์จนกระทั่งEscกดปุ่ม
x ลบอักขระเดี่ยวภายใต้เคอร์เซอร์
Nx ลบ N ตัวอักษรเริ่มต้นด้วยอักขระใต้เคอร์เซอร์
dw ลบคำเดียวที่เริ่มต้นด้วยอักขระภายใต้เคอร์เซอร์
C เปลี่ยน (แทนที่) ตัวอักษรในบรรทัดปัจจุบันจนกระทั่งEscตี
D ลบที่เหลือของเส้นที่เริ่มต้นด้วยตำแหน่งเคอร์เซอร์ปัจจุบัน

dd ลบบรรทัดปัจจุบันทั้ง
Ndd ลบ N บรรทัดที่เริ่มต้นด้วยบรรทัดปัจจุบัน; เช่น 5dd ลบ
yy สำเนา 5 บรรทัด(งัดตัด) บรรทัดปัจจุบันลงใน
Nyy สำเนาบัฟเฟอร์(ดึงตัด) บรรทัด N ถัดไปรวมถึงบรรทัดปัจจุบันลงในบัฟเฟอร์
p วางบรรทัด (s) ในบัฟเฟอร์ลงในข้อความหลังจาก บรรทัดปัจจุบัน

0(ศูนย์) ย้ายเคอร์เซอร์ไปยังจุดเริ่มต้นของบรรทัดปัจจุบัน (หนึ่งกับเคอร์เซอร์)
$ ย้ายเคอร์เซอร์ไปยังจุดสิ้นสุดของบรรทัดปัจจุบัน
w ย้ายเคอร์เซอร์ไปยังจุดเริ่มต้นของคำถัดไป
b ย้ายเคอร์เซอร์กลับไปยังจุดเริ่มต้นของก่อนคำ
:0Returnหรือ1G ย้ายเคอร์เซอร์ไปยังบรรทัดแรกในไฟล์
:nReturnหรือnG ย้ายเคอร์เซอร์ กับสาย n
:$ReturnหรือG ย้ายเคอร์เซอร์ไปที่บรรทัดสุดท้ายในแฟ้ม

/string ค้นหาไปข้างหน้าสำหรับการเกิดขึ้นของสตริงในข้อความ
?string ค้นหาย้อนหลังสำหรับการเกิดขึ้นของสตริงในการ
n ย้ายข้อความไปยังการเกิดขึ้นครั้งต่อไปของการค้นหาสตริง
N ย้ายไปที่การเกิดขึ้นครั้งต่อไปของสตริงการค้นหาในทิศทางตรงกันข้าม


28
ปุ่มลูกศรลงการแทรก "B" ไม่ใช่พฤติกรรมที่คาดหวัง ปุ่มลูกศรควรเลื่อนเคอร์เซอร์ขึ้นและลง / ซ้ายและขวาโดยไม่คำนึงถึงโหมดแทรก
James Wong

2
@JamesWong ที่จริงแล้วมันเป็นพฤติกรรมที่คาดหวังซึ่งเป็นวิธีที่ Vi เคยตั้งโปรแกรมไว้ VIM (อย่างไม่เป็นทางการ) สืบต่อจาก Vi อยู่ในโหมดที่เข้ากันได้กับ Vi โดยค่าเริ่มต้นซึ่งรวมถึงพฤติกรรมนี้สำหรับปุ่มลูกศร ดังนั้นคำว่า "ควร" ที่นี่เป็นเพียงแค่ความคิดส่วนตัวเท่านั้นเนื่องจาก VIM กำลังทำสิ่งที่ถูกตั้งโปรแกรมให้ทำ
villapx

2
@villapx - ไม่ไม่เป็นไปตามที่คาดหวัง พฤติกรรมที่คาดหวังถูกกำหนดโดยสิ่งที่ผู้ใช้ทั่วไปของคุณคาดหวัง บุคคลทั่วไปที่ใช้ vi / vim กำลังใช้งานอยู่เพราะนั่นคือสิ่งที่ติดตั้งบนเซิร์ฟเวอร์ที่พวกเขาต้องการกำหนดค่าอย่างรวดเร็วและพวกเขาจะไม่ทำอะไรมากพอที่จะรบกวนการติดตั้งอย่างอื่น มีเพียงไม่กี่คนที่เลือกใช้เสียงเรียกเข้าเมื่อได้รับตัวเลือกและมีน้อยกว่าที่รู้คุณสมบัติหรือนิสัยใจคอเหล่านี้ทั้งหมด ผู้ใช้ทั่วไปคาดว่าลูกศรจะย้ายเคอร์เซอร์ซึ่งเป็นลักษณะการทำงานที่คาดไว้ สิ่งอื่นใดที่มีพฤติกรรมที่ไม่คาดคิดและควรเขียนขึ้นเพื่อเป็นข้อผิดพลาดในสิ่งที่ไม่คาดคิด
ArtOfWarfare

@ArtOfWarfare คุณมีอิสระในการกำหนด "คาดหวัง" อย่างไรก็ตามคุณเลือก ฉันกำหนดมันเป็นสิ่งที่คาดหวังโดยผู้เขียนรหัสเนื่องจากค่อนข้างชัดเจนในคู่มือ VIM ว่าสิ่งนี้ควรจะทำงานอย่างไร ... จาก:help compatible: "โดยค่าเริ่มต้นตัวเลือกนี้จะเปิดอยู่และค่าเริ่มต้นของ Vi จะถูกใช้สำหรับ ตัวเลือกค่าเริ่มต้นนี้ถูกเลือกสำหรับผู้ที่ต้องการใช้ Vim เช่นเดียวกับ Vi และไม่รู้จัก (ต้องการ) เกี่ยวกับตัวเลือก 'ที่เข้ากันได้'
villapx

@ArtOfWarfare โดยทั่วไปผู้เขียน VIM มีกลุ่มเป้าหมายที่ชัดเจนเมื่อเขียนโค้ดในส่วนนี้และเนื่องจากผู้ชมนั้นแตกต่างจากที่ผู้ชมของคุณจะไม่ได้หมายความว่าเป็นข้อบกพร่อง คุณสามารถยื่นมันเป็นข้อผิดพลาดหากคุณต้องการ แต่เตรียมพร้อมที่จะถูกด่าว่าโดยกลุ่มหัวรุนแรง VIM (และทุกคนที่เคารพ 'manual', a la RTFM aficionados)
villapx

17

หากต้องการปิดใช้งานการพิมพ์ตัวอักษรบนลูกศรกดในโหมดแก้ไขคุณสามารถทำตามได้

vi $HOME/.exrc 

(สร้างไฟล์หากไม่มีอยู่) จากนั้นเพิ่มบรรทัดset nocompatibleลงในไฟล์และบันทึก


ฉันใส่มันใน. vimrc ทำไมคุณใส่ไว้ใน. exrc
pauljohn32

เป็นกลุ่มแหล่งที่มาทั้งสอง - ดูผลลัพธ์ของ:versionการสั่งซื้อโหลด ( :h .exrcหรือยัง:h init) ฉันคิดว่าบางคนอาจต้องการการตั้งค่าที่จะใช้ทั้งใน vi และเสียงเรียกเข้าหรืออาจเป็นแรงของนิสัยที่แท้จริง
William Robertson

11

มีสามโหมดในโปรแกรมแก้ไข vi คือ:

  • โหมดคำสั่ง
  • โหมดอินพุต
  • โหมดเริ่มต้น

เมื่อคุณเปิดไฟล์คุณจะอยู่ในโหมดเริ่มต้น ตอนนี้ถ้าคุณต้องการที่จะไปยังตำแหน่งที่ระบุในข้อความของคุณเพียงแค่ใช้ปุ่มลูกศรหรือการใช้งานh, j, k, lคีย์ โปรดทราบว่านี้จะทำงานเฉพาะเมื่อคุณไม่ได้กดi(หรือคำสั่งเข้าสู่โหมดการป้อนข้อมูลอื่น ๆ เช่นa, A, I)

สาเหตุของ 'B' อาจเป็นเพราะปุ่มลูกศรในโหมดป้อนข้อมูลไม่ทำงานเป็นปุ่มลูกศรดังนั้นเพียงกดEscเพื่อเข้าสู่โหมดเริ่มต้นได้ตลอดเวลา เมื่อจะเปลี่ยนโหมดการรับสัญญาณกดiหรือaและจะนำทางเพียงแค่กดiปุ่มที่สำคัญและใช้ลูกศรหรือh, j, ,kl


7

ฉันมีปัญหาเดียวกันที่แน่นอน แต่ไม่เพียง แต่ในเครื่องท้องถิ่นของฉัน แต่ยังเกี่ยวกับการเชื่อมต่อผ่าน putty บนเครื่อง sles ใน Win7 VM ผ่านเครื่องรับ citrix ทั้งโฮสต์ท้องถิ่นและโฮสต์ระยะไกลแสดงหลังจากติดตั้ง Ubuntu ที่มีปัญหาเดียวกัน

หลังจากพบว่า

$ localectl list-keymaps 
Couldn't find any console keymaps.

ทำให้พฤติกรรม VI ที่แปลกประหลาดนี้ฉันติดตั้งแพคเกจคอนโซลข้อมูลซึ่งแก้ปัญหาได้!

sudo apt-get install console-data

3

บันทึก:

มีข้อมูลที่ดีในโพสต์อื่น ๆ แต่ไม่มีโพสต์ใดพยายามอธิบายว่าทำไมพฤติกรรมนี้จึงเกิดขึ้น หลายคนคงต้องเจอกับสิ่งนี้ในอนาคต นอกจากนี้คุณสามารถทำเครื่องหมายคำถามนี้ว่าแก้ไขได้เนื่องจากมีโพสต์ก่อนหน้านี้ที่อาจช่วยคุณได้หรือไม่


นี่คือคำอธิบาย :

Viเป็นบรรณาธิการที่มีมานานแล้วโดยมีรากฐานกลับสู่ระบบ Unix มันเป็นเครื่องมือที่ดี แต่มันได้รับการทำซ้ำแล้วและตอนนี้ก็ยังดีกว่า เป็นกลุ่มที่เขียนในภายหลังและเป็นซ้ำที่ ผู้คนมักอ้างถึง vi ว่า 'vim-minimal' และ vim เป็นรุ่นปรับปรุง "ของ vi" คุณสามารถคิดเช่นนี้: vi เป็นแกนกลางและกลุ่มที่ขยายตัวในนั้น

มีแนวโน้มว่าคุณค้นพบพฤติกรรมอย่างไร :

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

โซลูชันที่ 1 หรือ 2

1) vi someFileในขณะที่ใช้viก่อนอื่นให้ย้ายไปที่จุดแก้ไขจากนั้นเข้าสู่โหมดแทรก

2) vim someFileเพียงใช้เสียงเรียกเข้าตั้งแต่เริ่มต้น

ฉันไม่สามารถเครียดพอที่จะอ่านคู่มือ (man pages) หรือใช้ -h เพื่อขอความช่วยเหลือ เมื่อคุณปรับให้เข้ากับรูปแบบในเชลล์หน้าคนกลายเป็นเพื่อนที่ดีที่สุดของคุณ ตัวอย่าง: man viหรือman vim


ตรวจสอบว่ามีการติดตั้งเป็นกลุ่ม

เปิดหน้าต่างคอนโซลและดำเนินการ:

dpkg --list | grep vim

หากคุณได้อะไรทำนองนี้คุณก็สามารถเริ่มใช้เสียงเรียกเข้าได้

~ $ dpkg --list | grep vim
ii  vim         2:7.4.052-1ubuntu3  amd64  Vi IMproved - enhanced vi editor
ii  vim-common  2:7.4.052-1ubuntu3  amd64  Vi IMproved - Common files
ii  vim-runtime 2:7.4.052-1ubuntu3  all    Vi IMproved - Runtime files
ii  vim-tiny    2:7.4.052-1ubuntu3  amd64  Vi IMproved - enhanced vi editor - compact version

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

sudo apt-get update
sudo apt-get install vim

ในโอกาสที่คุณใช้ vi หรือ vim เมื่อค้นหาบนอินเทอร์เน็ตถึงวิธีการแก้ไขบางอย่างและคุณลืมพิมพ์vimมีวิธีหนึ่งที่คุณสามารถแก้ไขได้ในอนาคต ฉันเตือนคุณให้ใส่ใจ คุณสามารถใช้นามแฝงเพื่อเขียนทับ vi โดยมีการอ้างอิงถึงกลุ่มเพื่อไม่ว่าคุณจะพิมพ์อะไรในอนาคตไม่บ่อยนักคุณจะได้รับกลุ่มโดยไม่ต้องใช้ "โอ๊ะโอ!" ขณะ คุณสามารถลบชื่อแทนได้ในภายหลัง

ประเภทvim .bashrc. เลื่อนลงไปที่บรรทัดว่างโดยมีเพียง a ~(หรือไปยังบรรทัดอื่น ๆ ที่ขึ้นต้นด้วยalias(ดังนั้นพวกเขาจึงรวมกลุ่มกัน) จากนั้นกดปุ่มiเพื่อเข้าสู่โหมด -insert- ในบรรทัดแยกของตัวเอง

alias vi='vim'

กดแล้วพิมพ์Esc :wqตอนนี้คุณต้องโหลดไฟล์ซ้ำ พิมพ์source .bashrcเชลล์อื่น ๆ ที่เปิดขึ้นหลังจากที่คุณทำการแก้ไขเหล่านี้จะโหลดไฟล์. bashrc โดยอัตโนมัติ


3

คำอธิบายทั้งหมดที่ได้รับเป็นบิตที่แปลกประหลาด ฉันมี vi แต่ไม่ติดตั้งเป็นกลุ่ม

การตรวจสอบทางเลือก: /etc/alternatives/vi/usr/bin/vim.tiny

ดังนั้นviมีและใช้vim.tiny/etc/vim/vimrc.tiny

และในvimrc.tinyคุณจะพบบรรทัดต่อไปนี้:

set compatible

ซึ่งเกือบเป็นสิ่งเดียวในไฟล์นี้ โปรดสังเกตว่าในจะใช้/etc/vim/vimrcnocompatible

ดังนั้นควรติดตั้งเป็นกลุ่มหรือเปลี่ยนvimrc.tinyไฟล์หรือสร้างไฟล์ของคุณเอง~/.vimrcซึ่งควรมีบรรทัด:

set nocompatible

1
ฉันไม่แน่ใจว่ามีอะไรแปลกประหลาด คุณแนะนำ 1. ติดตั้ง Vim - askubuntu.com/a/220072/158442 , 2. การสร้าง~/.vimrcและการตั้งค่าnocompatible: askubuntu.com/a/353944/158442หรือ 3. แก้ไขไฟล์ระบบ เฉพาะคำแนะนำในการแก้ไขเท่านั้นที่/etc/vim/vimrc.tinyเป็นของใหม่และคุณเรียกคำตอบที่แปลกประหลาดขณะที่แนะนำสิ่งเดียวกันกับพวกเขา
muru

1

เครื่องมือแก้ไข vi ดั้งเดิมไม่รู้จักปุ่มลูกศร (... afair) มีสองวิธีแก้ไข:

  1. ใช้เป็นกลุ่มแทน vi
  2. ใช้ h, j, k และ l เพื่อนำทาง (คุณไม่สามารถนำทางในขณะที่แก้ไขบน vi ดั้งเดิม btw)

สิ่งนี้ไม่เป็นความจริง ค้นหาแอพที่ใช้ terminfo / termcap และ libcurses ฉันใช้ vi ตั้งแต่ปี 1990 ใน Xenix, SCO Unix, AIX, hpux เก่าและอื่น ๆ และ pure-vi จาก 80 ได้มีการสนับสนุนการแมป terminfo / termcap แล้ว
Luciano

@ james-wong ดีแล้วฉันควรจะปรับปรุงคำตอบของฉันใหม่ ถึง "pure vi ภายใต้ Ubuntu ไม่ ... "
MadMike

... และนี่เป็นความคิดเห็นของ @luciano
MadMike

1

นี่อาจเป็นเพราะTERMตัวแปร ตั้งค่าสำหรับตัวอย่างเช่นนี้:

 export TERM=xterm

วิธีนี้ช่วยแก้ไขปัญหาสำหรับฉันในกรณีที่คำตอบอื่นไม่ได้ ขอบคุณ!
greg

1

ในบางระบบnocompatibleตัวเลือกไม่พร้อมใช้งานหรืออาจไม่สามารถแก้ไขปัญหาได้หากปลั๊กอินแบ่งการทำงานของปุ่มลูกศร นี่เป็นวิธีแก้ปัญหา ...

แก้ไข.exrcไฟล์เพื่อรวมบรรทัดต่อไปนี้:

map! ^[OA ^[ka
map! ^[OB ^[ja
map! ^[OC ^[la
map! ^[OD ^[ha

หรือหากปัญหามีอยู่ในโหมดปกติเท่านั้นคุณสามารถเปลี่ยนnmapและข้ามสิ่งต่อไปนี้aได้ดังนี้:

nmap! ^[OA ^[k

และอื่น ๆ

นี่คือชุดค่าผสมที่สำคัญที่จำเป็นในการสร้าง (แสดงเฉพาะรายการแรก):

map! <CTRL-V><Up-Arrow> <CTRL-V><ESC>ka

โหมดการแก้ไขนี้หนีออกมาเคลื่อนไปในทิศทางที่ต้องการและโหมดแก้ไขอีกครั้ง นี่เป็นสิ่งจำเป็นในการเอาชนะ Vi ที่อ่านลำดับหนีเป็นลำดับของตัวอักษร <ESC> <O> <A> เป็นต้น

ที่มา: https://hea-www.harvard.edu/~fine/Tech/vi.html


1

สำหรับ VI ให้สร้างหรือแก้ไขไฟล์ "~ / .exrc" หรือ VIM สร้างหรือแก้ไขไฟล์ "~ / .vimrc" ตั้งค่าหรือเพิ่มในบรรทัด

set nocompatible

ในช่วงเวลาของการเขียนนี้มีการยกย่องในรายการที่โหวตมากที่สุดที่สองที่สงสัยว่าทำไมพวกเขาไม่ยอมรับรายการ เหตุผลก็คือมีโฮสต์ที่ไม่อนุญาตให้ติดตั้งโปรแกรมแก้ไขอื่น ๆ ถึงอย่างนั้นบางครั้งก็มีเอฟเฟกต์เหมือนกันดังนั้นจึงมีข้อมูลที่สามารถใช้งานได้จากสองรายการแรก ฉันไม่สามารถแสดงความคิดเห็นได้ แต่หวังว่านี่จะเป็นการล้างสาเหตุที่ทำให้ไม่มีใครถูกต้อง 100% 100% ของเวลา


0

บนเครื่องนี้ฉันต้องทำอย่างmake sureนั้น

set nocompatible

last entry in ~/.vimrcเป็น หรืออย่างน้อยหนึ่งในรายการสุดท้ายโดยเฉพาะอย่างยิ่งไม่มีการโหลดปลั๊กอินเพิ่มเติมหลังจากนั้น

HTH


0

ด้วยเหตุผลบางอย่างอูบุนตูจึงละเว้นการเริ่มต้น envvar HOME สำหรับผู้ใช้รูทบน 18.04 VPS ใหม่ของฉัน หากเป็นกรณีนี้ vi ไม่พบไฟล์. vimrc ปัญหาไม่เกิดขึ้นสำหรับผู้ใช้ปกติ (ใน / home /)

วิธีตรวจสอบตัวแปร:

echo $HOME

หากสิ่งนี้ส่งผลให้บรรทัดว่างเปล่าตัวแปรจะไม่ถูกตั้งค่า ปัญหาหายไปหลังจาก

export HOME=/root

ฉันย้ายคำสั่งไปยังไฟล์ /root/.bashrc (ฉันไม่รู้ว่าจะตั้งค่าไว้ที่ไหน)

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