É possível um objeto de texto inteligente?
É possível criar um objeto de texto inteligente para i), i], i}, i>, i'e i"?
O objeto de texto representaria o primeiro objeto mais interno que ele pode encontrar. Por exemplo, com o cursor no sinal de mais viv, selecionaria a + babaixo:
{ [ (a + b) ] }
Respostas
O targets.vim plug-in implementa algo muito semelhante ao que você descreveu, a principal diferença é que ele tem dois de texto separado objetos para "qualquer bloco" ( ib, etc.), que trabalha para (), []e {}e outra para "qualquer citação "( iq, etc.) que funciona com aspas simples, duplas ou invertidas.
Consulte a seção README sobre objetos de texto múltiplo para obter mais detalhes.
A principal razão para objetos separados para blocos e aspas é que os blocos normalmente se aninham, enquanto as aspas não.
Em qualquer caso, a própria existência desse plug-in que implementa um objeto de texto que corresponderá a um dos vários delimitadores com base no contexto deve demonstrar que é definitivamente possível implementar um objeto de texto inteligente. Se você realmente deseja um que corresponda a blocos e aspas, poderá aproveitar as idéias deste plug-in para implementar seu operador.