Vi & Vim

คำถามและคำตอบสำหรับผู้ที่ใช้ตระกูล vi และ Vim ของเครื่องมือแก้ไขข้อความ

3
วิธีการปิดการใช้งานปุ่มลูกศรในกลุ่ม?
ฉันต้องการสอนตัวเองโดยใช้ hjkl มากกว่าใช้ปุ่มลูกศรเพื่ออยู่ในแถวบ้าน และใช่ฉันทราบดีว่าไม่ควรใช้ hjkl เป็นปุ่มนำทางหลัก ถึงกระนั้นนิสัยของฉันก็ค่อนข้างแรงและฉันก็ไม่รู้ด้วยซ้ำว่ามันทำให้มือนั้นขยับไปยังปุ่มลูกศรและฉันก็อยากจะแก้มัน หากต้องการทำลายนิสัยดังกล่าว: ฉันจะปิดใช้งานแป้นลูกศรเพื่อให้ฉันถูกบังคับให้ใช้ hjkl หรือวิธีการนำทางอื่น ๆ ได้อย่างไร ในฐานะโบนัสมันจะมีประโยชน์ถ้ามีข้อความที่แสดงDont't use this!ว่ายังไม่ได้รับคำสั่ง หากพวกเขาไม่ทำงานมันจะทำให้ฉันสับสนมากพอที่จะคิดใหม่นิสัยของฉัน


9
วิธีแทรกบรรทัดใหม่โดยไม่ออกจากโหมดปกติ
ฉันสงสัยว่าฉันสามารถแทรกบรรทัดใหม่ได้หรือไม่โดยไม่ออกจากโหมดปกติ ตัวอย่างเช่นฉันมีสองบรรทัด: this is line one this is line two และเคอร์เซอร์อยู่บนบรรทัดที่หนึ่ง ตอนนี้ฉันต้องการบรรทัดใหม่ระหว่างบรรทัดหนึ่งและสองบรรทัดดังนี้: this is line one this is line two ฉันรู้ว่าเมื่อฉันอยู่ในโหมดปกติฉันสามารถกดoได้ แต่นี่จะเข้าสู่โหมดแทรก ฉันจะแทรกบรรทัดใหม่เหมือนและอยู่ในโหมดปกติได้อย่างไร

5
โหมดไคลเอนต์ - เซิร์ฟเวอร์ใช้ประโยชน์อะไรได้บ้าง?
ฉันรู้ว่าเป็นกลุ่มช่วยให้โหมดเซิร์ฟเวอร์ไคลเอนต์ ( :h clientserver): มันเป็นไปได้ที่จะเปลี่ยนเป็นเซิร์ฟเวอร์ซึ่งจะได้รับคำสั่งบางอย่างและรันพวกเขาและในฐานะลูกค้าที่จะส่งคำสั่งไปยังเซิร์ฟเวอร์ ฉันทำงานได้ แต่ฉันไม่สามารถจินตนาการถึงการใช้คุณสมบัตินี้อย่างเป็นประโยชน์: ในกรณีใดบ้างที่มีประโยชน์และเวิร์กโฟลว์ใดที่สามารถสร้างได้โดยใช้คุณสมบัตินี้ ดังนั้นคำถามของฉันง่าย: การใช้โหมดไคลเอนต์เซิร์ฟเวอร์ของ Vim คืออะไร? (ฉันชี้ให้เห็นอีกครั้งว่าคำถามของฉันไม่ได้เกี่ยวกับวิธีการทำงานหรือวิธีการทำงาน แต่ทำไมต้องใช้)

1
คุณจะเปิดบัฟเฟอร์ใหม่ในหน้าต่างปัจจุบันได้อย่างไร
ฉันเปิดแท็บสองสามแท็บด้วยการตั้งค่าหน้าต่างที่แตกต่างกัน ฉันต้องการเปิดบัฟเฟอร์ว่างใหม่ในหน้าต่างปัจจุบันโดยไม่ต้องแยก / windows หรือแท็บเพิ่มเติมอีก มีวิธีการทำเช่นนี้? ฉันรู้ว่าฉันสามารถทำอะไรบางอย่างเช่น:nตอนC-w jนั้น:qแต่ดูเหมือนว่ายุ่งเล็กน้อย หรือคล้ายกับแท็บ: :tabe gT :q ฉันสับสนเล็กน้อยเกี่ยวกับความสัมพันธ์ระหว่างหน้าต่างและบัฟเฟอร์โดยทั่วไป - คุณสามารถเปิดบัฟเฟอร์ได้มากมายโดยไม่สามารถมองเห็นได้ซึ่งคุณสามารถทำความสะอาดได้โดยใช้bdแต่ถ้ามองไม่เห็นพวกเขาจะต้องบันทึกเพราะคุณไม่สามารถซ่อนได้ พวกเขา (โดยใช้: q) โดยไม่บันทึกหรือยกเลิกการเปลี่ยนแปลง ... ที่ดูแปลกไปหน่อย

7
รองรับ VIM 8.0 Python
ฉันกำลังพยายามอัพเกรดการติดตั้ง Vim เป็นเวอร์ชัน 8.0 แต่ไม่รองรับทั้ง Python และ Python 3 เป็นภาพด้านล่าง (PS: เนื่องจากปัญหานี้ฉันไม่สามารถใช้ปลั๊กอิน YCM (YouCompleteMe) ได้ในตอนนี้) ฉันติดตั้ง Vim 8.0 ตามคำสั่งต่อไปนี้ ฉันใช้ Ubuntu 16.04 (Xenial Xerus) ฉันจะจัดการปัญหานี้ได้อย่างไร sudo add-apt-repository ppa:jonathonf/vim sudo apt update sudo apt install vim

2
อะไรคือความแตกต่างระหว่าง "ออกจาก" และ "ยกเลิก"
เมื่อฉันพยายามเปิดไฟล์จากอินสแตนซ์ vim หลายตัวฉันพบข้อผิดพลาดหลายตัวเลือก: Swap file "~/.vim/tmp/file.swp" already exists! [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort: "Quit" และ "Abort" ต่างกันอย่างไร การเดาครั้งแรกของฉันคือเมื่อฉันพยายามเปิดไฟล์หลายไฟล์และมีเพียงไฟล์เดียวเท่านั้นที่ถูกแก้ไขที่อื่น "เลิก" อาจข้ามไปที่หนึ่งและ "ยกเลิก" ออกจากโปรแกรม แต่ที่ไม่ถูกต้องชัดเจน - ทั้งคู่ละทิ้งความพยายามทั้งหมด ที่แก้ไขและวางกลับไปที่เทอร์มินัล
23 swap-file  quit 

3
เลิกทำในโหมดแทรก
มีคำสั่งให้เลิกทำการดำเนินการครั้งล่าสุดเมื่ออยู่ในโหมดแทรกหรือไม่? ฉันเพิ่งวางข้อความจากการลงทะเบียนผิดโดยใช้<C-r>และฉันมีสองตัวเลือก: ลบด้วยมือสิ่งที่ฉันเพิ่งวางและเริ่มต้นใหม่ สลับไปที่โหมดปกติตีและสูญเสียข้อความที่ผมพิมพ์ก่อนกดปุ่มu<C-r> มีวิธีที่ดีกว่า?

4
ฉันจะปิด Vim ภายนอกได้อย่างไร
สมมติว่าฉันมีเซิร์ฟเวอร์ X11 ที่หยุดทำงานทำให้ฉันไม่สามารถบันทึกงานจากเซสชัน XTerm Vim ที่เซิร์ฟเวอร์ X11 ควบคุม (ไม่ใช่ GVim เพียงปกติ Vim-in-XTerm) มีวิธีที่ฉันสามารถ (จาก terminal ที่แตกต่างกัน) บอกกระบวนการเรียกใช้เป็นกลุ่มเพื่อ "บันทึกทั้งหมด & ออก" จากบรรทัดคำสั่งหรือไม่ โดยการส่งสัญญาณหรือผ่านวิธีอื่น? ฉันรู้เกี่ยวกับไฟล์ swap ของ Vim และฉันก็สามารถฆ่า Vim และกู้คืนจาก swap ได้ ฉันกำลังถามว่ามีวิธี "สะอาดกว่า" หรือไม่
23 quit 

1
หลังจากกด qq บรรทัดสถานะจะแจ้งว่า“ กำลังบันทึก” ฉันจะออกจากโหมดนี้ได้อย่างไร
ฉันตั้งใจกดและตอนนี้บรรทัดสถานะกล่าวว่าqq recordingนั่นหมายความว่าอย่างไร? ฉันจะออกจากโหมด "การบันทึก" นี้ได้อย่างไร การกดEscไม่ทำงาน
23 macro 

6
คุณลักษณะเพิ่มเติมใดที่ gVim และ / หรือ MacVim เสนอให้เปรียบเทียบกับ Vim ภายในเทอร์มินัลอีมูเลเตอร์?
ฉันกำลังเรียนรู้กลุ่มโดยดู screencasts และฉันสงสัยว่าทำไมผู้คนจำนวนมากจึงใช้ gVim หรือ MacVim จากสิ่งที่ฉันเห็น, GUI Vim เวอร์ชันมีคุณสมบัติเพิ่มเติมที่เกี่ยวข้องกับการใช้เมาส์เท่านั้น แต่นี่ไม่ได้ขัดกับ "ปรัชญาของกลุ่ม" ใช่ไหม ทุกคนสามารถอธิบายว่ามีฟีเจอร์เพิ่มเติมใดบ้างสำหรับเวอร์ชัน GUI Vim ที่นำเสนอเทียบกับ Vim แบบเทอร์มินัล
23 gvim  macvim 

4
ฉันจะฟอร์แมตสตริงแบบหลายบรรทัดเป็นกลุ่มเมื่อใช้ไฟล์ Python ได้อย่างไร
สมมติว่าฉันกำลังแก้ไขโค้ด Python ในกลุ่มที่มีลักษณะดังนี้: myobj.myfunc("Some string parameter that goes on and on and on and on and sometimes doesn't" "split very" "neatly over different lines so that" "it is formatted attractively") ฉันต้องการฟอร์แมตใหม่เพื่อให้รีโฟลว์สูงถึงระดับที่textwidthฉันตั้งไว้: myobj.myfunc("Some string parameter that goes on and on and " "on and on and sometimes doesn't split very " …

4
ฉันจะจัดบรรทัดปัจจุบันให้อยู่กึ่งกลางหน้าจอได้อย่างไร
มีวิธีการจัดกึ่งกลางบรรทัดที่ฉันแก้ไขในหน้าจอหรือไม่? บางครั้งจำเป็นต้องมีเพื่อดูบริบทอีกเล็กน้อยด้านบนและด้านล่างบรรทัดปัจจุบัน
23 scrolling 


1
ฉันจะกำหนดค่าปลั๊กอินสายการบิน Vim ให้ดูเหมือนภาพหน้าจอโครงการของตัวเองได้อย่างไร
ฉันพยายามทำให้สายการบินเป็นสายและทำงาน ฉันต้องการมันผ่าน vundle ใน~./vimrc: Plugin 'bling/vim-airline' ฉันได้ติดตั้งแล้วและคาดว่า Vim ของฉันจะดูเหมือนภาพหน้าจอในหน้าโครงการ: แต่ดูเหมือนว่านี้: เกี่ยวกับแบบอักษรฉันพยายามเพิ่ม: let g:airline_powerline_fonts = 1 แต่ไอคอนนั้นเป็นเพียงความหมายซึ่งไร้สาระ ฉันพลาดอะไรไป ฉันเพิ่งพบว่าสำหรับสีตามที่อธิบายไว้ในคำถามที่พบบ่อยฉันสามารถเพิ่มในของฉัน.vimrc: set t_Co=256 แต่สิ่งนี้ยังคงนำไปสู่ลักษณะเส้นที่บิดเบี้ยว: โดยเฉพาะอย่างยิ่งการรวม Git เกี่ยวกับ (ชื่อสาขาที่มีไอคอน) หรือวิธีแสดง> - "ลูกศร" ฉันต้องการขนมตานั้นด้วย ฉันสามารถบรรลุผลสำเร็จใน Bash ได้หรือไม่? หรือฉันต้องการเปลือกที่แตกต่างกัน? โดยพื้นฐานแล้วฉันต้องการให้ Vim ดูเหมือนภาพตัวอย่างบนหน้าปลั๊กอินตามที่ฉันคาดไว้ว่าจะเป็นค่าเริ่มต้นของปลั๊กอิน ฉันจะบรรลุสิ่งนั้นได้อย่างไร

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