Khi tôi mở một tệp mới trong Vim và tôi sử dụng hoàn thành tab, nó sẽ hoàn thành toàn bộ tên tệp thay vì thực hiện khớp một phần như Bash. Có một tùy chọn để làm cho việc hoàn thành tab tên tệp này hoạt động giống như Bash không?
Khi tôi mở một tệp mới trong Vim và tôi sử dụng hoàn thành tab, nó sẽ hoàn thành toàn bộ tên tệp thay vì thực hiện khớp một phần như Bash. Có một tùy chọn để làm cho việc hoàn thành tab tên tệp này hoạt động giống như Bash không?
Câu trả lời:
Cá nhân tôi sử dụng
set wildmode=longest,list,full
set wildmenu
Khi bạn gõ tab đầu tiên, nó sẽ hoàn thành càng nhiều càng tốt. Lượt truy cập tab thứ hai sẽ cung cấp một danh sách. Các tab thứ ba và tiếp theo sẽ chuyển qua các tùy chọn hoàn thành để bạn có thể hoàn thành tệp mà không cần thêm khóa.
Bash-like sẽ chỉ là
set wildmode=longest,list
nhưng đầy đủ là rất tiện dụng.
set wildmode=longest,5full,list
. Với nhiều kết quả đầy đủ là vô ích nhưng rất tiện dụng với số ít. Sẽ thật hoàn hảo với một cái gì đó như "chỉ hiển thị đầy đủ nếu hoàn thành phù hợp trên một màn hình dòng"
Hành vi gần nhất với sự hoàn thành của Bash phải là
set wildmode=longest:full,full
Với một vài ký tự được gõ, nhấn tab một lần sẽ cung cấp cho tất cả các trận đấu có sẵn wildmenu
. Điều này khác với câu trả lời của Michael mở ra một cửa sổ giống như quickfix bên dưới dòng lệnh.
Sau đó, bạn có thể tiếp tục nhập phần còn lại của các ký tự hoặc nhấn lại tab để tự động hoàn thành với kết quả khớp đầu tiên và khoanh tròn xung quanh nó.
Nếu bạn không muốn đặt wildmenu, bạn luôn có thể nhấn Ctrl+ Lkhi bạn muốn mở tệp. Ctrl+ Lsẽ hoàn thành tên tệp như hoàn thành Bash.
<Tab>
hoàn thành chuỗi hiện tại càng xa càng tốt (như CTRL-L
trong Vim) và <Tab><Tab>
hiển thị danh sách các kết quả khớp có thể (như CTRL-D
trong Vim).
Tôi giả sử rằng bạn đang sử dụng tự động hoàn tất trong Vim qua Ctrl+ Nđể tìm kiếm thông qua bộ đệm hiện tại. Khi bạn sử dụng lệnh này, bạn sẽ nhận được một danh sách các giải pháp; chỉ cần lặp lại lệnh để đi đến mục tiếp theo trong danh sách. Điều này cũng đúng với tất cả các lệnh tự động hoàn thành. Trong khi họ điền vào toàn bộ từ, bạn có thể tiếp tục di chuyển qua danh sách cho đến khi bạn đến nơi bạn muốn sử dụng.
Đây có thể là một lệnh hữu ích hơn: Ctrl+ P. Sự khác biệt duy nhất là Ctrl+ Ptìm kiếm ngược trong bộ đệm trong khi Ctrl+ Ntìm kiếm chuyển tiếp ... Thực tế, cả hai sẽ cung cấp một danh sách với các phần tử giống nhau và chúng có thể chỉ xuất hiện theo một thứ tự khác.