2012-01-22 23 views
12

Szukałem blisko i daleko, i nie znalazłem wtyczki, która może po prostu automatycznie zamknąć zestaw nawiasów, takich jak Textmate. Na przykład:Wtyczka Vima dla nawiasów "auto-zamkniętych"?

Vim  : (*manually close parens* →) 
Textmate: (*Auto closes parens*) 

Jeśli możesz opisać wtyczkę do tego, będę bardzo pomocny. Dzięki!

Odpowiedz

10

używam AutoPairs. Można go pobrać tutaj:

https://github.com/jiangmiao/auto-pairs.git

Jeśli czytasz docs, ma wiele opcji, które obejmują większość ewentualności.

+0

auto par może złamać niektóre kluczowe mapy. Na przykład å nie działa na szwedzkich klawiaturach (ale nie na Å). – lindhe

+0

Działa to doskonale z portugalską klawiaturą – Nelio

1

Utrzymuję wtyczkę, która ułatwia wstawianie zrównoważonych znaków podobnych do nawiasów, a nawet obsługuje otaczanie słów/linii/zaznaczenia.

https://github.com/LucHermitte/lh-brackets/#the-bracketing-subsystem

Domyślne Wiązania dla C & C++ są opisane w lh-cpp page.

+0

jest to dobra, chociaż trochę zajmuje, aby przejść przez docs, ponieważ im przy użyciu wiele rzeczy Lh i jest nieco przytłaczające. Nadal nie wiem, dlaczego generuje dodatkowe artefakty po wstawieniu, ale tylko w plikach językowych .vim. – osirisgothra

+0

Elementy ekstraktu są z pewnością elementami zastępczymi. Możesz przejść do następnego elementu zastępczego z '' jeśli używasz gvim, '' (IIRC) z vim. W C & C++: ";" spróbuje zamknąć wszystkie symbole zastępcze po kursie, po czym następuje zamknięcie nawiasów i zamknięcie '' '. Teraz, jeśli masz obiekty zastępcze tylko w plikach .vim, a nie w innych plikach, będziemy musieli zbadać dalej. Próbujemy to zrobić jutro przez e-mail lub za pośrednictwem trackera w google-code. –

3

Dla tych z nas, którzy chcą pójść zwykły vim sposób:

ino " ""<left> 
ino ' ''<left> 
ino (()<left> 
ino [ []<left> 
ino { {}<left> 
ino {<CR> {<CR>}<ESC>O 

Ten autouzupełniania w trybie insert. Przechowywać w vimrc aby uniknąć wpisywania go za każdym i gdy nie chcemy, mapowanie, musimy uciec używając ctrl - v przed wpisując odwzorowaną char z ({ itp