Làm cách nào để giữ danh sách bộ đệm cho mỗi cửa sổ trong Vim?


15

Tôi ngạc nhiên rằng tôi đã không thể tìm thấy câu trả lời cho điều này, nhưng có lẽ tôi đang thiếu một điều hiển nhiên: có thể giữ một danh sách bộ đệm trên mỗi cửa sổ không? Tôi thường có khoảng 4 lần phân tách và mỗi phân chia thường phục vụ một mục đích cụ thể: CSS trong một, JS trong một phân tách khác, HTML trong một vài phân tách khác, v.v.

Những gì tôi có thể đang tìm kiếm là một plugin thực hiện điều này. Gần đây tôi đã sử dụng BufExplorer, có cài đặt cho phép bạn giữ danh sách bộ đệm trên mỗi tab, nhưng không phải trên mỗi cửa sổ.

Tôi thực sự thích danh sách MRU mà BufExplorer có, nhưng tôi thấy khó chịu vì nó dựa trên danh sách bộ đệm toàn cầu của tôi - thứ tôi muốn là lịch sử MRU trên mỗi cửa sổ.


Bạn không thể tìm thấy nó bởi vì nó chưa được xây dựng. Hầu hết các nước láng giềng gần nhất được xác định trong Hỏi & Đáp này
New Alexandria

Câu trả lời:


1

IMHO, Những gì bạn thực sự cần là một người quản lý Không gian làm việc.

bạn có thể tìm một cái cho vim @ http://www.vim.org/scripts/script.php?script_id=1410

Nó sẽ cung cấp cho bạn các lệnh sau:

:WsAddFile              Add a new file to the workspace.                  
:WsAddGroup             Add a new group to the workspace.                 
:WsClose                Close the workspace window.                       
:WsInsertFile           Insert a file.                                    
:WsInsertGroup  Insert a group.                                           
:WsOpen         Open a workspace and display it in a window.              
:WsRun          Run a command using the selected unquoted file names.     
:WsRunq         Run a command using the selected quoted file names.       
:WsSave         Save the workspace.                                       
:WsSessionOpen  Open the workspace and Vim session.                       
:WsSessionSave  Save the workspace and the Vim session.                   
:WsToggle               Open or Close the workspace window. 

Tôi có một ảnh chụp màn hình làm việc với trình quản lý Workspace với hơn 4 cửa sổ được đăng trên fb của tôi , bạn có thể xem nó ở đó (công khai).

Đây không chính xác là một danh sách các bộ đệm như bạn muốn, nhưng bạn có thể mở các tệp trong các cửa sổ khác nhau và trong nhiều bộ đệm trong cùng một cửa sổ.

Trong trường hợp sau, trình quản lý không gian làm việc sẽ phục vụ như một danh sách bộ đệm. Như bạn có thể thấy trong ảnh chụp màn hình, tôi đã nhóm các tệp thành các nhóm khác nhau.

Đây là gần như những gì bạn có thể nhận được, AFIK.

Ngày tốt.


0

Tại sao shoehorn mà cấp quản lý cửa sổ vào vim? Thỉnh thoảng tôi sử dụng các cửa sổ tách - Tôi đã ánh xạ Ctrl-F thành lệnh grep kiểu tìm trong tệp xuất hiện trong cửa sổ chia và thỉnh thoảng tôi cũng sử dụng vimdiff.

Nhưng bạn có thực sự muốn quản lý cửa sổ vĩnh viễn trong vim? Trình quản lý kết nối PuTTY và tất cả các loại trình giả lập thiết bị đầu cuối cho phép bạn phân chia các thiết bị đầu cuối theo cách bạn muốn, sau đó chạy các phiên vim riêng biệt trong mỗi phiên.


Bạn có thể chia sẻ đăng ký giữa các trường hợp vim? Đây luôn là lý do số một của tôi vì không muốn nhiều phiên bản vim chạy: tôi không thể yanktừ cái này và putcái kia.
brianmearn

0

mở NERDTree ở bên trái. >

Tôi có một số bộ đệm mở (chỉ có một bộ đệm hiển thị trong chế độ xem chính ... gọi nó là "bộ đệm 1")

Bây giờ tôi đi đến NERDTree và chọn một tệp khác mà tôi chỉ muốn xem thực sự nhanh chóng hoặc sao chép một cái gì đó từ đó. Vì vậy, tôi mở tệp đó từ NERDTree và đệm1 được ẩn chính xác và bây giờ tôi đang xem bộ đệm tôi vừa mở (gọi nó là bộ đệm 2)

Bây giờ tôi muốn thoát hoàn toàn bộ đệm 2 này và quay lại chỉnh sửa bộ đệm 1, nhưng khi tôi thực hiện: q trên bộ đệm 2, cuối cùng tôi chỉ nhìn vào một NERDTree lớn và tôi phải hiển thị lại bộ đệm1. ... [hiển thị phần còn lại của trích dẫn]

Tôi không sử dụng Nerdtree, nhưng có vẻ như bạn nên gõ Ctrl- ^ (có thể là Ctrl + phím 6) để chuyển về bộ đệm1.


0

Tôi không biết về một plugin như vậy.

Một cách nhanh chóng để mở bộ đệm của một tệp cụ thể là sử dụng lệnh: FufBuffer của Fuzzy Downloader. Nó sẽ mở một danh sách tất cả các bộ đệm đã mở (không bao gồm bộ đệm trong cửa sổ hiện tại của bạn) để dễ dàng truy cập. Tôi đã có ràng buộc với tôi, fn. Nó sẽ cho phép tôi, ví dụ, nhanh chóng xem tất cả các tệp css với, fncss hoặc tất cả các tệp js với, fnjs. Fuzzy Downloader là tuyệt vời để có được tệp / bộ đệm / thư mục / vv mà bạn muốn với nỗ lực tối thiểu (không chỉ trường hợp sử dụng cụ thể này).

Tuy nhiên, tôi nghi ngờ bạn đang tìm kiếm thứ gì đó cho phép bạn sử dụng: bn và: bN (hoặc bất cứ thứ gì bạn có ánh xạ tới, không thể nhớ nếu ctrl-n / p là mặc định hoặc tùy chỉnh của tôi) để chuyển đổi giữa các bộ đệm của bạn một loại tệp cụ thể.

Có lẽ, bạn có thể tạo một plugin cung cấp cho bạn các lệnh để cho phép chuyển sang bộ đệm trước đó / tiếp theo cùng loại với tệp của bộ đệm hiện tại trong cửa sổ hiện tại.


BTW, tôi nghĩ rằng việc quản lý các danh sách bộ đệm riêng biệt này sẽ giúp giảm bớt đau đớn.
Hannes

-1

Đây không phải là một câu trả lời tổng thể, nhưng có vẻ như vim giữ các bộ đệm # và% riêng biệt cho mỗi cửa sổ. Vì vậy, bạn có thể nhanh chóng luân phiên giữa hai tệp trong một cửa sổ (sử dụng CTRL- ^) và hai tệp khác nhau trong cửa sổ khác. Danh sách bộ đệm vẫn là tất cả các bộ đệm bạn đã thêm mặc dù.


Đây thực sự là một bình luận nhưng tôi chưa thể bình luận vì vậy tôi đăng một câu trả lời bị bỏ phiếu vì nó không trả lời câu hỏi. Đi hình.
mondaugen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.