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

Vim เป็นโปรแกรมแก้ไขข้อความฟรีและโอเพ่นซอร์สสำหรับแพลตฟอร์มที่สำคัญ ๆ ช่วยให้มีประสิทธิภาพสูงในงานการแก้ไขข้อความจำนวนมาก แต่มีช่วงการเรียนรู้ที่สูงชัน หากต้องการเรียนรู้พื้นฐานให้เรียกใช้ ": help vimtutor" สำหรับคำถามที่ไม่ใช่การเขียนโปรแกรมโปรดใช้ https://vi.stackexchange.com/ แทน

1
ใส่อักขระส่งคืนแคร่ในกลุ่ม
ฉันกำลังแก้ไขกรอบโปรโตคอลเครือข่ายที่จัดเก็บไฟล์ใน Unix (ขึ้น\nบรรทัดใหม่) ฉันต้องใส่อักขระส่งคืนแคร่ ( U+000Daka \r) เมื่อฉันพยายามวางจากคลิปบอร์ด ( "+p) หรือพิมพ์โดยใช้Ctrl+ Shift+ u- 000dตัวป้อนบรรทัดจะถูกแทรก ( U+000A) วิธีที่ถูกต้องทำอย่างไร?


20
Vim / Emacs ให้ผลผลิตเฉพาะอะไรบ้างจากโปรแกรมแก้ไขข้อความ GUI
นี่ไม่ได้หมายถึง troll หรือ flamebait หรืออะไรแบบนั้น ฉันใช้Vimเป็นตัวแก้ไขคอนโซลที่ฉันเลือกมาสองสามเดือนแล้ว (สำหรับการแก้ไขไฟล์คอนฟิกูเรชันขณะอยู่ในเทอร์มินัลของฉัน) แต่ฉันไม่คิดว่าฉันจะทนได้สำหรับงานเขียนเว็บแอปพลิเคชั่นปกติทุกวัน ซึ่งฉันทำกับโปรแกรมแก้ไขข้อความ GUI (อันไหนไม่สำคัญ) ฉันรู้สึกว่าโปรแกรมแก้ไขข้อความ GUI ของฉันสามารถทำทุกอย่างที่ฉันต้องการสำหรับงานของฉันได้ มีการค้นหา / แทนที่ที่เหมาะสมด้วยประวัติที่สมบูรณ์อัตโนมัติสำหรับทั้งสองอย่าง มีการเน้นไวยากรณ์การกำหนดหมายเลขบรรทัดอินเทอร์เฟซแบบแท็บการคัดลอกและวางที่ง่ายดาย ฯลฯ สิ่งเดียวที่ตัวแก้ไขปัจจุบันของฉันขาดหายไปคือการจับคู่นิพจน์ทั่วไป แต่มีตัวแก้ไขข้อความ GUI มากมายที่จะค้นหา / แทนที่ regex จากสิ่งที่ฉันเพิ่งพูดไป Vim (หรือแม้แต่ Emacs) มีข้อดีด้านการผลิตอะไรบ้างที่มีเหนือโปรแกรมแก้ไขข้อความ GUI นอกเหนือจากข้อเท็จจริงที่ว่ามีการติดตั้งบนคอมพิวเตอร์ทุกเครื่อง ฉันต้องการงานเฉพาะที่ดีกว่า / เร็วกว่าบน Vim / Emacs หรือไม่สามารถทำได้ด้วยโปรแกรมแก้ไขข้อความ GUI ที่มีอยู่
100 vim  emacs  text-editor 

5
Vim Insert Mode บน Mac OS X
เห็นได้ชัดว่าแป้นพิมพ์ Mac ไม่มีInsertคีย์ (หรืออาจจะมี แต่ฉันหาไม่เจอ) ฉันจะเข้าสู่โหมดแทรกเป็นกลุ่มบน Mac ได้อย่างไร
100 macos  vim 

12
จะลบบรรทัดอื่น ๆ ใน Vim ได้อย่างไร?
ฉันต้องการลบบรรทัดอื่น ๆ ทั้งหมดออกจาก Vim buffer โดยเริ่มจากบรรทัดที่สองเช่นบรรทัดที่ 2, 4, 6 เป็นต้นตัวอย่างเช่นหากเนื้อหาของบัฟเฟอร์คือ: aaa bbb ccc ddd eee fff จากนั้นหลังจากลบบรรทัดที่ต้องการแล้วควรกลายเป็น: aaa ccc eee
100 vim 

14
Refactoring ใน Vim
แน่นอนความจริงที่ว่าคุณสามารถ refactor บน IDE ได้นั้นไม่มีค่าสำหรับหลาย ๆ คนฉันแทบจะไม่เคยทำเลยเมื่อฉันเขียนโค้ด แต่ฉันอาจลองทำเมื่อแก้ไขแหล่งที่มาของคนอื่น คุณจะทำงานที่ไม่สำคัญเช่นนี้ในหลายไฟล์ใน Vim ได้อย่างไร? ฉันพบปลั๊กอินนี้สำหรับการปรับโครงสร้าง Ruby แต่ภาษา "ใดก็ได้" ล่ะ
100 vim  refactoring 

4
ฉันจะ "จัดหา" บางสิ่งในไฟล์. vimrc ของฉันได้อย่างไร
ฉันได้ทำการขยาย vim-foo ของฉันเมื่อเร็ว ๆ นี้และฉันได้พบกับปลั๊กอินสองสามตัว ( เช่นautotag.vim ) ที่ต้องการให้พวกมันเป็น "แหล่งที่มา" ในไฟล์. vimrc ของฉัน นี่หมายความว่าอย่างไรและฉันจะทำอย่างไร?
99 plugins  vi  vim 

5
วิธีสร้างนามแฝง. bashrc พร้อมใช้งานภายในคำสั่ง vim shell (:! …)
ฉันใช้ bash บน mac และหนึ่งในนามแฝงเป็นแบบนี้ alias gitlog='git --no-pager log -n 20 --pretty=format:%h%x09%an%x09%ad%x09%s --date=short --no-merges' อย่างไรก็ตามเมื่อฉันทำ :! gitlog ฉันเข้าใจ /bin/bash: gitlog: command not found ฉันรู้ว่าฉันสามารถเพิ่มนามแฝงแบบนี้ใน. gitconfig ของฉันได้ [alias] co = checkout st = status ci = commit br = branch df = diff อย่างไรก็ตามฉันไม่ต้องการเพิ่มนามแฝง bash ทั้งหมดของฉันใน. gitconfig นั่นคือไม่แห้ง มีทางออกที่ดีกว่านี้หรือไม่?
99 bash  vim  alias 

5
จะลบคำและเข้าสู่โหมดแทรกใน Vim ได้อย่างไร?
ในโหมดปกติฉันสามารถกดCtrl+ Eซึ่งจะลบส่วนที่เหลือของคำปัจจุบันและไปที่โหมดแทรก ฉันต้องการลบทั้งคำโดยไม่คำนึงถึงตำแหน่งเคอร์เซอร์ (ภายในคำนั้นแน่นอน)
99 vim 

6
หนึ่งจะหลีกเลี่ยงแบ็กสแลชและสแลชไปข้างหน้าใน VIM ค้นหา / ค้นหาได้อย่างไร
ตัวอย่างเช่นหากฉันต้องการค้นหาและแทนที่ด้วยสตริงที่มีเครื่องหมายทับย้อนกลับหรือไปข้างหน้าสิ่งนี้จะสำเร็จเป็นกลุ่มได้อย่างไร ขอขอบคุณ! ตัวอย่างค้นหาและแทนที่คือ: :%s/foo/bar/g จะเป็นอย่างไรถ้าฉันต้องการค้นหาเหตุการณ์ทั้งหมด<dog/>และแทนที่ด้วย<cat\>
99 regex  vim 

9
การสลับระหว่างแท็บใน NERDTree
ฉันเพิ่งเริ่มใช้ปลั๊กอิน NERDTree vim สำหรับโครงการของฉัน ฉันไม่พบเอกสารสำหรับการสลับระหว่างแท็บที่เปิดอยู่ ใครช่วยบอกฉันว่าคีย์ลัด [s] ขอบคุณ ...
99 vim  nerdtree 

6
วางหลาย ๆ ครั้ง
วิธีใดที่ดีที่สุดแทนที่หลายบรรทัดด้วยเนื้อหาของคลิปบอร์ด ปัญหาที่ฉันพบคือเมื่อฉันดึงเส้นแล้ววางทับอีกบรรทัด "ดึง" จะถูกแทนที่ด้วยเส้นที่ฉันเพิ่งแทนที่ ตอนนี้ถ้าฉันต้องการแทนที่บรรทัดอื่นด้วยบรรทัดเดียวกันฉันต้องกลับขึ้นไปและดึงอีก ต้องมีวิธีที่ดีกว่านี้
98 vim  copy  paste 


7
วิธีเปลี่ยนชื่อตัวแปรใน Vim อย่างรวดเร็ว?
ฉันใช้ Vim เพื่ออ่านรหัส C และ Perl จำนวนมากที่มีชื่อตัวแปรอักษรตัวเดียวจำนวนมาก คงจะดีไม่น้อยหากมีคำสั่งในการเปลี่ยนชื่อตัวแปรให้มีความหมายมากขึ้นในขณะที่ฉันกำลังอ่านโค้ดเพื่อที่ฉันจะได้อ่านส่วนที่เหลือได้เร็วขึ้น มีคำสั่งบางอย่างใน Vim ที่ช่วยให้ฉันทำสิ่งนี้ได้อย่างรวดเร็วหรือไม่? ฉันไม่คิดว่า regexes จะใช้ได้ผลเพราะ: ชื่อตัวอักษรเดี่ยวเดียวกันอาจมีจุดประสงค์ที่แตกต่างกันในบล็อกขอบเขตที่แตกต่างกัน และ การรวมกันของตัวอักษรอาจเป็นส่วนหนึ่งของชื่อตัวแปรที่ยาวกว่าอื่นสตริงลิเทอรัลหรือข้อคิดเห็น มีวิธีแก้ไขที่เป็นที่รู้จักหรือไม่?

2
ท่อบัฟเฟอร์ไปยังคำสั่งภายนอกใน Vim
ฉันเป็นมือใหม่แบบ Vim ฉันต้องการส่งเนื้อหาของบัฟเฟอร์ปัจจุบันไปยัง stdin ของคำสั่งภายนอก (สมมติว่าเมล) จุดประสงค์สุดท้ายของฉันคือการตั้งค่าทางลัดเพื่อส่งอีเมลจากบัฟเฟอร์ Vim ปัจจุบันอย่างรวดเร็ว ฉันเดาว่านี่น่าจะเป็นเรื่องเล็กน้อย แต่ฉันไม่สามารถหาวิธีส่ง Vim buffer ไปยังคำสั่งภายนอกได้ ขอบคุณล่วงหน้า.
97 vim  pipe  external 

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