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

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

2
ฉันจะขอการนำทาง vim-stlye (hjkl) สำหรับข้อมูล GNU ได้หรือไม่
เลย์เอาต์ของแป้นพิมพ์เน็ตบุ๊กของฉันหมายความว่าการใช้ปุ่มลูกศรสำหรับการนำทางนั้นค่อนข้างอึดอัดเล็กน้อย มีวิธีทำให้หน้า GNU Info ใช้hjklการนำทางแบบ vim หรือไม่? ฉันรู้ว่าฉันสามารถ info printf | less ... และใช้ j และ k เพื่อเลื่อนขึ้นและลงซึ่งดีพอที่ฉันใช้หน้าข้อมูลสำหรับการอ่านดังนั้นการนำทางไปยังอักขระที่เฉพาะเจาะจงไม่สำคัญ แต่มันจะดีถ้าฉันสามารถทำสิ่งนี้ภายในinfoแทนที่จะหันไปใช้ท่อ
12 vim  less  info 

3
จะอนุญาตให้ใช้ Page Up ในหน้าจอ GNU ได้อย่างไร
ฉันใช้ Vim เพื่อแก้ไขไฟล์ข้อความบน Linux ปกติฉันเชื่อมต่อกับเครื่อง Linux ระยะไกลโดยใช้ PuTTY จาก Windows ฉันใช้หน้าจอ GNU โดยทั่วไปเช่นกัน เมื่อใช้ Vim ข้างใน Screen ฉันไม่สามารถใช้Page Upกุญแจได้เพราะ Screen ตีความว่ามันเป็นคำสั่งเพื่อเริ่มโหมดการคัดลอก ฉันต้องการใช้Page Upสำหรับฟังก์ชั่น up-paging ตามปกติ ฉันจะกำหนดค่าหน้าจอให้ทำเช่นนี้ได้อย่างไร
12 linux  gnu-screen  vim 

2
การตั้งค่า vim filetype ด้วย modeline ไม่ทำงานอย่างที่คาดไว้
ตามคำตอบที่ได้รับการยอมรับสำหรับคำถามนี้ฉันพยายามใช้ modelines in vim เพื่อบังคับให้มีการตรวจจับประเภทไฟล์ในบางไฟล์ ตัวอย่างเช่นที่ด้านบนของไฟล์ชื่อgitconfig(หมายเหตุไม่มีผู้นำ.) ฉันมีบรรทัดต่อไปนี้: # vim: set filetype=gitconfig : modelineเปิดใช้งานในระบบของฉัน อย่างไรก็ตามเมื่อฉันเปิดไฟล์เป็นกลุ่มset filetype?จะให้ผลตอบแทนconfมากกว่าที่คาดgitconfigไว้ เป็นไปได้ไหมว่าส่วนอื่น ๆ ของการกำหนดค่า vim ของฉัน (เช่น filetype.vim) ทำให้เกิดพฤติกรรมแปลก ๆ นี้? แก้ไขเพื่อตอบสนองต่อความคิดเห็น: set compatible? ผลตอบแทน nocompatible set modeline? ผลตอบแทน modeline verbose set filetype? ผลตอบแทน: filetype=conf Last set from /usr/share/vim/vim73/filetype.vim ฉันไม่เข้าใจว่าทำไมปลั๊กอินชนิดกว้าง ๆ ของระบบจะแทนที่สิ่งที่ฉันตั้งไว้ในไฟล์เอง หมายเหตุสุดท้ายสุดท้าย: นี่เป็นเวอร์ชั่น Vim 7.3 …
12 vim  osx 

4
เป็นกลุ่มค้นหารอบตัวแบ่งบรรทัด
เมื่อฉันแก้ไขเอกสาร LaTeX เป็นกลุ่มบ่อยครั้งที่ฉันต้องการค้นหาวลี เนื่องจากฉันมีการตั้งค่า LaTeX เพื่อตัดบรรทัดบางครั้งครึ่งหนึ่งของวลีจะเป็นหนึ่งบรรทัดในขณะที่อีกครึ่งหนึ่งอยู่ถัดไป ในกรณีเช่นนี้การค้นหาไม่พบสิ่งที่ฉันกำลังมองหา ตัวอย่างเช่น blah blah blah hello world blah blah blah เมื่อค้นหาโดยใช้/hello worldฉันไม่พบสิ่งที่ฉันกำลังมองหา มีวิธีที่ง่ายและรวดเร็วในการปรับเปลี่ยนการค้นหานี้เพื่อให้ได้ตำแหน่งที่ต้องการหรือไม่? หรือวิธีที่ดีกว่าที่จะบอก vim ให้ตรงกับช่องว่างสีขาว (ช่องว่างแท็บบรรทัดใหม่) กับช่องว่างในสตริงการค้นหา
12 vim  search 

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 

2
ปัญหาในการใช้ปุ่ม Ctrl + Arrow ใน Vim เมื่อใช้ Byobu กับ tmux
ในกลุ่มฉันได้ตั้งปุ่ม Ctrl + ลูกศรเพื่อข้ามคำ มันใช้งานได้ดีเมื่อใช้ Vim ภายใน gnome-terminal อย่างไรก็ตามเมื่อใช้byobu (tmux) มันจะแสดงพฤติกรรมแปลก ๆ : มันจะลบทุกอย่างหลังจากเคอร์เซอร์ สำหรับการอ้างอิงนี่คือการตั้งค่ากลุ่มของฉัน: :inoremap <C-Left> <C-\><C-O>b :inoremap <C-Right> <C-\><C-O>w
12 tmux  byobu  vim 

3
ฉันสามารถเร่งความเร็วการวางเป็นกลุ่มได้หรือไม่
ฉันคัดลอกส่วนหนึ่งของ HTML ออกจากหน้าเว็บและต้องการบันทึกไว้ในไฟล์ สำหรับการที่ฉันเริ่มvim เซสชั่นใหม่ในหน้าต่างเทอร์มินัลโดยมีชื่อไฟล์ (ใหม่) ที่ระบุใน commandline กดiเพื่อเข้าโหมดแทรกจากนั้นCtrlShift+ Vและรอขณะที่[-- INSERT --]แสดงที่ด้านล่างและรอ ... เนื่องจากvimไม่ตอบสนองหลังจากผ่านไปหลายวินาทีฉันจึงเปิด 'ตัวแก้ไขข้อความ' จากเมนูแอปพลิเคชัน→ Accessoiries วางข้อความ (ซึ่งปรากฏขึ้นภายในเสี้ยววินาทีที่บันทึกไว้ภายใต้ชื่อใหม่ปิดและฆ่าเซสชัน Vim ที่ ยังไม่เสร็จภายใน 1.5 นาทีต่อมาปริมาณของข้อความคือ 186K ใน 3200 บรรทัดไม่มากเกินไปที่ฉันจะพูดและไม่ยาวเกินไป มีวิธีในการเพิ่มความเร็วของการแทรกเหล่านี้ในvimและ / หรือมีคำอธิบายว่าทำไมจึงช้าเมื่อเทียบกับการใช้ตัวแก้ไขข้อความที่น่ากลัวและวางเมาส์? (% CPU ตามที่topไม่ได้สูงกว่า 5% แม้ว่าฉันจะมีโปรเซสเซอร์บางตัวฟรีในระบบดังนั้นมันอาจเป็นปัญหาของ I / O ที่ถูกผูกไว้ซึ่งไม่มีอยู่เมื่ออ่านข้อความเดียวกันจากไฟล์) ข้อมูลรุ่น: Ubuntu 12.04 Vim: 7.3 พร้อมแพตช์ตามที่จัดทำโดย Ubuntu 12.04 bash: 4.2.25 …
12 vim  clipboard 

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

3
เป็นกลุ่มเพื่อพิมพ์ไฟล์บนเทอร์มินัลและออก
ฉันต้องการให้กลุ่มทำเช่นนี้เพื่อให้มีการเน้นไวยากรณ์ตามที่ตั้งค่าเป็นกลุ่ม (หรือไม่จำเป็นต้องใช้เครื่องมือเพิ่มเติม) ดังนั้นแทนที่จะใช้ผมจะใช้cat file | <some_sh_tool> vim +"some_opts" +"..." +q fileปัญหาคือเสียงเรียกคืนหน้าจอก่อนหน้าเมื่อออก แต่ใช้เครื่องมือการเข้าถึงระยะไกลนี้ไม่ได้เกิดขึ้นดังนั้นโดยทั่วไปมันทำงานเหมือน cat กับเน้นไวยากรณ์ เป็นไปได้ไหม แก้ไข คิดเพิ่มเติมเกี่ยวกับเรื่องนี้ฉันคิดว่านี่เป็นสิ่งที่ดีที่มี นอกเหนือจากไวยากรณ์ที่เน้นคุณสมบัติอื่น ๆ ของ vim สามารถใช้ในขณะที่แสดงเนื้อหาไฟล์เช่นหมายเลขบรรทัดพื้นที่สีขาวการตัด ฯลฯ โดยเฉพาะอย่างยิ่งภายในสคริปต์และเนื่องจาก vim นั้นอยู่ทั่วไปทุกหนทุกแห่ง
12 vim 

4
ลบพื้นที่ว่างสำหรับชุดของบรรทัดในโปรแกรมแก้ไข Vim
ฉันมีข้อความเหมือนดังต่อไปนี้ในไฟล์: sample text some random text even more random text text with no indent worst indention ฉันต้องการลบพื้นที่ว่างก่อนแต่ละบรรทัด สำหรับหนึ่งบรรทัดสิ่งที่ฉันทำคือ 0dw ฉันสามารถทำซ้ำคำสั่งเดียวกันโดยใช้ แต่ด้วยการนำทางไปยังบรรทัดถัดไปด้วยตนเอง แต่มีวิธีใช้ '0dw' กับบล็อกบรรทัดเหล่านั้นหรือไม่ ฉันคิดว่ามีวิธีใช้แมโคร แต่ฉันไม่ได้ใช้มาก่อน แต่ฉันยินดีที่จะเรียนรู้พวกเขาหากไม่มีทางเลือกอื่น

1
mutt: วิธีการแสดงตัวอักษรอิโมจิอย่างถูกต้อง?
ฉันต้องการที่จะเห็นตัวอักษรอิโมจิอย่างถูกต้องใน mutt แต่เช่น💗แสดงเป็น ^ J ในเพจเจอร์ของ mutt วิ่ง :set pager=view และการเปิดข้อความใหม่จะแสดงตัวอักษรอย่างถูกต้องด้วย vim อีเมลที่เป็นปัญหานั้นเข้ารหัสด้วย PGP แต่ฉันคิดว่าฉันจะได้รับอีเมลฉบับเดียวกันกับที่ไม่ได้เข้ารหัส ( https://groups.google.com/forum/#!topic/comp.mail.mutt/50_MpyYkXR4 ) ฉันยังพบโพสต์นี้ ( /programming/23526353/how-to-get-ncurses-to-output-astral-plane-unicode-characters ) ซึ่งอธิบายถึงปัญหาที่เป็นไปได้ที่ฉันพบ แต่อย่างที่ฉันบอกว่าเสียงเรียกเข้านั้นแสดงตัวอักษรได้ดีในหน้าต่างเทอร์มินัลเดียวกัน ยิ่งไปกว่านั้นฉันใช้ glibc 2.19 และฉันไม่เห็นว่าแอปพลิเคชันทั้งสองนี้สามารถใช้เวอร์ชัน glibc ที่แตกต่างกันในระบบเดียวกันได้อย่างไร มีวิธีรับเพจเจอร์ในตัว mutt เพื่อแสดงเหล่านี้อย่างถูกต้องหรือไม่ แก้ไข: ดังนั้นฉันลืมที่จะรวมทุกอย่างที่เกี่ยวข้องนอกเหนือจาก 'mutt' และ 'vim' ... ฉันใช้ Debian เสถียรกับแพคเกจ mutt-patched $ uname -r 3.16.0-4-amd64 $ lsb_release -a …
11 vim  mutt  unicode 

1
วิธีการรีเฟรชเป็นกลุ่มโดยอัตโนมัติในการโฟกัสของบัฟเฟอร์ / หน้าต่าง?
ฉันมักจะใช้Control + L เพื่อวาดหน้าจอเป็นกลุ่ม โดยเฉพาะอย่างยิ่งเมื่อฉันออกจากโหมดสลีปหรือเปลี่ยนการกำหนดค่าจอภาพฉันมักพบว่า Vim จำเป็นต้องวาดใหม่ ฉันคิดว่ามันอาจจะง่ายกว่าที่จะเพิ่มบางสิ่งลงใน vimrc ของฉันที่วาดโฟกัสใหม่ มีคำสั่งที่ฉันสามารถเพิ่มลงใน.vimrcไฟล์ของฉันที่วาดบัฟเฟอร์ใหม่เมื่อหน้าต่าง / บัฟเฟอร์ได้รับโฟกัสหรือไม่? โดยเฉพาะอย่างยิ่งคำสั่งที่ดีไม่ควรมีประสิทธิภาพด้านลบที่เห็นได้ชัดเจนหรือผลข้างเคียงอื่น ๆ ที่เกี่ยวข้อง
11 vim  gvim 

1
มีไฟล์ไวยากรณ์ของ Vim สำหรับเอาต์พุต ANSI สีของแอพพลิเคชั่น CLI หรือไม่?
ฉันมีค่อนข้างมากของสคริปต์ Perl Term::ANSIColorที่พิมพ์เอาท์พุทสีไปยังสถานีโดยใช้ สิ่งนี้เหมือนกับเมื่อเชลล์สคริปต์ทำเช่น echo -e '\e[1;31mError:\e[0m Your fault.' การดูไฟล์บันทึกของคำสั่งเหล่านี้ทำงานได้less(ด้วย-Rสวิตช์) แต่ใน Vim ตัวอักษรสีจะแสดงผลแบบดิบดังนี้: ^[[1;31mError:^[[0m Your fault. ฉันจะทำไฟล์ไวยากรณ์เพื่อให้ตรงกับเครื่องหมายเหล่านี้ปกปิดพวกเขาและสีพื้นที่ไวยากรณ์ที่เกิดขึ้นตามลำดับ แต่ก่อนอื่นฉันต้องการตรวจสอบว่ามีบางอย่างเช่นนี้แล้ว

1
ฉันสามารถทำให้เป็นกลุ่มเปลี่ยนพฤติกรรมเคอร์เซอร์ได้หรือไม่
ฉันใช้ vim เป็นเวลาสองสามปีในฐานะบรรณาธิการลำดับที่สอง แต่ด้วยเหตุผลหลายประการฉันพบว่าตัวเองกำลังใช้งานมันเพิ่มมากขึ้นแม้ว่าตัวแก้ไขหลักของฉันจะพร้อมใช้งาน ปัญหาหนึ่งที่ทำให้ฉันยุ่งอยู่เสมอvimและนั่นทำให้ฉันไม่สามารถใช้มันได้มากขึ้นนั่นคือวิธีที่มันจัดการกับการวางเคอร์เซอร์ เคอร์เซอร์สามารถอยู่บนอักขระได้เท่านั้นแทนที่จะเป็นระหว่างตัวละครเช่นเดียวกับตัวแก้ไขที่สร้างขึ้นตั้งแต่ปี 1984 สำหรับตัวอย่างหนึ่งสาเหตุที่เป็นปัญหาหากฉันต้องการลบคำสุดท้ายในบรรทัดฉันกด$เพื่อไปยังจุดสิ้นสุดของบรรทัดแล้วจึงdbลบไปข้างหลัง การทำเช่นนี้จะทำให้ตัวอักษรถูกลบเนื่องจาก$ไม่ได้ไปที่จุดสิ้นสุดของบรรทัดจริงๆไปถึงอักขระตัวสุดท้ายของบรรทัดและdbลบเฉพาะสิ่งที่อยู่ตรงหน้าอักขระปัจจุบันเท่านั้น ปัญหาไม่ใช่ว่าฉันจะต้องพิมพ์ตัวละครพิเศษมันเป็นความคิดพิเศษที่เกี่ยวข้องกับการทำสิ่งที่ควรจะง่ายซึ่งเบี่ยงเบนความสนใจของฉันออกไปจากสิ่งที่ฉันพยายามทำให้สำเร็จ สำหรับฉันแล้วดูเหมือนว่าการวางเคอร์เซอร์ความคิดที่ทันสมัยมากขึ้นนั้นเหนือกว่าทุกอย่างและฉันต้องการเปลี่ยนvimไปใช้วิธีการนั้น ฉันแน่ใจว่าvimแฟนฮาร์ดคอร์บางคนจะไม่เห็นด้วยกับมุมมองของฉัน แต่เนื่องจากข้อโต้แย้งมาตรฐานประการหนึ่งสำหรับvimความเหนือกว่าของมันก็คือการกำหนดค่าที่ไม่สิ้นสุด: มันสามารถส่งมอบในกรณีนี้? สามารถvimวางเคอร์เซอร์ระหว่างตัวละครได้หรือไม่?
11 vim  cursor 

5
เป็นกลุ่มแก้ไข / สลับระหว่างหลายไฟล์ได้อย่างมีประสิทธิภาพในโครงสร้างไดเรกทอรีขนาดใหญ่
ฉันไม่ได้เป็นผู้ใช้พลังเสียงสูง แต่ฉันเพิ่งเริ่มเข้าใจการเคลื่อนไหวขั้นสูงและคำสั่งด้วยเสียงเรียกเข้า แต่มีข้อเสียเปรียบอย่างหนึ่งที่ฉันไม่สามารถหลีกเลี่ยงได้ ฉันโตมาพร้อมกับโปรแกรมกราฟิกสำหรับการเขียนโค้ด แต่ฉันเพิ่งเริ่มใช้ vim บน ssh & screen เพื่อทำงานกับโปรเจ็กต์ขนาดใหญ่ที่มีโฟลเดอร์จำนวนมาก ฉันอยากรู้ว่าอาจารย์ที่ดีทำงานอย่างไรกับหลายไฟล์อย่างรวดเร็วและง่ายดาย พิจารณาแอพทางรถไฟเป็นตัวอย่าง สมมติว่าคุณต้องการแก้ไขคอนโทรลเลอร์เพื่อให้คุณทำงานได้ vim app/controllers/controller.rb แต่แล้วคุณต้องการเปลี่ยนการแก้ไขมุมมองหรือการย้ายฐานข้อมูลอย่างรวดเร็วสัญชาตญาณแรกของฉันคือ:wqกลับไปที่ทุบตีเพื่อนำทางไปยังไดเรกทอรีนั้นและเริ่มเป็นกลุ่มอีกครั้งในบัฟเฟอร์ใหม่ เห็นได้ชัดว่านี่ผิดปกติ ฉันได้เรียนรู้เกี่ยวกับหลายสิ่งเช่น: เซิร์ฟเวอร์ลูกค้า (แต่ฉันไม่ต้องการใช้ X บน ssh และนี่เป็นวิธีเดียวเท่านั้น) :eเพื่อเปิดไฟล์อื่นโดยการเบราส์ แต่ฉันไม่สามารถทำได้อย่างรวดเร็ว แท็บสมบูรณ์ทำให้ฉันเดินทางจริงๆ เปิดไดเรกทอรีทั้งหมดและค้นหาผ่านบัฟเฟอร์ NERDTree สัญญา แต่ฉันอยากอยู่ห่างจากการแสดงกราฟิกใด ๆ เพื่อบังคับให้ฉันไปยังการนำทางบรรทัดคำสั่งหลัก ฉันขอโทษที่ไร้เดียงสา แต่ฉันต้องการเรียนรู้วิธีการที่ถูกต้องเกี่ยวกับเรื่องนี้แม้ว่ามันจะเป็นเรื่องส่วนตัวก็ตาม คุณมีวิธีการอะไรและคุณจะแนะนำอะไร
11 vim 

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