2010-05-17 45 views
7

thể trùng lặp:
Open file from complete path under cursor in VimVim tập tin mở dưới con trỏ

Hãy nói rằng tôi có cây tập tin sau đây:

/ 
    include/ 
    library/ 
     a.hpp 
     b.hpp 
    src/ 
    a.cpp 
    b.cpp 

/src/a.cpp tập tin sau đây:

#include "a.hpp" 
#include "b.hpp" 

Tôi luôn mở Vim ở thư mục gốc. Vì vậy, khi tôi muốn tải a.hpp tôi làm:

:tabnew include/library/a.hpp 

hay:

:tabnew **/a.hpp 

Tôi muốn để lập bản đồ <F4> để mở file dưới con trỏ trong một tab mới, sử dụng một tìm kiếm đệ quy.

Tôi đã thử các lệnh lập bản đồ sau:

:map <F4> :tabnew **/expand("<cfile>")<cr> 

Nhưng rõ ràng, điều này không thể làm việc, vì nó cố gắng để mở file "/expand(" để thay thế.

Bất kỳ đầu mối nào về cách tôi có thể làm điều đó?

Cảm ơn.

Trả lời

3

:help gf đưa ra gợi ý về cách thực hiện điều này.

:nmap <F4> :tabe **/<cfile><cr>

Dường <cfile> được tự động mở rộng trong ánh xạ.

+0

Điều này không thể hoạt động (và không hoạt động) vì ' 'được đánh giá bằng lệnh': execute' và không khi ánh xạ được sử dụng. – ereOn

+0

Bah, bạn nói đúng. Nó hoạt động tốt khi bạn xác định bản đồ trong khi con trỏ nằm trong trường hợp thử nghiệm của bạn;) –

+0

Tôi vừa phát hiện ra và sau đó nhìn thấy bản chỉnh sửa của bạn! Cảm ơn anyway;) Tôi sẽ chấp nhận điều đó. – ereOn

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