2012-11-10 31 views
6

Tôi đang cố gắng sử dụng compl-filename tính năng vim của (Ctrl-XCtrl-F) để hoàn thành đường dẫn trong chế độ INSERT, nhưng Tôi không thể tìm ra cách đi qua các thư mục mà không cần (tạm thời) kết thúc chế độ hoàn thành:thư mục Traversing với hoàn tên file vim trong chế độ chèn (Ctrl-X Ctrl-F)

Giả sử tôi muốn hoàn tất đường dẫn /etc/sysconfig/network-scripts/ifup.

Tôi muốn để có thể làm điều gì đó như:

 
/eCtrl-XCtrl-F 
/etc/ 
/etc/sysCtrl-F 
/etc/sysconfig/ 
/etc/sysconfig/netCtrl-F 
/etc/sysconfig/netconsoleCtrl-N 
/etc/sysconfig/networkCtrl-N 
/etc/sysconfig/network-scripts/ 
/etc/sysconfig/network-scripts/ifupCtrl-Y 
/etc/sysconfig/network-scripts/ifup 

Vấn đề là, ngay sau khi tôi bắt đầu gõ * sau một trận đấu đường dẫn (như /etc/), nó kết thúc tên tập tin hoàn. Tôi muốn nó ở lại hoàn thành tên tập tin, vì vậy mà tôi vẫn có thể sử dụng Ctrl-F, Ctrl-N, vv Kể từ khi nó kết thúc hoàn thành, tôi phải gõ Ctrl-XCtrl-F một lần nữa để khởi động lại nó, và menu popup hoàn thành hữu ích biến mất trong thời gian chờ đợi.

Có tùy chọn nào tôi có thể đặt để thay đổi điều này không?

* By ‘gõ’ ở đây, tôi đề cập đến nhân vật trong 'isfname' - tất nhiên, gõ ký tự khác (như không gian hoặc dấu chấm câu) không nên tiếp tục tên file hoàn thành.

Trả lời

3

Tôi không chắc chắn chính xác những gì bạn đang nói, nhưng bạn chỉ có thể nhấn Ctrl-X Ctrl-F một lần nữa vào một thư mục trong khi bạn đang ở trong menu hoàn thành để mở rộng nó. Bạn không cần phải đóng menu trước. Tôi chỉ giữ Ctrl được giữ và nhấn xf để duyệt qua thư mục, np để di chuyển lên và xuống và w để sao lưu.

Nếu bạn không sử dụng :h i_CTRL-F thì bạn có thể remap lại. Ví dụ:

inoremap <C-f> <C-x><C-f> 
+0

Nếu tôi gõ '^ XF' ngay sau khi hoàn thành một phần của đường dẫn (kết thúc bằng'/'), tôi có thể phải cuộn qua nhiều đường để tìm đường mà tôi muốn, mà không thể hạn chế tùy chọn bằng cách nhập các ký tự thừa. '^ XFP' ít nhất sẽ cho phép tôi nhập các ký tự thừa, nhưng rất khó và không cần thiết. – codebeard

+0

@codebeard Bạn không bao giờ cần phải gõ '^ XFP'. Nếu bạn bắt đầu gõ '/ et' thì bạn có thể nhấn'^XF'. Sau đó, gõ 'X^XF' (ví dụ) để vào'/etc/X11/'. Bạn chỉ có thể bắt đầu nhập khi bạn đang ở trong menu mà không sử dụng '^ P'. Tôi hoàn toàn có thể thiên vị ở đây, nhưng tôi thực sự có thể tưởng tượng một cách tốt hơn để làm điều đó. Bạn có thể 'inoremap ' nếu bạn muốn nó hoạt động như hoàn thành bash. – Conner

+0

Trừ khi tôi gõ 'X' ở đây, tôi mất menu bật lên, có lẽ là mục tiêu sử dụng hoàn thành tên tệp ở địa điểm đầu tiên - Tôi hiếm khi sử dụng nó để lưu gõ (tôi có thể nhập 30 ký tự tên đường dẫn trong thời gian ít hơn nó cần để gây rối xung quanh với các tổ hợp phím), nhưng tôi sử dụng nó khi tôi không thể nhớ con đường tôi đang tìm kiếm. Ngoài ra, 'inoremap ...' có lẽ không chính xác với tầm quan trọng của khóa '' trong việc chỉnh sửa hầu hết các tệp. – codebeard

0

Vui lòng sử dụng chèn "i" đầu tiên trước khi sử dụng CNTR + x + f. Tôi đã ở trong tình trạng tương tự. :)

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