É possível que as marcas do vim apontem para o caractere para o qual foram originalmente definidas, em vez da localização original da linha/coluna do caractere?

É possível que as marcas do vim apontem para o caractere para o qual foram originalmente definidas, em vez da localização original da linha/coluna do caractere?

É possível fazer com que as marcas vim (por exemplo, mm) apontem para o caractere para o qual foram originalmente definidas, em vez da localização original da linha/coluna do caractere?

Por exemplo, se eu digitar mm na primeira letra da palavra "políticos" (Linha 1, Coluna 72) na frase de exemplo abaixo e, em seguida, excluir a palavra "entradas" e digitar `m, meu cursor retornará ao originalcursorposição (Linha 1, Coluna 72) que é agora a localização da letra 'a' na palavra "políticos". Eu entendo que este é o comportamento esperado do vim, masEu gostaria que `m me retornasse ao 'p' dos políticos, mesmo que a localização da Linha/Coluna tenha mudado.

Frase de exemplo:

O bloqueio de 10 dias ocorre depois que mudanças anônimas foram feitas em políticos e empresas, bem como em eventos como o assassinato de Kennedy.

Acho meu comportamento desejado muito mais útil para a maneira como escrevo/edito (especialmente ao usar o Vim além de seu propósito original de codificação). Viemu, um plug-in que adiciona muitas das funcionalidades do Vim ao Word, marca o caminho que desejo. Infelizmente, o Viemu não é uma versão perfeita do Vim e eu preferiria redigir todo o texto (e-mails, ensaios, etc. e não apenas código) no Vim. Não saber como fazer com que o Vim trate as marcas da maneira que desejo é um dos principais motivos pelos quais não o utilizo exclusivamente.

Agradeço antecipadamente,

PS Esta é a primeira vez que posto em um stackexchange/superusuário, então, por favor, me perdoe se não segui o formato/protocolo adequado para fazer uma pergunta e corrija-me.

Responder1

Embora as marcas sejam ajustadas para linhas adicionadas/removidas, a posição da coluna não; você está correto nisso. O comportamento desejado certamente traz vários benefícios; Acho que ainda não foi implementado, provavelmente por causa da complexidade envolvida. (E isso quebraria a compatibilidade com o vi e versões anteriores do Vim, algo que não é considerado levianamente.)

Embora seja possível conectar-se a algumas ações de edição com :autocmds, isso geralmente não é possível (por exemplo, coisas como :snão podem ser interceptadas), portanto, emular esse comportamento no Vimscript seria difícil e não conheço nenhuma implementação desse tipo.

informação relacionada