2013-05-03 14 views
9

Czy istnieje sposób na skopiowanie ścieżki pliku w wtyczce NERDtree Vima?Skopiuj plik ścieżki za pomocą wtyczki NERDtree Vim

Lepiej: czy jest jakaś wtyczka do wykonania tych samych operacji, co plugin Sublime Text w wersji SideBarEnhancements?

+0

Edytuj pytanie, aby wyjaśnić a) co robi wtyczka ST i b) dlaczego równoważne funkcje w Vim nie pasują do rachunku. Co chcesz zrobić z tą nazwą pliku po skopiowaniu? Wstawić go do bieżącego bufora? Wkleić go w innym programie? Uważaj na problem XY. – romainl

Odpowiedz

8

NERD_tree ma swój własny system rozszerzeń; wystarczy umieścić następujący fragment do ~/.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 

Oczywiście, można dostosować klucz domyślny (yy) i zarejestrować ("; używać + do schowka).

+0

Świetna wskazówka, ** Ingo **! Działa, ale jest jakiś sposób na skopiowanie ścieżki z katalogu głównego projektu zamiast '/ home'? –

+1

@ TárcioZemel: Masz na myśli ścieżkę do katalogu głównego projektu? Można go przekształcić za pomocą wbudowanej funkcji 'fnamemodify()' (w powyższym wywołaniu 'setreg()'). –

+1

Świetnie, to wszystko! Właśnie zmieniłem tę linię na 'call setreg ('"', (fnamemodify (n.path.str(), ':.')))) I magia się wydarzyła! Jeszcze raz dziękuję! –

5

To co znalazłem na NERDTree szybkim google: CopyPath

Jednak to brzmi jak próbujesz uczynić vim w Sublime Text. Vim ma zazwyczaj inną filozofię edycji tekstu niż większość edytorów tekstu. Moim osobistym zdaniem często lepiej jest pracować z vimem niż z nim. Oto miły post autorstwa Drew Neila z Vimcasts wyjaśniający benefit to split explorers.

Prawdopodobnie bardziej vim sposobem wstawiania ścieżki jest użycie uzupełniania pliku. W trybie wstawiania możesz wywołać to zakończenie, naciskając <c-x><c-f>, a następnie przejść przez menu z <c-p> i <c-n> (odpowiednio poprzednia i następna). Jeśli chcesz wstawić bieżącą ścieżkę bufora, możesz wkleić ją przez rejestr %, np. "%p lub w trybie wstawiania/trybu wiersza poleceń przy użyciu <c-r>%.

Więcej Pomocy Zobacz:

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

Chyba to, czego naprawdę potrzebujesz, to menu kontekstowe jak ten plugin wysublimowanej?

To wbudowane w NERDTree.

Po prostu naciśnij m na podświetlonym węźle, a zobaczysz nowe okienko z pytaniem, co chcesz zrobić. Podstawowe funkcje to: Dodaj, Usuń, Przenieś, Kopiuj.

Istnieje również wtyczka umożliwiająca wyszukiwanie (przy użyciu polecenia grep), dla podświetlonego pojedynczego pliku lub całego katalogu.

NERDTree udostępnia również interfejs API dla łatwo wbudowanych dowolnych działań niestandardowych w tym oknie kontekstowym.

+0

Istnieje również opcja (l) List, która jest prawdopodobnie tym, o co została poproszona o – valk

Powiązane problemy