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

การแสดงไฟล์ที่โหลดลงในหน่วยความจำ การแก้ไขจะดำเนินการกับบัฟเฟอร์

3
ฉันจะแสดงบัฟเฟอร์ในหน้าต่าง quickfix ใน Vim ได้อย่างไร
การใช้ vim editor งานทั่วไปคือการเรียกดูบัฟเฟอร์ ตอนนี้ผมใช้คำสั่งมาตรฐานเช่นหรือ:ls :bnextอันที่จริงฉันตั้งไว้ใน. vimrc ของฉัน: "move amongs buffers with CTRL map <C-J> :bnext<CR> map <C-K> :bprev<CR> ฉันต้องการเรียกดูบัฟเฟอร์เป็นรายการในหน้าต่าง Quickfix ในวิธีที่ง่าย (= ยอดเยี่ยม) ปลั๊กอิน MRUใช้ มีปลั๊กอินที่ง่ายเหมือน MRU แต่ทำหน้าที่ในบัฟเฟอร์? ตกลงวิธีแก้ปัญหาที่เป็นไปได้คือการใช้:CtrlpBuffersคำสั่งส่วนหนึ่งของปลั๊กอิน Ctrlpแต่ฉันไม่ใช่แฟนตัวยงของ Ctrlp เพราะบางครั้งมีพฤติกรรมแปลก ๆ ที่ฉันไม่เข้าใจอย่างสมบูรณ์ (การเลือกโหมดฟัซซี ... ); ดังนั้นฉันจึงมองหาบางสิ่งที่ง่ายมากในฐานะ MRU plugin BTW ฉันพูดติดตลกด้วย:cexpr {expr}คำสั่งพยายามเติมหน้าต่าง quickfix ด้วยเนื้อหาของ:buffersรายการโดยไม่ประสบความสำเร็จ (อาจเป็นเพราะ vimscripts การเขียนโปรแกรมของฉันไม่รู้ ข้อเสนอแนะใด …
13 buffers  quickfix 

1
มีอะไรเลวร้ายเกิดขึ้นได้ถ้าฉันใช้: bwipeout?
ฉันเพิ่งค้นพบ:bwipeoutคำสั่งซึ่ง:helpรัฐ: ชอบ:bdeleteแต่จริงๆลบบัฟเฟอร์ ทุกอย่างที่เกี่ยวข้องกับบัฟเฟอร์หายไป เครื่องหมายทั้งหมดในบัฟเฟอร์นี้ไม่ถูกต้องการตั้งค่าตัวเลือกจะสูญหาย ฯลฯ อย่าใช้สิ่งนี้จนกว่าคุณจะรู้ว่าคุณกำลังทำอะไรอยู่ นอกเหนือจากที่เห็นได้ชัดฉันไม่แน่ใจว่าข้อเสียของการใช้คำสั่งนี้คืออะไร การตั้งค่าตัวเลือกของฉันจะถูกรีเซ็ตเป็นค่าเดิมเกือบทุกครั้งเมื่อฉันเปิดไฟล์ที่เป็นปัญหาและการสูญเสียเครื่องหมายของฉันดูเหมือนจะไม่รับประกันคำเตือนที่เป็นลางไม่ดี: "อย่าใช้สิ่งนี้จนกว่าคุณจะรู้ว่าคุณกำลังทำอะไรอยู่" มีอะไรรวมอยู่ใน "ฯลฯ " และสิ่งที่จะเกิดขึ้นกับสิ่งที่ฉันไม่ได้มองข้าม?
12 buffers 



1
รูปแบบการค้นหาที่แตกต่างกันต่อหน้าต่าง / บัฟเฟอร์
เป็นไปได้ไหมที่จะมีรูปแบบการค้นหาที่แตกต่างกันต่อหน้าต่างหรือบัฟเฟอร์เช่น ฉันต้องการค้นหาคำศัพท์ A ในหน้าต่าง / บัฟเฟอร์ A และคำศัพท์ B ในหน้าต่าง / บัฟเฟอร์ B เพื่อให้ใช้hlsearchเน้นสิ่งต่าง ๆ ในเช่นการแยกแบบขนาน
10 search  buffers 

1
ดำเนินการเนื้อหาบัฟเฟอร์เป็น vimscript
ฉันมีnofileบัฟเฟอร์ที่มี vimscript และฉันต้องการดำเนินการ อย่างไรก็ตาม:so % จะไม่ทำงานเนื่องจากต้องใช้ไฟล์ที่บันทึกไม่ใช่บัฟเฟอร์ มีคำสั่ง vim ให้ทำตามค่าเริ่มต้นหรือไม่? หากไม่สามารถสร้างฟังก์ชั่นที่ทำสิ่งเดียวกันได้หรือไม่?

2
วิธีที่มีประสิทธิภาพมากที่สุดในการแทนที่บัฟเฟอร์ทั้งหมดหรือไม่
ขณะนี้ฉันมีสองวิธีที่คล้ายกันเพื่อแทนที่บัฟเฟอร์ทั้งหมดด้วยข้อความอื่น ๆ (พูดในคลิปบอร์ด) วิธีที่ # 1: ลบทุกบรรทัด: :%d. วางข้อความ: "+P(หรือคล้ายกัน: :put+) วิธีที่ # 2: ggVGสายตาเลือกเส้นทั้งหมด: "+Pวางข้อความ: อย่างไรก็ตามฉันไม่สามารถหาทางสั่งไฟได้ สิ่งที่ใกล้เคียงที่สุดที่ฉันพบคือ:changeคำสั่ง แต่ดูเหมือนว่าจะทำงานได้ดีกับการลงทะเบียน แน่นอนฉันสามารถสร้างฟังก์ชั่นและ / หรือแมปคีย์เพื่อทำสิ่งนั้น แต่ก่อนที่ฉันจะทำการปรับแต่งเหล่านี้ทั้งหมดฉันต้องการตรวจสอบให้แน่ใจ: มีคำสั่งในตัวเพื่อแทนที่ช่วงของบรรทัดด้วยข้อความอื่น ๆ หรือไม่? เช่นคุณสามารถ:%replace+แทนที่บัฟเฟอร์ทั้งหมดด้วยข้อความในคลิปบอร์ด?

1
บัฟเฟอร์หลายไฟล์เดียวกันการตั้งค่าที่แตกต่างกัน
เป็นไปได้หรือไม่ที่จะแก้ไขไฟล์ภายใต้การตั้งค่าที่แตกต่างกันในเวลาเดียวกัน? แม่นยำยิ่งขึ้นฉันต้องการมีหลายบัฟเฟอร์ในอินสแตนซ์เดียวกันของ Vim ซึ่งมีเนื้อหาเหมือนกัน (การเปลี่ยนหนึ่งบัฟเฟอร์ส่งผลกระทบต่อเนื้อหาของบัฟเฟอร์อื่นทันที) แต่ตำแหน่งเคอร์เซอร์ที่แตกต่างกันเครื่องหมายแตกต่างกันการเน้นไวยากรณ์ที่แตกต่าง ฯลฯ กรณีการใช้งานทั่วไปรวมถึงการแก้ไขส่วนต่าง ๆ ของไฟล์เดียวกันอย่างอิสระ (โดยไม่ต้องเข้าสู่โหมดภาพในกรณีหนึ่งจะหยุดการเลือกโหมดภาพปัจจุบันในอีกอินสแตนซ์อื่น) และแก้ไขไฟล์รูปแบบผสม (เช่น HTML และ Javascript) โดยไม่ต้องสลับการตั้งค่า . (แนวทางสำรองสำหรับกรณีการใช้งานครั้งที่สองคือการเปลี่ยนการตั้งค่าโดยอัตโนมัติตามตำแหน่งเคอร์เซอร์ แต่ไม่มีขอบเขตสำหรับคำถามนี้) บรรณาธิการที่พูดถึงเป็นที่ยอมรับว่าอาจทำให้ตกใจเรียกสิ่งนี้ว่า "บัฟเฟอร์ทางอ้อม"
10 buffers 

1
ตัวเลือก 'switchbuf' ควรทำงานอย่างไร
ฉันเพิ่งค้นพบตัวเลือกswitchbufและพยายามที่จะใช้ แต่ฉันไม่สามารถพูดได้ว่าฉันไม่เข้าใจว่ามันจะทำงานอย่างไรหรือถ้ามันใช้ไม่ได้จริง ๆ บน Vim ของฉัน เกี่ยวกับค่าที่เป็นไปได้ที่แตกต่างกัน doc พูดว่า: useopenถ้ามีให้ข้ามไปที่หน้าต่างแรกที่เปิดซึ่ง มีบัฟเฟอร์ที่ระบุ (ถ้ามี) usetab เช่นเดียวกับ "useopen" แต่ให้พิจารณาหน้าต่างในหน้าแท็บอื่นด้วย ฉันได้ใช้ไปแล้วset switchbuf=useopen,usetabและคำสั่งต่อไปนี้ในอินสแตนซ์กลุ่มใหม่: เปิดบัฟเฟอร์แรก :e file1 แยกหน้าจอ :split เปิดบัฟเฟอร์ที่สอง :e file2 กลับไปที่บัฟเฟอร์แรก:e file1(ฉันเคยใช้ด้วย:bN) คำสั่งสุดท้ายเพื่อไปที่บัฟเฟอร์แรกเปิดในการแยกที่สอง useopenจากสิ่งที่ฉันเข้าใจจากเอกสารคำสั่งที่ควรวางเคอร์เซอร์ไปที่แยกแรกที่บัฟเฟอร์ที่มีอยู่แล้วขอบคุณที่เปิดให้ พฤติกรรมก็เหมือนกันเมื่อฉันลองใช้คำสั่งเดียวกันกับแท็บแทนที่จะแยก พฤติกรรมนี้เป็นสิ่งที่คาดหวังหรือไม่ ถ้าเป็นเช่นนั้นคุณสามารถอธิบายว่าตัวเลือกนี้ควรทำอย่างไร? หากไม่ใช่ฉันรู้ว่าฉันจะต้องแก้ไขข้อบกพร่องของฉัน.vimrcแต่อาจมีการตั้งค่าทั่วไปที่รบกวนการทำงานswitchbufหรือไม่
10 vimrc  buffers  split 

1
ทำไม: bd # ลบบัฟเฟอร์ปัจจุบันเมื่อไม่มีบัฟเฟอร์สำรองอยู่?
นี่คือวิธีที่ฉันทำซ้ำพฤติกรรมที่ฉันสังเกต ก่อนอื่นฉันป้อนคำสั่งนี้: echo aaaaa > a vim a ในกลุ่มฉันป้อนคำสั่งเหล่านี้: :ls :e # :echo bufname('#') นี่คือผลลัพธ์ของคำสั่งทั้งสามข้างต้น: :ls 1 %a "a" line 1 :e # E194: No alternate file name to substitute for '#' :echo bufname('#') bufname('#')คำสั่งผลิตออกไม่มี ตอนนี้ฉันป้อนคำสั่งนี้: :bd # บัฟเฟอร์ปัจจุบันจะถูกลบและจะถูกแทนที่ด้วยบัฟเฟอร์ "[ไม่มีชื่อ]": :ls 2 %a "[No Name]" line 1 ผมคาดหวังว่าจะได้รับข้อผิดพลาดในการดำเนินการE194 :bd #เพราะเหตุใดจึงลบบัฟเฟอร์ปัจจุบันแทน …

3
ฉันจะเพิ่มข้อความ Skeleton ลงในไฟล์ vim ใหม่ได้อย่างไร
ฉันใช้ Vim สำหรับการเขียน C ++ และฉันมี#include<>คำสั่งความเห็นและอื่น ๆ ที่ฉันต้องรวมไว้ในไฟล์ใหม่แต่ละไฟล์ที่ฉันสร้างขึ้น ฉันได้เพิ่ม autocmd BufNewFile *.cpp r C:\(full file path of skeleton text file) ถึง vimrc ของฉันเพราะฉันได้ยินว่าสิ่งนี้สร้างบัฟเฟอร์ด้วยข้อความที่ฉันต้องการ ฉันจะเพิ่มข้อความนี้ไปยังไฟล์ใหม่ได้อย่างไร มีวิธีง่าย ๆ ในการทำเช่นนี้จากบัฟเฟอร์หรือมีวิธีอื่นที่ง่ายในการทำสิ่งนี้ ฉันเคยได้ยินเกี่ยวกับปลั๊กอินเทมเพลตมาบ้างแล้ว มีแบบง่าย ๆ ที่สามารถทำได้สำหรับฉัน

1
สัญลักษณ์ '+' หมายถึงอะไรเมื่อเปิดบัฟเฟอร์?
ฉันต้องการเปิดเทอร์มินัลบัฟเฟอร์ในแนวแยก ถ้าฉันลอง:vertical split terminalรับบัฟเฟอร์ชื่อ 'terminal' ไม่ใช่ buffer terminal ฉันเพิ่งเรียนรู้ว่าฉันสามารถทำได้:vertical split +terminalเพื่อเปิดเทอร์มินัลบัฟเฟอร์ แต่ฉันไม่สามารถค้นหาเอกสารช่วยเหลือที่อธิบายว่า + กำลังทำอะไรอยู่ '+' หมายถึงอะไรมันเป็นลักษณะเฉพาะของเทอร์มินัลบัฟเฟอร์หรือเป็นสิ่งทั่วไปมากกว่าหรือไม่ PS ฉันเพิ่งรู้ว่าฉันสามารถทำได้:vertical split | terminalเพื่อให้ได้พฤติกรรมเดียวกัน (อย่างน้อยฉันก็คิดเหมือนกัน)
9 buffers  neovim 

1
บัฟเฟอร์เทียบกับแท็บ vs arglist เทียบกับ windows
ทางเลือกมากมาย! สับสนมาก! เมื่อใดจึงควรใช้ค่าอื่น สิ่งเหล่านี้เกี่ยวข้องกันอย่างไร ความแตกต่างระหว่างพวกเขาคืออะไร? พวกเขามีผลต่อคำสั่งที่คุณพิมพ์อย่างไร พวกเขาเกี่ยวข้องกับการลงทะเบียนแมโครเครื่องหมายตัวเลือกและประวัติคำสั่งอย่างไร สิ่งใดที่อยู่ข้างในซึ่งผู้อื่นตัวอย่างเช่นแท็บคือส่วนย่อยของหน้าต่างเหมือนในโปรแกรม GUI ทั่วไปหรือเป็นหน้าต่างส่วนย่อยของแท็บ สิ่งนี้เกี่ยวข้องกับอาร์กิวเมนต์บรรทัดคำสั่ง (อาร์กิวเมนต์หลายรายการ) ที่สามารถเข้าถึงได้ผ่าน:nextและ:prevอย่างไร และสุดท้ายสิ่งใดที่viเข้ากันได้(ถ้ามี) นี้

3
ปิดบัฟเฟอร์ที่เก่าที่สุดโดยอัตโนมัติหรือไม่
ฉันต้องการแก้ไขไฟล์จำนวนมากเมื่อเร็ว ๆ นี้เพื่อให้การเปลี่ยนแปลงเล็กน้อยในแต่ละไฟล์ ในการเข้าถึงแต่ละไฟล์ฉันเรียกดูผ่าน NERDtree และเปิดไฟล์หนึ่งไฟล์หลังจากนั้นอีกหนึ่งไฟล์ เมื่อฉันเปิดไฟล์มากขึ้นเรื่อย ๆ ฉันสังเกตว่าการใช้หน่วยความจำของฉันเพิ่มขึ้นเป็นจำนวนมาก เสียงเรียกเข้าปิดให้ฉันหน่วยความจำมากมายกลับ ฉันติดตั้งปลั๊กอินค่อนข้างน้อย แต่ฉันคิดว่าเหตุผลที่การใช้งานหน่วยความจำของฉันเพิ่มขึ้นอย่างมากเนื่องจากจำนวนบัฟเฟอร์ที่ฉันเปิดหลังจากการแก้ไขไม่กี่ครั้ง มีวิธี จำกัด จำนวนของบัฟเฟอร์ที่ vim ที่อนุญาตให้เปิดในครั้งเดียวโดยอัตโนมัติปิดบัฟเฟอร์เก่าที่เกี่ยวข้องกับการแก้ไขเวลาหรือไม่
9 buffers 

1
มีวิธีเขียนผลลัพธ์ของ“: ls” ไปยังไฟล์หรือไม่?
ฉันได้แยกไฟล์ออกเป็นจำนวนมากในขณะนี้และใช้เวลาสักครู่ในการค้นหาไฟล์เหล่านี้ มีคำสั่ง:ls > /tmp/filelistที่จะเขียนแยก / บัฟเฟอร์ปัจจุบันที่ฉันเปิดไฟล์หรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.