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

Vim เป็นตัวแก้ไขข้อความที่สามารถกำหนดค่าได้อย่างสูงซึ่งสร้างขึ้นเพื่อให้สามารถแก้ไขข้อความได้อย่างมีประสิทธิภาพ มันเป็นเวอร์ชันปรับปรุงของตัวแก้ไข vi

6
ฉันจะยกเลิกประวัติเลิกทำของฉันเป็นกลุ่มได้อย่างไร
การเลิกทำดีในกลุ่ม แต่บางครั้งเมื่อถึงจุดหนึ่งที่รู้จักกันดีฉันต้องการลบประวัติเลิกทำของฉัน - เพื่อให้สามารถใช้uเพื่อเลิกทำการเปลี่ยนแปลงแต่ละรายการได้ แต่กลับไปยังจุดที่แน่นอน (เช่นนี้อาจเป็นเมื่อฉันมุ่งมั่นล่าสุด) วิธีหนึ่งในการทำสิ่งนี้ให้สำเร็จคือการปิดและเปิดไฟล์อีกครั้ง - ประวัติการเลิกทำจะเริ่มต้นใหม่ที่จุดนั้น แต่นั่นเป็นเรื่องยุ่งยาก :edit!ในอดีตที่ผ่านมาผมประสบความสำเร็จนี้ด้วย แต่ใน Vim 7.3 นั้นไม่ได้ละทิ้งประวัติศาสตร์การเลิกทำ มีวิธีการอื่นนอกเหนือจากการปิดไฟล์หรือไม่
23 vim  gvim  history  macvim  undo 

3
Vim เลื่อนช้ามากเมื่อบรรทัดยาวเกินไป
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Super User อพยพ 8 ปีที่ผ่านมา ฉันไม่เคยคิดเลยว่า Vim จะช้ามาก สิ่งที่ฉันมีคือเส้นยาวต่อไปนี้: (คลิกที่ภาพเพื่อขยาย) ฉันเรียกใช้ Vim (MacVim) ภายใต้ Mac OS X ด้วยแอปเทอร์มินัล นี่คือฉันvimrc ฉันหวังว่ามันจะไม่เกี่ยวข้องกับปลั๊กอินของฉัน ถ้าฉันสลายภาพใหญ่ในภาพทุกอย่างก็ทำงานได้อย่างรวดเร็วอีกครั้ง
23 vim  macvim 

8
คัดลอก Vimperator / การวาง
ฉันพยายามออกVimperator ฉันต้องการเป็นส่วนใหญ่สำหรับการเลื่อน hjkl และฉันชอบระบบ "คำแนะนำ" สำหรับการติดตามลิงก์ คุณสมบัติทั้งสองนี้เป็นสิ่งที่ฉันต้องการจริงๆ ฉันคิด. ฉันไม่สนใจคุณสมบัติอื่น ๆ บางครั้งมันก็เข้ามาหาฉัน สิ่งที่ทำให้ฉันรำคาญที่สุดก็คือการคัดลอก / การวาง ฉันคุ้นเคยกับCtrl+ c/ Ctrl+ vฉันไม่รังเกียจที่จะใช้ทางลัดอื่น แต่ .. :help yank ระบุว่าการคัดลอกข้อความที่เลือกเสร็จสิ้นด้วย Y แต่วิธีเดียวที่กล่าวถึงสำหรับการวางคือปุ่มกลางของเมาส์! นี่มันช่างเย้ยหยันต่อวิญญาณของ Vim! ฉันจะวาง Vimperator โดยไม่ใช้เมาส์ได้อย่างไร


3
วิธีการแบ่งบัฟเฟอร์ที่มีอยู่ในแนวตั้งเป็นกลุ่ม?
ฉันมีรายการบัฟเฟอร์ในกลุ่ม ฉันสามารถแบ่งบัฟเฟอร์ในแนวนอนโดยใช้: sb [N] โดยที่ N คือหมายเลขบัฟเฟอร์ ฉันจะแบ่งบัฟเฟอร์ในแนวตั้งได้อย่างไร
23 vim  vimrc 

7
วิธีการปิดบัฟเฟอร์โดยไม่ต้องปิดหน้าต่าง?
ฉันมักจะเปิดหน้าต่างไม่กี่และให้เปิดบัฟเฟอร์บางส่วน เนื่องจาก MO ของฉันในการสำรวจบัฟเฟอร์คือการใช้ทางลัดอย่างรวดเร็วไปยัง:bnและ:bpฉันต้องการปิดบัฟเฟอร์ที่ไม่จำเป็นจากการรบกวนการท่องบัฟเฟอร์ของฉัน แต่ความเจ็บปวดคือการออก:bdและ:bwส่งผลให้ปิดหน้าต่างเช่นกันในกรณีที่ฉันมีหลายคนเปิด ฉันจะปิด (ลบ) บัฟเฟอร์และปล่อยให้หน้าต่างยังคงอยู่ได้อย่างไร? โซลูชันได้แรงบันดาลใจจากคำตอบของ @ peth :command! BW :bn|:bd# มันง่าย ใช้งานไม่ได้กับบัฟเฟอร์เปิดเดียว (ฉันได้รับพฤติกรรมที่แตกต่างกันขึ้นอยู่กับวิธีที่ฉันเปิดไฟล์) แต่มันไม่ใช่ปัญหาใหญ่ :)
23 vim 

2
เปิดเอาต์พุตของคำสั่งเชลล์ในบานหน้าต่างแยก
พิจารณาภาษาการเขียนโปรแกรมตีความใด ๆ ฉันสามารถเรียกใช้สคริปต์ที่เปิดอยู่ในปัจจุบันโดยใช้! interpreter %และใช้คีย์ส่งคืนเพื่อกลับไปเป็นกลุ่มหลังจากการดำเนินการเสร็จสิ้น เป็นไปได้ไหมที่จะไม่แทนที่หน้าต่างปัจจุบันด้วยเอาต์พุตของคำสั่งเชลล์ที่ดำเนินการ แต่เปิดเอาต์พุตในบานหน้าต่างแยกใหม่แทน ฉันยังต้องการเห็นซอร์สโค้ดของฉันในระหว่างการประมวลผลสคริปต์ของฉัน ฉันพยายาม:split ! interpreter %แต่มันใช้งานไม่ได้ มีวิธีหรือไม่? ฉันใช้กลุ่ม 7.3
23 vim 

2
เปลี่ยนไดเรกทอรีปัจจุบันโดยใช้ NERDTree
ฉันจะนำทางไปยังไฟล์หรือโฟลเดอร์ใน NERDTree และเปลี่ยนไดเรกทอรีทำงานเป็นโฟลเดอร์นั้นได้อย่างไร (หรือโฟลเดอร์ที่บรรจุไฟล์ที่ฉันเปิดอยู่) ฉันรู้ว่าเป็นไปได้ที่จะทำให้ NERDTree ซิงค์กับ NERDTree root ( ไดเรกทอรี nerdtree และปัจจุบัน ) แต่ฉันกำลังมองหาแมโครหรือสิ่งที่จะเปลี่ยนโฟลเดอร์โดยไม่มีผลกระทบต่อ NERDTree เอง
23 vim  nerdtree 

3
วิธีแทรกวันที่เป็นกลุ่ม
ในกลุ่มคุณสามารถรันคำสั่งด้วย "!" คุณสามารถรวมกับ "r" เพื่อแทรกผลลัพธ์ลงในบัฟเฟอร์ปัจจุบันของคุณ : r! date Fri 20 ก.ค. 09:39:26 SAST 2012 จะแทรกวันที่ลงในไฟล์ ตอนนี้เมื่อฉันพยายามทำสิ่งที่น่าสนใจเช่นวันที่ด้วยรูปแบบที่แตกต่างกัน +% F บนบรรทัดคำสั่ง $ date +% F 2012-07-20 ในกลุ่ม : r! date "+% F" message.to.followup.lstF สิ่งใดที่ทำให้ชื่อของไฟล์และทำให้ F หลังจากนั้น วิธีที่ r! date "+% F" ถูกขยายเป็นกลุ่มและไม่ทำงานบนบรรทัดคำสั่ง ฉันต้องทำอะไรเพื่อเรียกใช้เพื่อที่จะทำให้เนื้อหาเป็นกลุ่ม บางทีเสียงเรียกเข้ามีวิธีที่ดีกว่าในการแทรกวันที่ลงในไฟล์
23 linux  command-line  bash  vim  date 

3
ฉันจะใช้ Vim ที่ติดตั้งไว้ใน Git Bash แทนที่จะเป็น Git Bash ได้อย่างไร
ฉันได้ติดตั้ง Vim และ Git C:\Program Files (x86)\(vim|git)ตามลำดับ เมื่อฉันเรียกใช้ Vim จาก Git Bash จะเรียกใช้ Vim เวอร์ชันภายในที่มาพร้อมกับตัวติดตั้ง Git มีวิธีการแทนที่ลักษณะการทำงานนี้ไม่ได้เกี่ยวข้องกับการเปลี่ยนแปลงของฉัน.profileหรือ.bashrcหรือชอบเพื่อที่ฉันสามารถเรียกใช้รุ่นที่เป็นกลุ่มที่ผมติดตั้งในโปรแกรมไฟล์หรือไม่? ขอบคุณ
22 windows-7  vim  git 

3
Vim - รายการไดนามิกของบัฟเฟอร์เปิดในหน้าต่าง
ฉันได้ตรวจสอบสองสามวิธีเพื่อรักษารายการบัฟเฟอร์แบบเปิดใน Vim และบางรายการก็ดีมาก แต่ดูเหมือนว่าไม่มีวิธีใดที่จะทำงานตามที่ฉันต้องการ เป็นไปได้อย่างมากที่ไม่มีสิ่งที่ฉันต้องการมีอยู่และไม่เจ็บปวดที่จะถาม ฉันใช้ NERDTree ใน GVim และฉันชอบความคิดในการใส่ข้อมูลลงในหน้าต่างด้านซ้ายเรียว ฉันได้รวบรวมไดอะแกรมที่มีประโยชน์สำหรับวิธีที่ฉันต้องการให้สภาพแวดล้อมของฉันดู: |--------|---------------------------------------| | | | | | | |NERDTree| Windows | | | | | | | | | | |--------| | | | | | | | | List | | | of | | | Open | | …
22 vim  gvim  vim-plugins 

4
สีที่เป็นกลุ่มไม่ทำงานอย่างถูกต้องในเทอร์มินัล
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Super User อพยพ 7 ปีที่ผ่านมา ฉันใช้เทอร์มินอล Gnome และเป็นกลุ่มด้วยชุดรูปแบบสีแสงอาทิตย์ เมื่อฉันเปิดเสียงเรียกเข้าในเทอร์มินัลมันอ่านไม่ออก แต่เมื่อฉันเปิดไฟล์ใน gvim ชุดสีจะทำงานได้อย่างสมบูรณ์ โครงร่างสีของเทอร์มินัลของ Gnome นั้นถูกทำให้เป็นแสงอาทิตย์ สิ่งหนึ่งที่ควรทราบคือถ้าฉันตั้งค่าที่ผิดกฎหมายสำหรับพื้นหลังฉันจะได้รับสีพื้นหลังที่คาดไว้ (แต่ยังมีข้อผิดพลาด)

6
ทำให้หน้าต่างที่ใช้งานเป็นกลุ่มชัดเจนขึ้น
พื้นที่ทำงานของฉันเป็นปกติหนึ่ง xterm ที่ใหญ่มากพร้อมเสียงเรียกเข้าแบ่งออกเป็นหกหรือมากกว่าบัฟเฟอร์ มันจะมีประโยชน์จริง ๆ ถ้ามันชัดเจนว่าอันไหนคือบัฟเฟอร์ที่ใช้งานอยู่ ตอนนี้ฉันกำลังใช้การปรากฏตัวของหมายเลขบรรทัดสำหรับสิ่งนี้: augroup BgHighlight autocmd! autocmd WinEnter * set number autocmd WinLeave * set nonumber augroup END แต่นี่หมายความว่าเมื่อฉันเปลี่ยนบัฟเฟอร์รหัสของฉันกระโดดไปทางซ้ายหรือขวาซึ่งน่ารำคาญ ยิ่งไปกว่านั้นฉันต้องการที่จะเห็นว่าอะไรคือบรรทัด 94 แม้จะอยู่ในบัฟเฟอร์ที่ไม่ได้ใช้งาน ดังนั้นจะมีวิธีใดในการเปลี่ยนสีของหมายเลขบรรทัดในบัฟเฟอร์ที่ใช้งานอยู่?
22 vim  colors 

4
ฉันสามารถใช้ปุ่ม "<cmd>" ใน terminal Vim ได้หรือไม่?
ต่อจากคำถามอื่น ๆ เมื่อไม่นานมานี้: ฉันจะแมป &lt;cmd&gt; - &lt;shift&gt; -f เพื่อเรียกใช้งานปลั๊กอิน Ack ในกลุ่มได้อย่างไร เป็นไปได้หรือไม่ที่จะใช้&lt;cmd&gt;กุญแจในเสียงเรียกเข้าเลย? หาก Vim ไม่รู้จักรหัสเป็นไปได้ไหมที่จะทำการแมปคีย์ภายนอก Vim (อย่างใด?) ไปยังสิ่งอื่นและแมปรหัสนั้นภายใน Vim? ฉันใช้ iTerm 2 กับ Lion กับ Vim 7.3 ขอบคุณ!

5
ทำไมกลุ่มถึงเพิ่มขึ้นบรรทัดใหม่? นี่คือการประชุมหรือไม่?
หากฉันเปิดเป็นกลุ่มและพิมพ์itest&lt;Esc&gt;:wqฉันจะได้รับไฟล์ที่ไม่มีบรรทัดใหม่ใน Vimแต่ดูเหมือนจะมีบรรทัดใหม่ในรหัส: $ vim -u NONE test.txt $ cat test.txt | hd 00000000 74 65 73 74 0a |test.| 00000005 หากฉันเปิดเป็นกลุ่มและพิมพ์itest&lt;Return&gt;&lt;Esc&gt;:wqฉันจะได้รับไฟล์ที่มีหนึ่งบรรทัดใน Vimแต่ขึ้นบรรทัดใหม่สองบรรทัดในรหัส: $ rm test.txt $ vim -u NONE test.txt $ cat test.txt | hd 00000000 74 65 73 74 0a 0a |test..| 00000006 โปรดทราบว่าฉันกำลังเปิด Vim ด้วย-u NONEดังนั้นจึงไม่มีการกำหนดค่าในเครื่อง ยังทราบว่าเรื่องนี้อาจจะเกี่ยวข้องกับคำถามก่อนหน้านี้ของฉัน นี่คือข้อมูลระบบของฉัน: …
22 linux  vim  newlines 

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