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

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

2
จะทำการผสานได้อย่างไรถ้าไฟล์ที่ไม่ได้บันทึกถูกแก้ไขพร้อมกัน?
บางครั้งมันก็เกิดขึ้นกับฉันที่เกิดข้อผิดพลาดในการแก้ไขไฟล์ที่ไม่ได้บันทึกพร้อมกัน (เช่นโดย VCS) บางครั้งฉันก็ไม่สังเกตเห็นและแก้ไขต่อไป เมื่อฉันต้องการบันทึกฉันต้องบังคับให้บันทึกและสูญเสียการแก้ไขพร้อมกันหรือยกเลิกการเปลี่ยนแปลงของฉัน ตัวเลือกทั้งสองเป็นเรื่องน่ายินดี มีวิธีรวมการเปลี่ยนแปลงทั้งสองเข้าด้วยกันแทนได้อย่างไร
1 vim  merge 

1
การเริ่มต้นเป็นกลุ่มที่ด้านบนของหน้าจอ
ฉันเป็นผู้ใช้ MacVim ตัวยงและทุกครั้งที่ฉันเรียกใช้งานหน้าต่างจะเริ่มประมาณ 2 แถวบนหน้าจอไกลเกินกว่าที่ฉันต้องลากขึ้นไปด้านบนของหน้าจอทุกครั้ง มีอะไรที่ฉันสามารถเพิ่มใน. vimrc ของฉันเพื่อให้เริ่มต้นที่ด้านบนทุกครั้งหรือไม่ แก้ไข: สำหรับทุกคนที่มีปัญหาเดียวกันกับ MBP (1440X900) หากคุณ:set lines=49ดูเหมือนจะหลอกลวง
1 macos  vim  vimrc  macvim 

1
ฉันจะเพิ่มระยะเวลาคงที่ให้กับสตริง“ hh: mm” ทั้งหมดในเอกสารได้อย่างไร
ฉันมีเอกสารที่ถอดความจากการสัมภาษณ์วิดีโอ วิดีโอมีการฝังไทม์โค้ด SMPTE รวมทั้งเบิร์นอิน timecode (BITC) SMPTE timecode และ BITC สอดคล้องกับช่วงเวลาของวันที่ทำการสัมภาษณ์ในรูปแบบ 24 ชั่วโมง ในเอกสารการถอดความมีการประทับเวลาในวงเล็บเหลี่ยมทุกสองนาทีใน[hh:mm]รูปแบบ อย่างไรก็ตามการประทับเวลาการถอดเสียงเหล่านี้เริ่มต้นที่ '00: 00 ' มีวิธีการใช้ฟังก์ชั่น "ค้นหาและแทนที่" ในการค้นหาเอกสารค้นหาอินสแตนซ์ทั้งหมดhh:mmและเพิ่มเวลาที่แน่นอนให้กับการประทับเวลาเหล่านั้นซึ่งจะสะท้อนเวลาของวันจับคู่กับไทม์ของ SMPTE หรือไม่ ทางออกที่สมบูรณ์แบบจะเป็นเครื่องมือที่: ค้นหาการประทับเวลาทั้งหมดใน[hh:mm]รูปแบบ เพิ่มเวลาเริ่มการสัมภาษณ์ "yy: yy" ในรูปแบบ 24 ชั่วโมงให้กับการประทับเวลาดั้งเดิมทั้งหมด "xx: xx" แทนที่การประทับเวลาด้วยการประทับเวลาใหม่ที่ถูกต้อง "zz: zz" ซึ่งจะเท่ากับ xx: xx + yy: yy ตัวอย่างเช่นหากการสัมภาษณ์ของฉันเริ่มต้นเวลา 9:30 น. ในตอนเช้าการประทับเวลาแต่ละครั้งจะถูกแทนที่ด้วยวิธีดังต่อไปนี้: 00:00 + 9:30 = …

2
VIM - บรรทัดเยื้องอัตโนมัติที่มีความยาวเกิน
มีตัวเลือกใน VIM สำหรับบรรทัดที่ตั้งใจโดยอัตโนมัติ (เช่นใน Espresso) ซึ่งยาวเกินกว่าที่จะแสดงในหน้าต่างปัจจุบันเพื่อให้พวกเขาได้รับการแบ่งบรรทัดอัตโนมัติหรือไม่ นี่คือลักษณะที่ปรากฏใน Espresso:

1
เป็นกลุ่ม - ฉันสามารถส่ง args หลายรายการไปยังคำสั่งที่กำหนดเองโดยไม่ต้องเขียนฟังก์ชั่น
ฉันได้เขียนคำสั่งที่กำหนดเองต่อไปนี้ในไฟล์. vimrc ของฉัน: command! -nargs=+ Sub :%s/<args>/g มันทำให้ฉันสามารถแทนที่คำหนึ่งไปอีกคำหนึ่งและดำเนินการเช่นนี้: :Sub <word>/<new word> ฉันต้องการเขียนคำสั่งด้วย args หลายอันเช่นนี้ :Sub <word> <new word> ฉันสามารถเขียนคำสั่งใหม่เพื่อยอมรับการขัดแย้งกันหลายครั้งได้หรือไม่? เป็นการดีที่ฉันต้องการสิ่งนี้: command! -nargs=+ Sub :%s/<arg1>/<arg2>/g ขอบคุณล่วงหน้า.

1
ฉันจะเปลี่ยนคำหลักบางคำในกลุ่มเป็นตัวพิมพ์ใหญ่ทั้งหมดได้อย่างไร
ฉันจะเปลี่ยนคำหลักบางคำในกลุ่มเป็นตัวพิมพ์ใหญ่ทั้งหมดได้อย่างไร ฉันต้องการทราบว่าฉันกำลังเขียนโปรแกรมใน Fortran และรูปแบบที่ต้องการคือมีฟังก์ชั่นที่แท้จริงในตัวพิมพ์ใหญ่ ตัวอย่างเช่นคำหลักหากจะเปลี่ยนเป็น IF จะเปลี่ยนเป็นทำและโทรไปที่ CALL ฯลฯ ... และการใช้นิ้วก้อยของฉันสำหรับปุ่ม Shift ตลอดเวลาทำให้ฉันได้รับบาดเจ็บจากความเครียดซ้ำ ๆ ! หากมีวิธีที่จะใช้ประโยชน์จากคุณลักษณะการเน้น snytax ในกลุ่มที่จะดี แต่ฉันไม่คิดใช้ครึ่งชั่วโมงหรือดังนั้นพิมพ์คำหลักทั้งหมดที่ฉันต้องการจะทำหมวกถ้าเป็นวิธีเดียว

1
ปุ่มลูกศรไม่ทำงานเมื่อใช้ mosh remote shell
ฉันจะรับปุ่มลูกศรเป็นกลุ่มเพื่อทำงานในเปลือก mosh ได้อย่างไร พวกเขาเคยทำงานให้ฉัน แต่หลังจากอัพเกรดบางอย่าง (mosh อาจ) มันก็พัง ปุ่มลูกศรไม่ทำงาน mosh 1.2.6 เปลือกระยะไกล vim 7.4 ubuntu 14.04 วิธีแก้ปัญหา :set term=builtin_ansi แต่ด้วยสิ่งนี้ฉันสูญเสียหน้าจอสี 256 สี ในเซสชัน ssh ปกติจะทำงานได้ดี (โดยที่ค่าtermคือxterm-256colors) ใช้งานได้ (ฉันมีสิ่งนี้ในเครื่องอื่น) mosh 1.2.5 เปลือกระยะไกล vim 7.4 ubuntu 16.04
1 vim  mosh 

1
เป็นกลุ่ม“ * และ” + ในหน้าจอ
ฉันเพิ่งเริ่มใช้หน้าจอและฉันสนุกกับมันค่อนข้างน้อย ปัญหาคือเมื่อฉันเรียกใช้กลุ่มจากภายในหน้าจอฉันไม่สามารถเข้าถึงการลงทะเบียน + อีกต่อไป มันเคยเป็นฉันสามารถพูดได้ "+dd เพื่อตัดบรรทัดไปยังคลิปบอร์ดของระบบแล้ววางที่อื่น แต่การใช้เสียงเรียกเข้าภายในหน้าจอ"+ddดูเหมือนจะไม่ดึงไปยังคลิปบอร์ดของระบบอีกต่อไป ไม่มีใครรู้วิธีการแก้ไขปัญหานี้หรือไม่?
1 vim  gnu-screen 

1
จะแยกบางส่วนของบรรทัดและต่อท้ายบรรทัดใน VIM ด้วย regex ได้อย่างไร
ฉันมีไฟล์ที่มีจำนวน URL ในรูปแบบ: http://www.edu-factory.org/wp/about/ ฉันต้องการแยก sitehost ของ url และต่อท้ายบรรทัด: http://www.edu-factory.org/wp/about/ www.edu-factory.org ความคิดใดที่จะทำเช่นนั้น?
1 vim 

2
ค้นหาคำที่ต้องการแล้วแก้ไขภายใน Sublime Text 2 และ Vim
ฉันพยายามเรียนรู้ keybindings ของกลุ่มหนึ่งโดยหนึ่ง สิ่งที่ฉันคิดว่าฉันน่าจะดีในช่วงต้นคือการหาข้อความและแทนที่ด้วยสิ่งอื่น ฉันทำสิ่งนี้สำเร็จแล้วกับ E-TextEditor บน Windows ซึ่งฉันจะใส่คีย์ใน v / something / \ rsomethingelse สำหรับเอฟเฟกต์ที่ต้องการ แต่ฉันพบว่าไม่ใช่กรณีในโหมด commmand ใน SublimeText 2 สิ่งที่เกิดขึ้นใน ST2 คือเมื่อฉันอยู่ในโหมดคำสั่งฉันกด v ซึ่งวางโปรแกรมแก้ไขในโหมดภาพแล้วถ้าฉันคีย์ใน / มันเข้าสู่ ค้นหาจากนั้นฉันป้อนคำว่า "บางอย่าง" ถ้าฉันกด "/" มันจะเป็นส่วนหนึ่งของคำค้นหาแทนการสิ้นสุด regexp โอเคฉันคิดแล้วฉันกดกลับเพื่อดูว่าอินสแตนซ์ของบางอย่างได้รับ เลือกไว้ แต่มันไม่ได้หรือไม่มี esc หรือคีย์อื่นใดที่ฉันนึกออก โปรดทราบว่าพบว่าอินสแตนซ์ของ "บางสิ่ง" แต่ไม่ได้ถูกเลือกสำหรับการดำเนินการเพิ่มเติม คุณสมบัตินี้ไม่มีอยู่ใน SublimeText2 หรือฉันขาดหายไป

2
วิธีใช้ sudo tee ใน GVIM สำหรับ Windows
ฉันสามารถใช้สิ่งที่ชอบ :w !sudo tee % ใน GVIM สำหรับ Windows? มีอะนาล็อกหรือไม่? หรือฉันสามารถปิดการใช้งาน UAC สำหรับหนึ่งโปรแกรมเท่านั้นและเรียกใช้ในฐานะผู้ดูแลระบบได้เสมอ?
1 windows  vim  gvim 

1
เป็นกลุ่ม - การรับรู้แท็บ
ถ้าฉันเขียนโค้ดแบบนี้ในกลุ่ม: def my_function และฉันกด Enter ฉันต้องการให้เคอร์เซอร์อยู่ในตำแหน่งด้านล่าง d ขณะนี้กำลังวางเคอร์เซอร์ไปทางซ้ายสุดเท่าที่จะทำได้ ฉันจะทำสิ่งนี้ได้อย่างไร
1 vim  vi  macvim 

1
ฉันจะเน้นข้อความทั้งหมดในบรรทัดที่ทำให้เกิดการซิงค์ภายในได้อย่างไร
สมมติว่าฉันมีคำจำกัดความกลุ่มเหล่านี้: syn match tasktag "\(\s\)\@<=@[a-zA-Z0-9_]\+" syn match taskdone "\<[Dd]one\>" containedin=tasktag ฉันจะระบุtaskdoneเพื่อเน้นข้อความทั้งหมดในบรรทัดได้อย่างไร ผมมองเช่นเดียวกับ:h syn-pattern-offset:h syn-region

1
บังคับหน้าต่างแสดงตัวอย่างเป็นกลุ่มเพื่อแสดง: topleft
ฉันใช้ปลั๊กอิน vim สองอันซึ่งพึ่งพาหน้าต่างแสดงตัวอย่างเป็นอย่างมาก (หนึ่งอันสำหรับการควบคุมเวอร์ชันและอีกอันสำหรับการทำให้ผู้ใช้เสร็จสิ้น) ฉันมักจะทำงานกับการแบ่งตามแนวตั้งและบางครั้งก็อยู่ในโหมด diff ตอนนี้เมื่อหน้าต่างแสดงตัวอย่างปรากฏขึ้นในสถานะดังกล่าวก็จะแยกออกคอลัมน์ปัจจุบันดูน่าเกลียดและทำลายการประสานถ้าฉันอยู่ในโหมด diff มีวิธีใดบ้างที่จะทำให้หน้าต่างแสดงตัวอย่างเปิดตลอดเวลา:topleft โดยไม่กระทบกับการแยกแบบปกติ
1 vim 

2
vim: ไลบรารีของการแทนที่ทั่วไปโดยไม่มีปลั๊กอิน?
ฉันจะต้องการที่จะดำเนินการคิดเช่น:'<,'>s/^\ \ \ \ //ในรูปแบบย่อเช่น:'<,'>s_lw(ไม่ว่าสิ่งที่จริงจะเป็นไปได้ว่าs_lw) โดยใช้vimฟังก์ชันการทำงานที่ฐานแรกพยายามที่จะไม่พึ่งพาในส่วนขยายเช่นCommandAlias: Make ชื่อแทนคำสั่งที่เป็นกลุ่ม เป็นไปได้ไหม?

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