ฉันต้องการเข้าถึงไฟล์ล่าสุดที่ฉันเปิดแล้วปิดใน GVim ฉันเปิดและปิด GVim บ่อยๆ ฉันต้องการเข้าถึงไฟล์ล่าสุดจากเซสชันก่อนหน้านี้ด้วย
GVim เก็บไฟล์ล่าสุดไว้ที่ไหนสักแห่งเป็น Word และแอปเดสก์ท็อปอื่น ๆ อีกมากมายหรือไม่ จะเข้าถึงได้อย่างไร?
ฉันต้องการเข้าถึงไฟล์ล่าสุดที่ฉันเปิดแล้วปิดใน GVim ฉันเปิดและปิด GVim บ่อยๆ ฉันต้องการเข้าถึงไฟล์ล่าสุดจากเซสชันก่อนหน้านี้ด้วย
GVim เก็บไฟล์ล่าสุดไว้ที่ไหนสักแห่งเป็น Word และแอปเดสก์ท็อปอื่น ๆ อีกมากมายหรือไม่ จะเข้าถึงได้อย่างไร?
คำตอบ:
อย่างน้อย terminal vim จะเก็บไฟล์สิบไฟล์ก่อนหน้านี้ไว้~/.viminfo
ในส่วน filemarks คุณสามารถใช้'0
, '1
, '2
...'9
ที่จะกระโดดในหมู่พวกเขา
(น่าจะเป็นประโยชน์สำหรับ '0
การกลับไปยังไฟล์ล่าสุดที่คุณแก้ไขเว้นแต่หน่วยความจำของคุณจะแข็งแกร่งกว่าของฉัน)
คุณยังสามารถใช้:browse oldfiles
คำสั่งเพื่อรับเมนูที่มีตัวเลข
0
- 9
เป็นเครื่องหมายสำหรับการนำทางอย่าทำเครื่องหมายด้วยตนเอง
:browse old
get file-list และเข้าไปq
เพื่อเลือกไฟล์ที่จะแก้ไข
:e #<1
:h c_#<
เปิดแฟ้มที่ผ่านมาเห็น
rm
ใช้วิธีการข้างต้น
วิธีที่ดีที่สุดที่ฉันใช้คือ
:browse oldfiles
วิธีที่ง่ายที่สุดในกลุ่ม
มีmru.vimซึ่งเพิ่ม:MRU
คำสั่ง
คำตอบที่ช้ามากที่นี่ ... อธิบายเกี่ยวกับคำตอบ @sarnolds - คุณสามารถดูประวัติไฟล์ด้วยคำสั่ง oldfiles @see: h oldfiles หรือ: h viminfo
:oldfiles
นอกจากนี้คุณสามารถจัดการไฟล์แบบละเอียดพร้อมมุมมองและเซสชัน ... @see: h mkview และ: h mksession สำหรับข้อมูลเฉพาะ ...
:oldfiles
ไฟล์. หนึ่งสามารถทำได้โดยใช้:browse
คำสั่งแบบโต้ตอบตามที่อธิบายโดย @sarnold แต่ก็สามารถทำได้ด้วยตนเองโดยใช้โดย:e #<N
ที่ N คือตัวเลขจากoldfiles
รายการ
มีดสวิสมีดสลับไฟล์ปลั๊กอิน CtrlPซึ่งเป็นส่วนหนึ่งของjanus distribution มี:CtrlPMRU
คำสั่งพร้อมการค้นหาอัจฉริยะระหว่างไฟล์ที่เพิ่งใช้
หมายเหตุ:
CtrlP
รักษารายการของไฟล์ที่ใช้ล่าสุดในรูปแบบg:ctrlp_cache_dir."mru/cache.txt"
. ไม่ได้ใช้ viminfo ( set viminfo?
) ซ้ำซึ่งมีรายการเครื่องหมายไฟล์ สิ่งนี้มีประโยชน์หากคุณต้องการล้างรายการนี้
ใช้:bro ol
จากนั้นกดหมายเลขที่ตรงกับไฟล์ที่คุณต้องการเปิด
CtrlPปลั๊กอินช่วยให้คุณสามารถค้นหาผ่านไฟล์ที่ใช้เมื่อเร็ว ๆ นี้ของคุณเป็นไฟล์ในไดเรกทอรีปัจจุบันด้วยคำสั่งนี้
nnoremap <c-p> :CtrlPMixed<cr>
สิ่งนี้ช่วยให้คุณไม่ต้องยุ่งยากกับการจัดการกับคำสั่ง Vim และปลั๊กอิน MRU ซึ่งทั้งสองอย่างนี้ไม่อนุญาตให้คุณค้นหาไฟล์ที่คลุมเครือซึ่งเป็นสิ่งสำคัญเมื่อทำงานในโครงการขนาดใหญ่
MRU มีคุณสมบัติมากมายตามที่อธิบายไว้ที่นี่: http://www.thegeekstuff.com/2009/08/vim-editor-how-to-setup-most-recently-used-documents-features-using-mru-plugin/
ดังที่เห็นในความคิดเห็นที่นี่ (http://stackoverflow.com/questions/571955/undo-close-tab-in-vim) ไฟล์ของคุณอาจยังเปิดอยู่ในบัฟเฟอร์:
:ls " get the buffer number
:tabnew +Nbuf " where N is the buffer number
ตัวอย่างเช่นคุณสามารถเปิดบัฟเฟอร์ที่สามอีกครั้งในแท็บใหม่ (ใช้: e แทนหากคุณไม่ใช้แท็บ):
:tabnew +3buf
คุณอาจสามารถเข้าถึงรายการจากบรรทัดคำสั่งด้วย:
grep '^>' ~/.viminfo|cut -c3-|sed 's,~,'"$HOME"','
คำอธิบาย:
grep '^>' ~/.viminfo #find the list of recent files
cut -c3- #remove the first 2 characters
sed 's,~,'"$HOME"',' #replace ~ with absolute path
คุณอาจมีนามแฝง bash หากคุณใช้สิ่งนี้เป็นประจำ
alias vim_mru="grep '^>' ~/.viminfo|cut -c3-|sed 's,~,'\"$HOME\"','"
เพิ่ม 2 เซ็นต์ของฉันที่นี่เพราะ fzf ถูกไม่ได้กล่าวถึงก่อนหน้านี้ซึ่งเป็นเช่นเครื่องมือที่ยอดเยี่ยม:
fzf.vimมี:History
คำสั่งที่ช่วยให้คุณค้นหามากที่สุดไฟล์ที่คุณใช้เมื่อเร็ว ๆ นี้ในเลือนและค้นหาขณะที่คุณพิมพ์ลักษณะ
ฉันปรับแต่งพฤติกรรม (ค่าเริ่มต้น) ของคำสั่งนี้โดยไม่ให้ fzf เรียงลำดับรายการผลการค้นหาใหม่ให้ตรงที่สุด: ฉันต้องการให้ลำดับของชื่อไฟล์ที่ตรงกันทั้งหมดเป็นลำดับที่ไฟล์เหล่านี้ถูกใช้ครั้งล่าสุด
ในการปรับแต่งนี้ให้สำเร็จฉันได้เพิ่มสิ่งต่อไปนี้ใน. vimrc ของฉันเพื่อแทนที่History
คำสั่งเริ่มต้นที่กำหนดโดยปลั๊กอิน fzf.vim:
command! -bang -nargs=* History
\ call fzf#vim#history({'options': '--no-sort'})
:ls
เพื่อแสดงรายการไฟล์ล่าสุดพร้อมหมายเลขบัฟเฟอร์ในคอลัมน์ทางซ้ายมือ
แล้วทำ :b{buffer-number}
กระโดดไปที่นั่น
ตัวอย่าง:
:ls
แสดงรายการไฟล์ ฉันต้องการข้ามไปยังไฟล์ที่สามสุดท้ายที่ฉันเยี่ยมชม
:b3
จะพาฉันไปที่นั่น
เพื่อการค้นหาที่รวดเร็วขึ้นให้จับคู่:ls
กับบางสิ่งเช่น<Leader>.
ในไฟล์. vimrc ของคุณ
นอกจากนี้คุณสามารถกลับไปด้วย+ctrlO