ดูรายการเอกสารล่าสุดใน Vim


131

มีวิธีดูรายการเอกสารล่าสุดที่คุณเปิดใน Vim หรือไม่? ฉันรู้ว่าฉันสามารถดูรายการกระโดดของเคอร์เซอร์ได้:juจากนั้นไปที่ตำแหน่งเคอร์เซอร์ในรายการ แต่ไม่เหมาะเพราะจะมีรายชื่อเอกสารเดียวกันหลายรายการในรายการ มีคำสั่งอื่นที่จะทำในสิ่งที่ฉันต้องการหรือไม่?

คำตอบ:


200

อย่าใช้ปลั๊กอินเว้นแต่คุณต้องการเมนูที่ดี จากVim Documentation: เริ่มต้น (หรือ:help old):

:ol[dfiles]

จากนั้นให้เป็นหนึ่งในการเปิดไฟล์ที่ระบุไว้ใช้: '0, '1, '2...'9


แสดงรายการไฟล์ที่มีเครื่องหมายเก็บไว้ในviminfoไฟล์

:bro[wse] ol[dfiles][!]

แสดงรายการชื่อไฟล์เช่นเดียวกับ:oldfilesจากนั้นแจ้งให้ป้อนหมายเลข เมื่อหมายเลขถูกต้องไฟล์จากรายการจะถูกแก้ไข ใช้!เพื่อละทิ้งบัฟเฟอร์ที่แก้ไข


1
ขอบคุณสำหรับคำตอบ แต่เมื่อฉันดูความช่วยเหลือสำหรับการเริ่มต้นคำสั่งนี้ไม่มีเหมือนในลิงค์ที่คุณให้มา การพยายามใช้คำสั่งนี้ทำให้เกิดข้อผิดพลาด "Not an editor command" ทำไมถึงเป็นแบบนี้?
chris

1
ใช้ได้ผลสำหรับฉัน @chris คุณรู้หรือไม่ว่าบิตในวงเล็บเป็นทางเลือกใช่ไหม? ie ": bro ol" เป็นคำย่อของ ": เรียกดูไฟล์เก่า"
Mr_Chimp

28
ในการเปิดไฟล์ในรายการให้ใช้: '0,' 1, '2, ... ' 9 (ฉันต้องไปที่คำถามอื่นเพื่อหาคำตอบฉันจึงโพสต์ไว้ที่นี่)
สตู

3
@Stew ลิงค์ไปยังคำถามนั้น? สิ่งเหล่านี้ดูเหมือนจะไม่ได้ผลสำหรับฉัน [UPDATE] มันใช้ได้จริงสำหรับฉันด้วย:browse oldfiles- ขอโทษ!
Aaron Gibralter

7
คุณไม่จำเป็นต้องเลื่อนไปที่ด้านล่างสุดของรายการไฟล์เก่าเพื่อเปิดไฟล์ในรายการ คุณจำหมายเลขได้จากนั้นกด q เพื่อออก จากนั้นในโหมดปกติให้กด '0,' 1, '2, ... เพื่อเปิดไฟล์ ฉันมักจะพบว่าการกด q เร็วกว่าการเลื่อนไปด้านล่าง
James Lawson

28

ปลั๊กอินที่ใช้ล่าสุด (MRU) ช่วยให้เข้าถึงรายการไฟล์ที่เปิด / แก้ไขล่าสุดใน Vim ได้อย่างง่ายดาย ปลั๊กอินนี้จะจัดเก็บชื่อไฟล์โดยอัตโนมัติเมื่อคุณเปิด / แก้ไขใน Vim

http://www.vim.org/scripts/script.php?script_id=521


2
ที่ใช้งานได้ดี ฉันเดาว่าฉันประหลาดใจที่ต้องเรียนรู้ปลั๊กอินเป็นสิ่งจำเป็น
chris

2
ความคิดที่ดีเกี่ยวกับ MRU แทนที่จะเป็นคำสั่งในตัวก็คือมันช่วยให้สามารถกรองชื่อไฟล์และการทำให้แท็บเสร็จสิ้นแทนที่จะจัดการกับรายการยักษ์ที่น่าเบื่อทุกครั้ง
เบ็น



2

ปลั๊กอินเป็นกลุ่ม: มินิยูเอฟเอ็กซ์แอลอาจช่วยคุณได้ รายการไฟล์ที่เปิดจะแสดงที่ด้านบนหรือด้านล่างของหน้าจอ:

ป้อนคำอธิบายภาพที่นี่

ในโหมดปกติเป็นกลุ่มให้พิมพ์: b $ {bufid}เพื่อข้ามไปที่บัฟเฟอร์$ {bufid} _thเช่นพิมพ์: b13เพื่อข้ามไปที่13บัฟเฟอร์ที่เช่น ngx_mail_ssl_module.c

คุณสามารถจับคู่การผูกที่สะดวกใน vimrc ของคุณได้เช่น:

" ------------------------------- minibufexpl mappings -----------------------------------
"let g:miniBufExplSplitBelow=1
nnoremap <silent> <leader>bn :bn<cr>
nnoremap <silent> <leader>bp :bp<cr>
nnoremap <silent> <leader>bf :bf<cr>
nnoremap <silent> <leader>bl :bl<cr>
nnoremap <silent> <leader>bt :TMiniBufExplorer<cr>

รับปลั๊กอินจากที่นี่: https://github.com/fholgado/minibufexpl.vim


2

นอกจากนี้จะoldfilesมีสิ่งที่ดีที่เรียกว่าtinyMRU

จุดประสงค์เดียวของ Vim-tinyMRU คือการจัดหาทางเลือกที่ใช้งานง่ายให้กับคำสั่ง built-in: oldfile ไม่มีอะไรมากไม่มีอะไรน้อย

มันง่ายมาก:

https://github.com/romainl/vim-tinyMRU/blob/master/plugin/tinymru.vim


2

ปลั๊กอินที่ดีคือhttps://github.com/Shougo/denite.nvim

คุณสามารถโทร:Denite file_oldเพื่อค้นหารายชื่อไฟล์เก่าได้อย่างไม่ชัดเจน โดยเฉพาะอย่างยิ่งการกดปุ่มEnterจะเป็นการเปิดไฟล์ที่เปิดล่าสุดขึ้นมาใหม่ การกำหนดทางลัดให้มีประโยชน์:

nnoremap <leader>o :Denite<space>file_old<CR>

นี้ช่วยประหยัดการกดแป้นพิมพ์ไม่กี่เทียบกับ:browse oldfiles, q, 1,Enter


0

วิธีที่ง่ายที่สุดสำหรับฉันในการเข้าถึงไฟล์ล่าสุดคือเพิ่มไฟล์ต่อไปนี้ในไฟล์. gvimrc

let g:netrw_sort_by           = 'time'

let g:netrw_sort_direction    = 'r'

บรรทัดเหล่านี้ทำให้ netrw จัดเรียงไฟล์ตามไฟล์ที่แก้ไขล่าสุด จากนั้นก็โทรหา: e. และเลือกไฟล์ที่ต้องการ

โซลูชันนี้คาดว่าไฟล์จะถูกบันทึกไว้ในไดเร็กทอรีหลักเดียวซึ่งระบุไว้ใน. gvimrc เช่น

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