Я определил несколько карт, которые охватывают выбранный фрагмент текста, например. для преобразования «text» в «\ texttt {text}». Это один пример такой карты:Команда Vim ведет себя по-разному в конце строки
vmap <buffer> ,t xi\texttt{<Esc>pa}<Esc>
Однако, эта карта не работает, как ожидается, когда выбранный текст в конце строки. Возьмем, например, такую строку:
word1 word2 word3
, когда я выполняю нормальную команду viw,t
для каждого слова в строке, это результат, который я получаю:
\texttt{word1} \texttt{word2}\texttt{word3}
с завершающими пробелами, т.е. вставка последнего texttt{
произошла в неправильном месте.
Как я могу изменить свою карту для работы независимо от того, где она выполнена?
Проблема заключается в позиции курсора после x, которая отличается от EOL, потому что нет конечного символа, на который указывает курсор. Использование s, как было предложено, может помочь. – Nikodemus