Vim命令在行尾有不同的行为

dan*_*ann 0 vim

我已经定义了几个地图,这些地图包含了一段选定的文本,例如将"text"转换为"\ texttt {text}".这是这样一张地图的一个例子:

vmap <buffer> ,t xi\texttt{<Esc>pa}<Esc>
Run Code Online (Sandbox Code Playgroud)

但是,当所选文本位于行尾时,此映射无法按预期工作.以这一行为例:

word1 word2 word3
Run Code Online (Sandbox Code Playgroud)

当我viw,t对行中的每个单词执行正常命令时,这是我得到的结果:

\texttt{word1} \texttt{word2}\texttt{word3} 
Run Code Online (Sandbox Code Playgroud)

带有尾随空格,即最后一个插入texttt{错误的位置.

如何将地图更改为无论在何处执行都能正常工作?

m0t*_*ive 5

尝试使用s而不是xi.删除选择并直接进入插入模式,避免使用后删除不确定的光标位置x.

vmap <buffer> ,t s\texttt{<Esc>pa}<Esc>