Gần đây tôi đã giảm đáng kể số lượng plugin tôi đang sử dụng vì vậy tôi đang tìm kiếm câu trả lời chỉ bằng các tính năng Vim tích hợp.
Tôi đã nhận thấy một lỗ hổng trong quy trình làm việc của mình khi tôi chỉnh sửa rất nhiều bộ đệm: Tôi đang sử dụng bộ đệm và tôi muốn chuyển sang một bộ đệm khác mà tôi không nhớ tên và đó không phải là bộ đệm thay thế . Vì vậy, việc sử dụng :b#
là không thể và sử dụng hoàn thành với lệnh :b
cũng không thuận tiện.
Để làm điều đó tôi đã làm như sau:
- Sử dụng đầu tiên
:buffers
để có được danh sách các bộ đệm mở - Ghi nhớ số lượng bộ đệm tôi muốn sử dụng
- Nhấn Enterđể đóng danh sách bộ đệm
- Sử dụng
:bX
vớiX
số lượng bộ đệm để sử dụng.
Quy trình này có vẻ khá nặng đối với tôi vì vậy tôi đã thêm các dòng sau vào
.vimrc
:
" Improve the navigation in the buffers
nnoremap <Leader><S-b> :B<CR>
command! B call Buffers()
function! Buffers()
execute "buffers"
let buffer=input("Enter a buffer:")
execute "b" . buffer
endfunction
Điều này cho tôi một lệnh :B
(và ánh xạ) gọi hàm :buffers
chờ đầu vào và cuối cùng gọi :b
theo sau là đầu vào.
Nó hoạt động tốt nhưng tôi ngạc nhiên khi tôi phải phát triển một chức năng như vậy: thông thường Vim có quy trình làm việc mặc định khá hiệu quả nên tôi tự hỏi liệu có cách nào tốt hơn để chuyển sang bộ đệm mà tôi không biết gì ngoại trừ rằng nó đã được mở trong phiên chỉnh sửa của tôi.
:b#
không phải là điều tôi đang tìm kiếm nhưng vâng, thực tế là bạn có thể lưu một tổ hợp phím bằng cách nhập trực tiếp :b
mà không cần nhấn enter
trước đó là điều thú vị. (Quả thực đó có thể là quá nhẹ để có thể trả lời, nhưng nó đáng để nhận xét :-))
#
nhân vật thay thế cho một số (bộ đệm), chứ không phải là #
nhân vật theo nghĩa đen .
:ls
theo sau:b#
(không cần phải quay lại hoặc thoát trước, có thể truy cập trực tiếp từ danh sách bộ đệm trong 'ls'.) (Đăng dưới dạng nhận xét vì có vẻ không đủ để trả lời? Cũng tự hỏi nếu tôi Tôi đang thiếu một cái gì đó và trả lời sai câu hỏi.)