คำถามติดแท็ก vi

vi เป็นเท็กซ์เอดิเตอร์ข้อความที่เน้นหน้าจอซึ่ง แต่เดิมสร้างขึ้นสำหรับระบบปฏิบัติการ Unix

1
ความแตกต่างระหว่าง. exrc และ. vimrc คืออะไร
ฉันรู้จากประสบการณ์ว่า ~ / .exrc vimไฟล์สามารถใช้ในการกำหนดค่า ฉันยังรู้ว่าไฟล์ ~ / .vimrc สามารถใช้เพื่อจุดประสงค์เดียวกันได้ อย่างไรก็ตามหากฉันใช้ .exrc การกำหนดค่าvimนำไปสู่การแก้ปัญหานี้ในระบบที่มีการติดตั้งมากกว่าvi vimกล่าวคือvimรองรับคุณสมบัติพิเศษที่viไม่ได้; และเมื่อคุณพยายามที่จะใช้พวกเขาในvi, viบ่น คำถามของฉันคือ: ความแตกต่างระหว่าง. exrc และ. vimrc คืออะไร หากทั้งสองมีอยู่แล้วทั้งสองมีการใช้งานอย่างไร มันเป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะใช้ไฟล์. exrc เพื่อกำหนดค่าvim?
13 vim  vi  rc 

2
ตัวแก้ไข Vi: วิธีที่เร็วที่สุดในการลบหลายแถวในไฟล์คืออะไร?
ฉันต้องการใช้เครื่องมือแก้ไข Vi เพื่อลบหลายแถวในไฟล์ โปรดแจ้งแนวคิดหรือข้อเสนอแนะให้ฉัน เป้าหมายของฉันเป็นเช่นนี้: ก่อน: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 . . 29 30 . . หลังจาก; 1 10 20 30 40 . .
12 vim  vi 

4
ทางลัดเป็นกลุ่มเพื่อเปิดไฟล์ภายใต้เคอร์เซอร์ในหน้าต่างที่เปิดอยู่แล้ว
ในกลุ่มคุณสามารถ เปิดไฟล์ภายใต้เคอร์เซอร์โดยใช้gfคำสั่ง <c-w> fหนึ่งยังสามารถเปิดแฟ้มที่ในหน้าต่างแยกใหม่โดยการกดปุ่ม นี่เป็นคุณสมบัติที่ดีและประหยัดเวลาจริงๆ อย่างไรก็ตามฉันไม่สามารถหาวิธีการเปิดไฟล์ในหน้าต่างแยกที่เปิดอยู่แล้ว (โดยไม่ต้องสร้างใหม่)
12 vim  vi  editors  key-mapping  gvim 

2
ในโหมด bash vi แผนที่ jk เพื่อออกจากโหมดแทรก
ฉันใช้อูบุนตู 16.04 ติดตั้งใหม่กับเปลือกทุบตี มีสองสิ่งที่ฉันต้องการทำ: ตั้งค่าโหมด vi เพื่อให้ฉันสามารถมีการเคลื่อนไหวเหมือนเป็นกลุ่มจากเทอร์มินัล ออกจากโหมดแทรกโดยการพิมพ์ jk ฉันอ่านในโพสต์อื่นว่าสิ่งนี้สามารถทำได้ด้วยzshฉันจะทำอย่างไรกับbash? TL; DR ใส่bind '"jk":vi-movement-mode'ลงใน.bashrcไฟล์ของคุณหลังจากset -o vi:) server@thinkpad:~$ tail -n 2 .bashrc set -o vi bind '"jk":vi-movement-mode' โปรดดูคำตอบของ @ grochmal สำหรับคำอธิบายโดยละเอียดเพิ่มเติม

2
ตำแหน่งเคอร์เซอร์หลังจากวางใน vi / vim
สิ่งหนึ่งที่ทำให้ฉันรำคาญในvi / vim : ถ้าฉัน "งัด" (aka "คัดลอก") ข้อความบางส่วนให้ย้ายไปที่อื่นในไฟล์และทำ "วาง" เคอร์เซอร์ของฉันจะยังคงอยู่ที่จุดเริ่มต้นของข้อความที่ฉันเพิ่งวาง สิ่งนี้แตกต่างจากสิ่งที่บรรณาธิการสมัยใหม่ทำซึ่งวางเคอร์เซอร์ที่ท้ายข้อความที่ฉันวาง ตัวอย่างเช่นสมมติว่า "copy buffer" มีคำว่า "ยอดเยี่ยม" ที่ฉันต้องการวางหลังจากคำว่า "an" ในวลี: This is an editor ในตัวอย่างเช่นgeditหลังจากวาง: This is an awesome editor ^ Cursor is here ในvi : This is an awesome editor ^ Cursor is here ฉันสามารถเปลี่ยนvi ให้ทำตัวเหมือนgedit (ตัวอย่าง) ในเรื่องนี้ได้หรือไม่?
11 vim  vi 

2
ใน vi / vim ฉันจะผนวกไฟล์อย่างไรแทนที่จะเขียนทับมัน?
:w <file>ฉันรู้ว่าฉันสามารถเขียนไปยังแฟ้มโดยเพียงแค่ทำ ฉันอยากรู้ว่าฉันจะเขียนลงไฟล์ได้อย่างไรโดยการต่อท้ายมันแทนที่จะเขียนทับมัน ตัวอย่างกรณีการใช้งาน: ฉันต้องการนำตัวอย่างบางส่วนออกจากไฟล์บันทึกเป็นไฟล์อื่น เพื่อให้บรรลุในวันนี้ฉันสามารถทำ: เปิดไฟล์บันทึก เลือกบางบรรทัดด้วย Shift+v เขียนเป็นไฟล์: :w /tmp/samples เลือกบรรทัดเพิ่มเติมด้วย Shift+v ต่อท้าย/tmp/samplesด้วย:w !cat - >> /foo/samples แต่น่าเสียดายที่ขั้นตอนที่ 5 เป็นเวลานานน่าเกลียดและข้อผิดพลาดง่าย (หายไป>ทำให้คุณสูญเสียข้อมูล) ฉันหวังว่า Vim มีสิ่งที่ดีกว่าที่นี่


2
ใน VIM ให้แทนที่พา ธ ด้วยสแลชโดยไม่ใช้ Escape slashes
ในกลุ่มฉันต้องการแทนที่เส้นทางที่ยาว/a/b/f/g/d/gกับอีกอัน/s/g/w/d/g/rในไฟล์ข้อความ ปกติฉันจะใช้\/แต่มีเครื่องหมายทับมากเกินไปที่นี่ มีวิธีที่ง่ายกว่านี้ไหม?

6
backspace ในโหมดแทรกไม่ลบอักขระ
ฉันยังใหม่กับviจริง ๆ แล้วฉันได้เริ่มเรียนรู้ vi จากวันนี้และฉันติดอยู่กับพฤติกรรมของปุ่มBackspace ที่จริงแล้วเมื่อฉันติดเครื่อง vi บน Ubuntu 12.04 ของฉันเป็นครั้งแรกที่ปุ่ม backspace ของฉันทำงานได้ตามปกติ แต่หลังจากนั้นมันก็เริ่มทำงานผิดปกติ เมื่อใดก็ตามที่ฉันกด backspace ในโหมดแทรกมันก็แค่ย้ายที่เดียวไปทางซ้ายแทนที่จะลบตัวละคร ฉันจะรับฟังก์ชั่นแบ็คสเปซเริ่มต้นได้อย่างไร โปรดทราบว่าฉันไม่ต้องการติดตั้งเป็นกลุ่มหรือตั้งค่า nocompatibilty
10 vi 

3
เป็นกลุ่มที่กำหนดเองด้วยคำสั่ง emacs (โหมดแทรกเท่านั้น)
ฉันเป็นemacsผู้ใช้และฉันต้องเปลี่ยนไปvimใช้ แต่ฉันคิดถึงบางคำสั่ง emacs พื้นฐานในvimโหมดแทรก: C-A C-E C-K C-Y C-x C-s ... และอื่น ๆ ฉันรู้ว่าฉันสามารถกดEscapeแล้วกดปุ่มบางปุ่มต่อไปนี้และในที่สุดก็กดปุ่มi: ^ $ d$ p :w [Enter] ... แต่ฉันจะต้องการที่จะอยู่ในvimโหมดแทรกและหลีกเลี่ยงการกดEscape/ iปุ่ม บนเว็บที่ฉันได้พบการปรับแต่งสำหรับemacs( vi-mode, vip, viper, vimpulse, vim-mode, evil) แต่ยังไม่พบสิ่งที่ตรงกันข้าม: ปรับแต่งvimเพื่อใช้emacsคำสั่ง ... ฉันสนใจเกี่ยวกับemacsคำสั่งในvim โหมดแทรกเท่านั้น เพียงบางคำสั่งพื้นฐานเช่นbashคำสั่ง: C-A, C-E, C-K, C-Y, C-U... (ครับC-Uไม่ได้เป็นค่าเริ่มต้นemacsคำสั่ง แต่ผมชอบมันมากเกินไป)

2
ฉันจะสลับ 2 ตัวอักษรใน vi ได้อย่างไร
ฉันชอบความจริงที่ว่าฉันจำddpการสลับสองบรรทัดได้ (เช่นddลบบรรทัดแล้วpวางกลับเป็น '1 สูงกว่า') มีชุดของการกดแป้นที่คล้ายกันสำหรับการสลับ 2 ตัวอักษรเพื่อที่wsihจะกลายเป็นwish?

2
โหมด Vi ในโปรแกรมคอนโซลอื่น
ฉันค่อนข้างชอบโหมด Vi ของการทุบตี มีวิธีใดบ้างที่จะทำให้มันทำงานในโปรแกรมอื่น ๆ (เช่น gnuplot)? แก้ไข:ตามที่ Shawn แนะนำด้านล่างการกำหนดค่า.inputrcและการใช้งานrlwrap -a -c gnuplotจะให้โหมด Vi สำหรับ gnuplot
10 terminal  vi 

2
ฉันจะแก้ไขคำสั่ง ci ในกลุ่มได้อย่างไร
เช่นเดียวกับ "ci (" เปลี่ยนทุกอย่างระหว่างวงเล็บฉันต้องการ "ci $" เพื่อเปลี่ยนทุกอย่างระหว่างเครื่องหมายดอลลาร์ (สำหรับการแก้ไข LaTeX) เป็นไปได้ไหม
10 vim  vi 


5
วิธีการตั้งค่า bash readline เป็นโหมด vi โดยอัตโนมัติเมื่อเข้าสู่ระบบ?
ทีมของฉันรับผิดชอบเครื่อง Linux / Unix หลายพันเครื่องดังนั้นโดยปกติบัญชีรูทจะ "แชร์" ท่ามกลางผู้ดูแลระบบ ฉันชอบโหมด vi ส่วนคนอื่นชอบโหมด emacs ฉันจะตั้งค่า readline ของ bash เป็นโหมด vi บนการล็อกอิน SSH ไปยังเครื่องใด ๆ โดยไม่บังคับให้คนอื่นใช้โหมด vi ด้วยเช่นกัน? ในสาระสำคัญต้องการให้มีผลกระทบset -o viหลังจากเข้าสู่ระบบโดยไม่ต้องพิมพ์ทุกครั้งและไม่บังคับให้คนอื่น ๆ (เท่าที่ emacs โหมดเป็นที่น่ารำคาญสำหรับฉันโหมด vi เป็นที่น่ารำคาญสำหรับพวกเขา) ฉันรู้ว่าสิ่งนี้จะไม่เป็นปัญหาหากทุกคนใช้บัญชีของตัวเองกับ sudo เพื่อดำเนินการคำสั่งพิเศษ แต่เนื่องจากสถานการณ์ที่อยู่นอกเหนือการควบคุมของฉันสิ่งนี้น่าเศร้าไม่ใช่ตัวเลือก
9 bash  emacs  vi  readline 

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