Hoàn thành một phần tab giống như Bash cho tên tệp trong Vim


16

Trong Bash, khi có một số tệp có cùng tiền tố và tôi nhập một phần của tiền tố và nhấn Tab, nó sẽ hoàn thành tiền tố chung và cho phép tôi tiếp tục nhập để phân biệt giữa các kết quả có thể.

Trong Vim, khi có một số tệp có cùng tiền tố và tôi nhập một phần của tiền tố và nhấn Tab, nó sẽ hoàn thành toàn bộ kết quả khớp đầu tiên và sau đó cho phép tôi chọn trong số tất cả các kết quả khớp. Để giảm tập hợp, tôi phải xóa lùi cho đến khi tôi đến cuối phần chung, sau đó nhập thêm một số và nhấn Tablại.

Tôi thường có rất nhiều tệp trong đó có một tiền tố phổ biến dài và tệp tôi muốn không nằm trong số đầu tiên (ví dụ: một thư mục chứa các tệp dự án có chứa, trong số những thứ khác, các tệp tạo tệp khác nhau có tên Makefile.{whatever}).

Tôi có thể làm cho Vim hoàn thành giống Bash hơn để lưu nhiều nét chính không?

Phần thưởng nếu điều này cũng có thể áp dụng cho các lần hoàn thành khác (ví dụ: các giá trị enum mà tất cả đều có cùng một tiền tố)

Câu trả lời:


16

Bạn có thể sử dụng wildmodetùy chọn để kiểm soát điều này.

Nếu bạn sử dụng :set wildmode=list:longest, bạn sẽ có hành vi tương tự như bash.

Cá nhân tôi thích sử dụng hơn :set wildmode=list:longest,full; điều này sẽ liệt kê các lần hoàn thành, nhưng trên lần Tab nhấn thứ hai , bạn có thể xoay vòng giữa các mục (và Shift+Tabđể quay vòng theo chiều ngược lại).

Điều này áp dụng cho tất cả các hoàn thành được thực hiện bởi Vim.

Xem: :help 'wildmode'


3
Không chèn hoàn thành chế độ! Bạn cần completeoptcho điều đó.
Giàu

Cảm ơn! wildmode và Completeeopt chính xác là những gì tôi đang tìm kiếm!
John O'M.
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.