2010-09-14 26 views
16

Khi tôi chỉnh sửa nhiều tệp, đôi khi tôi muốn chuyển qua lại giữa các tệp được chỉnh sửa lần cuối. Tôi biết về : bn (ext): bp (revious) để chuyển giữa các bộ đệm nhưng chúng không giữ lịch sử của các tệp được sử dụng gần đây nhất. Thay vào đó, họ sử dụng thứ tự các tập tin được mở. Ví dụ, nếu tôi mở các tập tin theo thứ tự nàyVim: Điều hướng đến Bộ đệm Trước và Tiếp theo trong Lịch sử Chỉnh sửa

A, B, C 

một lịch sử chuyển hướng của tôi sẽ là

A, B, C, B 

sau đó : bprevious trong bộ đệm cuối cùng (B) sẽ gửi cho tôi để A. Có một lệnh hoặc plugin sẽ gửi tôi đến C? Tôi biết về Ctrl-6, nhưng điều này chỉ chuyển đổi giữa hai bộ đệm cuối cùng. Tôi muốn đi qua lại nhiều bộ đệm.

Trả lời

16

Tôi đã muốn cùng chức năng trong một thời gian khá bây giờ là tốt. Câu hỏi của bạn đã truyền cảm hứng cho tôi để cuối cùng làm điều gì đó về nó. Có một cái nhìn tại bufsurf, một plugin nhỏ cung cấp các chức năng cần thiết. Nó cung cấp cho người dùng hai lệnh:

:BufSurfBack 

để di chuyển về phía sau trong lịch sử, và tương tự:

:BufSurfForward 

để di chuyển về phía trước trong lịch sử. Đối với mỗi cửa sổ hoặc tab, lịch sử điều hướng riêng biệt được lưu trong bộ nhớ. Vui lòng cho tôi biết nếu bạn gặp bất kỳ sự cố nào, tôi chưa có cơ hội thử nghiệm rộng rãi này.

+0

Điều này thật tuyệt vời, cảm ơn bạn rất nhiều! Hoạt động hoàn hảo! – lassej

+0

@Ton van den Heuvel tuyệt vời !! Bạn bằng cách nào đó có thể thiết lập lại lịch sử? Sau một thời gian, tôi đã xây dựng một lịch sử lớn của các tập tin và tôi muốn bắt đầu làm việc trên một cái gì đó khác. Tôi có thể xóa lịch sử hoặc đóng cửa sổ theo cách thông minh không? – Cotten

+0

@Cotten, cảm ơn! Đặt lại là không thể theo như tôi biết. Nó không phải là khó khăn khủng khiếp để thực hiện mặc dù. Bạn có thể nộp một vé hoặc tốt hơn thậm chí gửi yêu cầu kéo :) https://github.com/ton/vim-bufsurf –

5

Kiểm tra plugin bộ đệm lustyjuggler. Thật tuyệt vời cho việc này. Nó giữ các bộ đệm theo thứ tự được sử dụng cuối cùng và ánh xạ chúng vào các phím hàng chủ để bạn có thể nhanh chóng quay lại giữa chúng.

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

Bạn có thể nhìn thấy nó demo vào cuối thu hình màn ảnh vim gần đây nhất của tôi là tôi đi qua bộ đệm: http://lococast.net/archives/185

+0

Xin chào Rick, cảm ơn câu trả lời, nhưng tôi đang tìm một giải pháp mà tôi không phải chuyển sang chế độ khác để di chuyển giữa các bộ đệm gần đây. Lý tưởng nhất là tôi có thể lập bản đồ Shift-H và Shift-L cho các hành động trước đó và tiếp theo. – lassej

+1

@lassej: Chỉ cần tìm các lệnh từ plugin thực hiện những gì bạn muốn và ánh xạ chúng tới các phím bạn muốn ánh xạ tới. – Cascabel

Các vấn đề liên quan