J'utilise set matchpairs+=<:>
avec mon code C ++, et cela fonctionne très bien. Mais il y a des cas où il n'est pas tout à fait là, comme ce code C ++:
#include <type_traits>
template<int X> typename std::enable_if<(X>9),int>::type func() { return 5; }
int main() { func<10>(); }
Ici, si vous mettez le curseur sur l' <
après enable_if
, l' >
en X>9
sera mis en surbrillance. Bien sûr, cela a du sens du point de vue de Vim, qui n'est ni un compilateur C ++ ni un IDE. Mais existe-t-il un moyen simple de ne pas faire correspondre les paires rompues par des parenthèses non fermées? C'est-à-dire que j'aimerais <()>
faire correspondre le support d'angle de fermeture, et <(>)
non.
delimiter-matching
Ruslan
la source
la source
Réponses:
matchit
ne le fera probablement pas pour vous. Vous voudrez probablement écrire une petite fonction wrapper pour%
, qui identifie le caractère sous votre curseur avec:suivi de quelques tests imbriqués simples tels que:
ce qui signifie, obtenir des scripts dans vim ...
Faîtes-nous savoir comment cela se passe.
la source