Eu defini mapeamentos no meu vimrc
para inserir automaticamente parênteses e chaves quando digito os que estão abrindo inoremap ( ()<esc>i
.
Eu gostaria de fazer o mesmo para "
e '
, mas apenas quando o cursor não está atualmente dentro de uma string - como dentro de uma string '
é provavelmente um apóstrofo, e não um delimitador de string. Como posso fazer isso?
Qtx
?Como foi dito, você terá que verificar o contexto de sintaxe. A API lh-brackets antiga fornece funções para esse propósito:
Map*Context()
funções . Desde então, as definições de colchetes foram encapsuladas:Bracket
, levando o contexto (seqüências de caracteres ou comentários) em consideração.Por padrão, os mapeamentos com reconhecimento de contexto são definidos para todos os pares de colchetes comuns como este:
fonte