2012-03-08 16 views
6

Podczas edycji JavaScript, zwykle muszę to zrobić:Vim i wcięcie ze wspornikami/szelki

function myFunc() { 
    // func body here 
} 

Próbowałem kilka wspornika zamykania wtyczek jak AutoClose i vrackets, ale kiedy wracam do kodowania jak powyżej, wszyscy to zrobić:

function myFunc() {<CR> 
|} 

Jak mogę dokonać Vim wstawić przed nawiasem, kiedy idę do nowej linii, a wcięcie kursor właściwie tak:

function myFunc() {<CR> 
    |<CR> 
} 

Czy jest jak wtyczka lub coś, co to robi?

+0

Wtyczka [delimitMate] (https://github.com/Raimondi/delimitMate) zapewnia opcję dla tego IIRC. –

+0

@Randy: Moja konfiguracja vima musi być przeklęta lub coś podobnego. delimitMate nie zrobi rozszerzenia CR ... – hayavuk

+1

Mimo że wątek jest dość stary, chciałbym jeszcze dodać, że delimitMate ma opcję, aby to zrobić: po prostu dodaj 'let g: delimitMate_expand_cr ​​= 1' do twojego .vimrc. Zobacz ': help delimitMate', aby uzyskać więcej opcji. – jasperge

Odpowiedz

2

Mam ten wiersz w moim ~/.vimrc:

inoremap <C-Return> <CR><CR><C-o>k<Tab> 
+0

Z tego czy innego powodu nic dla mnie nie robi ... Może to być konflikt z wtyczką. – hayavuk

+0

Trudno powiedzieć. Co masz na myśli mówiąc "nic dla mnie nie robi"? Czy coś robi? Co? – romainl

+0

Mam na myśli, że to nie ma żadnej różnicy, czy mam to w vimrc czy nie ... Co jest dziwne. Domyślam się, że niektóre wtyczki zastępują mapowanie. – hayavuk

1

Może poza bazą, ale czy próbowałeś użyć skrótu polecenia?

:ab {} {<cr>}<esc>ko 

Oczywiście, mam na smartindent i musiałbym wpisać {} na jej zakończenie, ale to działa na mnie.

+0

Tak blisko, ale nie działa, gdy mam automatyczne zamykanie nawiasów ... Mogę stworzyć inny skrót, np. 'Fnc' i rozwinąć to, co tam masz, jako rozwiązanie typu" stop-gap ". Jeśli nikt nie wymyśli lepszego rozwiązania, pójdę z tym. – hayavuk

0

próbowałeś map całej funkcji, takich jak

inoremap ,4 function() {}<left><enter><esc>O

6

Używam tego odwzorowania w połączeniu z AutoClose:

inoremap {<CR> {<CR>}<C-o>O 

Nie jest wymagana żadna specjalna kombinacja klawiszy.

+0

Tak, odkryłem, że możesz odwzorować kombinację klawiszy w kilka miesięcy po wysłaniu pytania. – hayavuk

+0

W końcu zrobiłem to za mnie, a także używam go z vim-autoklozą. – dmonopoly