2013-05-03 22 views
9

Có cách nào để sao chép đường dẫn của tệp trong plugin NERDtree của Vim không?Sao chép tệp đường dẫn bằng plugin NERDtree Vim

Tốt hơn: có một số plugin để thực hiện các thao tác giống như plugin SideBarEnhancements của Văn bản siêu việt không?

+0

Vui lòng chỉnh sửa câu hỏi của bạn để giải thích a) plugin ST đó làm gì và b) tại sao các tính năng tương đương trong Vim không phù hợp với hóa đơn. Ngoài ra, bạn muốn làm gì với tên tệp đó khi nó được sao chép? Chèn nó vào bộ đệm hiện tại? Dán nó vào một chương trình khác? Cẩn thận với vấn đề XY. – romainl

Trả lời

8

NERD_tree đi kèm với hệ thống tiện ích mở rộng riêng; chỉ cần đặt đoạn sau vào ~/.vim/nerdtree_plugin/yank_mapping.vim:

call NERDTreeAddKeyMap({ 
     \ 'key': 'yy', 
     \ 'callback': 'NERDTreeYankCurrentNode', 
     \ 'quickhelpText': 'put full path of current node into the default register' }) 

function! NERDTreeYankCurrentNode() 
    let n = g:NERDTreeFileNode.GetSelected() 
    if n != {} 
     call setreg('"', n.path.str()) 
    endif 
endfunction 

Tất nhiên, bạn có thể điều chỉnh phím mặc định (yy), và đăng ký ("; sử dụng + cho clipboard).

+0

Mẹo hay, ** Ingo **! Nó hoạt động, nhưng có một số cách để sao chép đường dẫn từ gốc của dự án thay vì '/ home'? –

+1

@ TárcioZemel: Ý của bạn là một đường dẫn liên quan đến gốc của dự án? Bạn có thể chuyển đổi nó thông qua hàm 'fnamemodify()' được xây dựng sẵn (bên trong lệnh gọi 'setreg()' ở trên. –

+1

Tuyệt vời, đúng vậy! Tôi chỉ thay đổi dòng đó thành 'call setreg ('"', (fnamemodify (n.path.str(), ':.'))) 'Và phép thuật đã xảy ra! Cảm ơn bạn một lần nữa! –

5

Đây là những gì tôi tìm thấy cho NERDTree với google nhanh chóng: CopyPath

Tuy nhiên có vẻ như bạn đang cố gắng để làm cho vim vào chữ Sublime. Vim có xu hướng có một triết lý rất khác về chỉnh sửa văn bản so với hầu hết các trình soạn thảo văn bản. Theo ý kiến ​​cá nhân của tôi thì tốt hơn là làm việc với vim hơn là chống lại nó. Đây là một bài đăng hay của Drew Neil về số Vimcasts giải thích về số benefit to split explorers.

Có lẽ cách thêm vim hơn để chèn đường dẫn là sử dụng hoàn thành tệp. Khi ở chế độ chèn, bạn có thể kích hoạt việc hoàn thành này bằng cách nhấn <c-x><c-f> sau đó đi qua trình đơn với <c-p><c-n> (tương ứng trước đó và tiếp theo). Nếu bạn muốn chèn đường dẫn bộ đệm hiện tại, bạn có thể dán nó qua thanh ghi % ví dụ: "%p hoặc trong chế độ chèn/dòng lệnh nhấn với <c-r>%.

Để biết thêm giúp đỡ see:

:h ins_completion 
:h i_CTRL-R 
:h quote% 
:h registers 
2

Tôi đoán những gì bạn thực sự cần là một menu ngữ cảnh như thế Plugin tuyệt vời?

Được tích hợp sẵn với NERDTree.

Chỉ cần nhấn m trên nút bạn đã đánh dấu và bạn sẽ thấy cửa sổ pop mới đang hỏi bạn những gì bạn muốn làm. Các chức năng cơ bản là: Thêm, Xóa, Di chuyển, Sao chép.

Ngoài ra còn có một plugin để cho phép bạn tìm kiếm (sử dụng grep), cho một tệp hoặc toàn bộ thư mục được đánh dấu.

NERDTree cũng cung cấp API để bạn dễ dàng tạo bất kỳ hành động tùy chỉnh nào trong cửa sổ ngữ cảnh đó.

+0

Ngoài ra còn có tùy chọn (l) Danh sách, có thể là những gì được hỏi về – valk