2009-12-17 26 views
64

Tôi viết rất nhiều kịch bản shell và tôi liên tục phải nhập vào filepaths. Tôi tự hỏi nếu có ai biết cách để có được Vim để filepaths autocomplete trong khi ở chế độ chèn, giống như khi bạn đang ở trong vỏ yêu thích của bạn, bạn tab để hoàn thành đường dẫn của thư mục hoặc tập tin.Khi ở chế độ chèn Vim, có cách nào để thêm tự động hoàn thành filepath không?

Extra tín dụng nếu bạn có thể nhận CTRLD chức năng của vỏ vào chế độ chèn Vim (ví dụ: để xem những gì các tập tin/thư mục nằm trong đường dẫn hiện hành).

+0

câu hỏi thú vị, tôi rất muốn biết câu trả lời quá :) –

+0

@stephenmm Ctrl-D làm gì trong vỏ của bạn? Trong vỏ bash của tôi nó không có gì khi tôi nhập một số văn bản, khác đóng terminal. – alhelal

Trả lời

126

Đối file name hoàn omni, bạn có thể sử dụng:

Ctrl - XCtrl - F

+10

Một khoảnh khắc vim khác .... Cảm ơn. Tôi không sử dụng tab ở chế độ chèn anyway vì vậy hãy thêm tab này vào .vimrc của tôi: imap stephenmm

+1

Một cách sử dụng tốt khác cho ở chế độ chèn là . Thao tác này sẽ tự động hoàn thành từ bạn đang nhập dựa trên các từ khác trong tệp mà bạn đang làm việc. Tôi sử dụng nó mọi lúc khi nhập tên biến hoặc tên lớp. – Derek

+0

@stephenmm Mẹo bổ sung tuyệt vời! – Ergwun

17

ctrl - xctrl - f

:he compl-filename

14

Để xây dựng trên @CMS và @ Michael câu trả lời tuyệt vời

Khi sử dụng ctrl +Xctrl +f chuỗi lệnh nó sẽ hiển thị một danh sách các tập tin trong thư mục hiện tại. Tôi dành một phút để tìm chìa khóa phù hợp để di chuyển lên và xuống giữa các tên tập tin khác nhau. Các phím chính xác là Ctrl-n và Ctrl-p. Bạn có thể sử dụng hầu như bất kỳ khóa nào khác (như Không gian) để chọn và tiếp tục nhập.

Bên cạnh đó, nếu bạn chưa vào tập tin/thư mục mà bạn muốn chèn, bạn có thể đi xuống một cấu trúc cây tập tin như sau:

  1. Tùy chọn nhập một số phần của thư mục. Bạn thậm chí có thể sử dụng ../../ chẳng hạn!
  2. Nhấn ctrl +Xctrl +f và chọn mục đầu tiên trong cây từ danh sách.
  3. Bấm tiếp theo ctrl + f một lần nữa trong khi mục chính xác được tô sáng để hiển thị danh sách cấp độ tiếp theo xuống cấu trúc cây thư mục.

Bạn có thể tiếp tục làm điều này cho đến khi bạn tìm thấy thư mục/tệp bạn muốn chèn vào tài liệu.

+3

Ở bước 3 bạn có nghĩa là ctrl + x và ctrl + f? Bởi vì chỉ ctrl + f không hoạt động đối với tôi, nó cũng giống như ctrl + n. Btw nó không hoạt động ở đây nếu một thư mục có dấu cách trong đó: /. bạn có biết cách giải quyết không? – Rojo

0

Tôi gặp sự cố tương tự.Tôi tìm thấy giải pháp như:

sudo apt-get install realpath 

Và trong VIM naviagte nộp với trong bình thường loại chế độ:

:r !realpath /path/to/file 

Khi bạn đang điều hướng trong chế độ không chèn sau realpatch bạn có thể sử dụng chính của chúng tôi nút.

VOILA! TAB đang hoạt động trở lại!

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