2013-05-18 10 views
6

mam ustawić klawisze mapowania następująco:Jak rozwiązać kolizję odwzorowania kluczy zakładce `wtyczki UltiSnips` w vim

" Easy indent for code blocks 
    nmap <tab>  v> 
    nmap <s-tab> v< 
    vmap <tab>  >gv 
    vmap <s-tab> <gv 

To działa dobrze. Ale kiedy zainstalowałem UltiSnips przez vundle, klawisz Tab nie działa jako akcja wcięcia, usunie kody wielokreskowe, które wybrałem. Wiem, że to dlatego, że domyślne ustawienie to UltiSnips. Chciałbym pozostać mapowaniem Tab dla UltiSnips, aby uruchomić jego funkcje. Jak rozwiązać problem użycia klawisza TAB do blokowania wcięć? Dzięki!

Odpowiedz

9

Patrząc na dokumentacji UltiSnips poprzez :h UltiSnips-triggers mówi tak:

You can define the keys used to trigger UltiSnips actions by setting global 
variables. Variables define the keys used to expand a snippet, jump forward 
and jump backwards within a snippet, and list all available snippets in the 
current expand context. The variables with their default values are: > 
    g:UltiSnipsExpandTrigger    <tab> 
    g:UltiSnipsListSnippets    <c-tab> 
    g:UltiSnipsJumpForwardTrigger   <c-j> 
    g:UltiSnipsJumpBackwardTrigger   <c-k> 

więc ustawić coś takiego w katalogu ~/.vimrc` pliku:

let g:UltiSnipsExpandTrigger = '<f5>' 

Jednak może warto rozważyć swoje <tab> mapowania . Sugeruję, abyś je usunął i używał >> lub << w trybie normalnym i > lub < w trybie wizualnym, aby wykonać początkowe wcięcie/cofnięcie wcięcia, a następnie powtórzyć czynność za pomocą polecenia ponownego wywołania za pomocą .. Jeśli kiedykolwiek zaimportowałeś/cofnąłeś wcięcie za daleko, po prostu cofnij to poprzez u.

Więcej Pomocy Zobacz:

:h >> 
:h . 
:h u 
+1

W moim przypadku 'tab' zderzył się z wtyczką supertab. Zauważ, że jeśli używasz vima zamiast putta, niektóre kluczowe kombinacje mogą nie działać po wyjęciu z pudełka, takie jak '' lub '' w takim przypadku spróbuj coś takiego: 'let g: UltiSnipsExpandTrigger = ''', który również ma tę zaletę bycia wygodniejszym w pisaniu niż '' – User

+0

@PeterRincker Kiedy używam dowolnego klawisza funkcyjnego np. '', po prostu wpisuje '' w trybie wstawiania. Działa jednak w gvim. Ale mój problem z Putty trwa: / –

0

Możesz zmienić domyślny poszerzyć spust do innego klucza, ale myślę, że lepiej jest używać map następująco:

nnoremap > v> 
nnoremap < v< 
vnoremap > >gv 
vnoremap < <gv 

to działa dobrze dla mnie .

Co więcej, <Tab> usunąć zaznaczone kody wieloliniowe to funkcja UltiSnips. Możesz użyć wybranego tekstu w opisach UltiSnips. Spójrz na here.

Powiązane problemy