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

vim (Vi IMproved) เป็นโปรแกรมแก้ไขข้อความที่รองรับโหมดการแก้ไขที่แตกต่างกัน

2
เป็นไปได้หรือไม่ที่จะสร้างและใช้เมนูใน (ตามเทอร์มินัล)
ฉันกำลังตั้งค่ากล่อง Linux แบบเสมือน (เป็นเซิร์ฟเวอร์การพัฒนาในท้องถิ่น) สำหรับนักพัฒนาใน บริษัท ที่ใช้ Windows เป็นหลักและนักพัฒนาบางคนสร้างรอยร้าวเชิงลบเกี่ยวกับ vim (เหนือสิ่งอื่นใด) (ดูเหมือนว่าพวกเขาจะเป็นตัวแทนของ Linux / Unix ในทางใดทางหนึ่งและพิสูจน์ว่าสภาพแวดล้อมนั้นยากต่อการใช้) ฉันจำได้ว่าเมื่อฉันถูกบังคับให้ใช้ vim เป็นครั้งแรก (sysadmins ปฏิเสธที่จะติดตั้ง emacs!) โค้งการเรียนรู้ดังนั้นฉันค่อนข้างเห็นอกเห็นใจ มันเกิดขึ้นกับฉันมากกว่าที่จะแนะนำให้รู้จักกับnano(ซึ่งพวกเขาอาจจะไม่เคยผ่านมาแล้ว) มันอาจเป็นไปได้ที่จะตั้งค่าเมนูที่คล้ายกับนาโนในกลุ่มเพื่อให้การเปลี่ยนแปลงง่ายขึ้น (ฉันได้พบไฟล์. vimrc ที่เป็นมิตรสำหรับผู้เริ่มต้นแล้ว แต่มันไม่มีอะไรเหมือนเมนูสไตล์นาโน) ปัญหาเดียวคือสิ่งเดียวที่ฉันสามารถค้นหาได้ว่าการอ้างว่าเป็นไปได้ที่จะตั้งค่าเมนูใน vim (ไม่ใช่ gvim) ไม่ทำงานและความพยายามของฉันในการแก้ไขปัญหาเพิ่งทำให้ฉันเหลืออีกปัญหาที่ต้องแก้ไข ก่อนที่ฉันจะเสียเวลามากฉันอยากรู้ว่ามันเป็นไปได้จริงหรือเปล่าเพราะดูเหมือนว่ามีข้อมูลน้อยมากเกี่ยวกับวิธีการทำ
18 vim  vimrc 

4
เปลี่ยนโปรแกรมแก้ไขเริ่มต้นเป็นกลุ่มสำหรับ _ sudo systemctl edit [unit-file] _
[4.13.12-1-ARCH กับ gnome3 และ gdm บน Xorg] ฉันได้ตั้งค่าภาพและตัวแก้ไข env-vars ไว้vimแล้ว ในทำนองเดียวกันฉันลองSYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR ใน ~ / .bashrc ของฉันเพื่อประโยชน์ เมื่อทำการแก้ไขไฟล์ยูนิตใน Arch (systemd) ผ่านทาง $ sudo systemctl edit _unit_ nanoฉันพบตัวเองจ้องมองที่ ชีวิตนั้นสั้นเกินไปและฉันต้องการvimโดยทั้งหมด ฉันจะทำสิ่งนี้ได้อย่างไร
18 systemd  vim  editors 

2
การแก้ไขไฟล์ข้อความด้วย Vim ไม่ได้อัพเดต tail -f
ฉันใช้ในการชมการปรับปรุงเกี่ยวกับไฟล์ที่เรียกว่าtail -f a.txta.txt หากฉันอัปเดตไฟล์โดยใช้บางอย่างเช่นls -a >> a.txtในคอนโซลเสมือนที่สองการเปลี่ยนแปลงจะแสดงตามเวลาจริงในไฟล์แรก หากฉันอัพเดตไฟล์โดยใช้ Vim ในคอนโซลเสมือนที่สองการเปลี่ยนแปลงจะไม่แสดงในอันแรก ฉันไม่ได้คาดหวังว่ามันจะกระตุ้นให้มีการอัพเดทในหน้าต่างนั้น - แต่ทำไมการอัพเดทนี้ถึงไม่ได้ว่าเทอร์มินัลกำลังเรียกใช้tail -fคำสั่ง?
17 files  vim  tail 

3
vim: บังคับใช้ไวยากรณ์เฉพาะผ่านอาร์กิวเมนต์บรรทัดคำสั่ง
เมื่อฉันต้องการอ่านสกีมา PostgreSQL ของฉันง่าย ๆ ฉันจะดัมพ์stderrและเปลี่ยนเส้นทางไปที่vim: pg_dump -h localhost -U postgres dog_food --schema-only | vim - สิ่งนี้ให้: vim ไม่มีสคีมาที่เน้นไวยากรณ์เนื่องจากไม่มีส่วนขยายชื่อไฟล์เมื่ออ่านจาก stdin ดังนั้นฉันจึงใช้สิ่งต่อไปนี้: :set syntax=sql ซึ่งจะช่วยให้: ในฐานะนักพัฒนาที่ขี้เกียจฉันอยากจะบังคับvimใช้ไวยากรณ์ SQL โดยผ่านอาร์กิวเมนต์บรรทัดคำสั่งช่วยให้ฉันเป็นนักร้องประสานเสียงของการพิมพ์ซ้ำset syntax=<whatever>ทุกครั้งที่ฉันเปิดมันด้วยstdinข้อมูล .. มีวิธีการตั้งค่าvimไวยากรณ์โดยผ่านอาร์กิวเมนต์บรรทัดคำสั่งหรือไม่

6
vi commandline, goto line และคอลัมน์
ฉันได้ผสมการใช้emacsและvi( vim) มาเป็นเวลานาน แต่ละคนมีข้อได้เปรียบ ฉันแยกวิเคราะห์ข้อผิดพลาดจากการคอมไพล์เช่นกระบวนการและรับหมายเลขบรรทัดและคอลัมน์ แต่ฉันสามารถใช้emacsเพื่อไปที่บรรทัดและคอลัมน์โดยตรงเท่านั้น: emacs +15:25 myfile.xml กับviฉันมีเพียงหมายเลขบรรทัด (ตามหน้าคน) vi +15 myfile.xml มีตัวเลือกในการเลื่อนตำแหน่งเคอร์เซอร์บนรูปแบบ ( vi +/pattern myfile.xml) ซึ่งฉันไม่เคยทำงาน แต่นั่นจะไม่ช่วยฉันเพราะรูปแบบอาจไม่เกิดขึ้นครั้งแรกในไฟล์เสมอ ฉันจะเริ่มต้นviเพื่อไปที่คอลัมน์ 25 ที่บรรทัด 15 ของไฟล์ของฉันได้อย่างไร ฉันสามารถทำบางอย่างด้วย-cตัวเลือกได้ไหม
17 vim  cursor 

2
เสียงเรียกเข้า: ค้นหาขึ้น / ลงในไฟล์จากตำแหน่ง / จุดที่ระบุ
ฉันต้องการค้นหาคำจากตำแหน่งเคอร์เซอร์ปัจจุบันของฉันเป็นกลุ่มเพื่อขึ้นไปข้างบนในไฟล์ ทำอย่างไรจึงจะได้สิ่งนี้? นอกจากนี้วิธีการทำเช่นเดียวกันสำหรับลงในไฟล์

6
สร้างเครื่องมือจับคู่อัตโนมัติในกลุ่ม
ฉันจะสร้างวงเล็บปีกกาที่จับคู่ในกลุ่มโดยอัตโนมัติได้อย่างไร? มันควรจะทำงานดังนี้: ถ้าฉันใส่วงเล็บปีกกาเปิดหนึ่งปิดจะปรากฏขึ้นโดยอัตโนมัติและเคอร์เซอร์ควรอยู่ในระหว่าง ในการกระโดดออกจากคู่รั้งCtrl-jจะใช้การรวมกัน มีปลั๊กอินมากมายที่ให้การแทรกรั้งอัตโนมัติ แต่พวกเขา อาจใช้การผสมผสานคีย์ที่แตกต่างจากCtrl-jการกระโดดออกจากคู่รั้งหรือ รบกวนการผูกคีย์UltiSnips งานดังต่อไปนี้ตามที่คาดไว้ :inoremap ( ()<Esc>:let leavechar=")"<CR>i :imap <C-j> <Esc>:exec "normal f" . leavechar<CR>a แต่ด้วยการตั้งค่าเหล่านี้ตัวอย่าง UltiSnips จะไม่ทำงานอีกต่อไป ดังนั้นฉันจึงใช้ UltiSnips เพื่อแทรกรั้งปิด: inoremap ( (<C-R>=UltiSnips_Anon('($1)$0', '(')<CR> เกือบจะใช้งานได้แล้ว Ctrl-jรั้งจับคู่ถูกแทรกและฉันสามารถข้ามหนึ่งปิดด้วย อย่างไรก็ตามสิ่งนี้จะทำงานได้ก็ต่อเมื่อมีช่องว่างด้านหน้าวงเล็บปีกกาเปิด main () // works, the closing parentheses is added main( // fails without a space โซลูชันของฉันต้องการการโยงคีย์ที่แตกต่างกันเพื่อกระโดดข้ามวงเล็บปีกกาปิดหรือต้องการพื้นที่ด้านหน้าที่เปิดอยู่ จะแก้ไขได้อย่างไร? …
17 vim 

4
วิธีการสลับไปยังรายการไดเรกทอรีจากมุมมองไฟล์ในกลุ่ม?
ฉันได้เปิดผบvim some/dir. ฉันสามารถนำทางภายในต้นไม้ได้ แต่เมื่อฉันเปิดไฟล์ที่ฉันสงสัยฉันจะปิดมุมมองไฟล์ได้อย่างไรเพื่อกลับไปยังรายชื่อไดเรกทอรีเพื่อนำทางไปยังไฟล์อื่น :wqไม่มีตัวเลือกเนื่องจากจะปิดเซสชันทั้งหมดเป็นกลุ่ม ฉันเดาว่ามีโหมดสำหรับโหมดนั้น แต่ฉันไม่รู้ว่ามันเรียกว่าอะไรและฉันจะเริ่มยังไง จะปิดไฟล์ไปยังมุมมองการนำทางไฟล์ได้อย่างไร?

3
วิธีรับ VIM เพื่อแสดง 256 สีอย่างถูกต้อง
ฉันพยายามรับไฟล์ธีม 256 สีเพื่อใช้งานกับ VIM ภายใต้ xterm นี่คือpeakseaวิธีที่ฉันมองหา: มันควรมีลักษณะอย่างไร: ฉันได้ลองทำตามคำแนะนำในหน้า wiki แล้วไม่เป็นประโยชน์ set t_Co=256 ทำงานได้ดี แต่ set t_AB=^[[48;5;%dm set t_AF=^[[38;5;%dm ผลลัพธ์ในลำดับ escape จะถูกแสดงบนเทอร์มินัล: แก้ไข: Mikel ถูกต้องฉันต้องพิมพ์ Ctrl + v + Esc เพื่อป้อน ^ [อย่างถูกต้อง อย่างไรก็ตามนั่นไม่ได้แก้ไขปัญหาของฉัน ดังนั้นฉันจะพยายามเปลี่ยนแปลงอะไรได้บ้าง ข้อมูลเพิ่มเติม $ uname -a Linux xxxxxxx 3.4.7-1-ARCH #1 SMP PREEMPT Sun Jul 29 22:02:56 CEST …
17 arch-linux  vim  colors  xterm  rxvt 


1
ใช้การค้นหาขนาดตัวพิมพ์เล็กและใหญ่สำหรับสตริงตัวพิมพ์เล็กโดยใช้ smartcase
ผมปกติเปิดใช้งานในของฉันsmartcase.vimrc โดยไม่ต้องsmartcase: หากฉันต้องการการค้นหาแบบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ฉันจะเขียนตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ (ไม่สำคัญ) และต่อท้าย\cท้ายแบบสอบถาม การค้นหาแบบตรงตามตัวพิมพ์ใหญ่ - เล็กจะเกิดขึ้นตามค่าเริ่มต้น ด้วยsmartcase: ถ้าฉันต้องการการค้นหาแบบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ฉันจะเขียนตัวพิมพ์เล็กทั้งหมด หากฉันต้องการค้นหาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ฉันจะพิมพ์ตัวอักษรพิมพ์ใหญ่และตัวพิมพ์ใหญ่ แต่ด้วยการsmartcaseเปิดใช้งานฉันจะพูดได้อย่างไรว่าฉันต้องการค้นหาตัวพิมพ์เล็กและตัวพิมพ์เล็ก ฉันคาดหวังว่าการผนวก a \cจะยกเลิกประเภทการค้นหา (ดังนั้นถ้าฉันเขียนทั้งหมดด้วยตัวพิมพ์เล็กเช่นการค้นหาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ก็จะเป็นการค้นหาแบบตัวพิมพ์เล็กและถ้าฉันเขียนตัวพิมพ์ใหญ่บางตัว ตัวอักษรเช่นการค้นหาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่มันจะหันไปใช้การค้นหาแบบตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก แต่ก็ดูเหมือนจะไม่เป็นแบบตัวพิมพ์ใหญ่
17 vim  search 

2
วิธีการทำให้เป็นกลุ่มใช้ / var / log / ข้อความเน้นไวยากรณ์ไปยังไฟล์ใด ๆ ที่เรียกว่า "messages" หรือ "messages- *"?
ฉันชอบสีสันของเสียงเรียกเข้า/var/log/messagesแต่มันก็ใช้งานได้กับ - ชื่อไฟล์ที่แน่นอน ไม่ทำงานสำหรับการหมุนข้อความที่เก่ากว่า (เช่น/var/log/messages-20120610) หรือไฟล์ข้อความที่ฉันได้รับจากระบบอื่น ฉันจะปรับแต่งสิ่งนี้ได้อย่างไร

2
จะเกิดอะไรขึ้นถ้าฉันใช้ vi กับไฟล์ขนาดใหญ่
แม้ว่าเราจะไม่ได้รับคำสั่ง แต่เพื่อนร่วมงานของฉันใช้ vi เพื่อดูไฟล์ข้อความขนาดใหญ่ (server.log 3.5 GB) สิ่งนี้เต็มไปด้วย / var / tmp และก่อให้เกิดปัญหาบางอย่างบนเซิร์ฟเวอร์ อะไรทำให้เกิดสิ่งนี้ ทำไมเราไม่ควรใช้ vi สำหรับไฟล์ขนาดใหญ่?
16 vim  vi 

4
วิธีค้นหาคำปัจจุบันในแท็บที่เปิดทั้งหมดใน Vim
ฉันได้เริ่มเรียนรู้การใช้คำค้นหาเป็นกลุ่ม*และ#ในขณะที่เคอร์เซอร์อยู่เหนือคำศัพท์ปัจจุบัน แต่การค้นหานี้ถูก จำกัด ไว้ที่บัฟเฟอร์ไฟล์ปัจจุบัน มีคำสั่งหรือทางลัดเพื่อขยายการค้นหานี้: แท็บที่เปิดอยู่ทั้งหมดหรือไม่ บัฟเฟอร์ที่เปิดทั้งหมดหรือไม่
16 vim 

1
แทนที่ unicode chars ใน VIM?
ฉันได้รับบันทึกจากเครื่อง windows ซึ่งมีหลายกรณี<200e>ฉันรู้ว่ามันเป็น Unicode char แต่ฉันจะลบมันด้วยsคำสั่งได้อย่างไร ฉันไม่รู้วิธีป้อนข้อมูลนั้นในcommand"บรรทัด" แก้ไข นี่คืออักขระ Unicode ซึ่งหมายความว่าฉันสามารถลบได้ด้วยxการกดปุ่มเดียว.. ไม่ใช่ 6 ตัวอักษร<200e>...
16 vim 

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