Vim有一个键绑定来交换两个单词,同时将光标保持在与详细here
相同的位置:nnoremap gw" _yiw:s /(\%#\ w +)(\ W +)(\ w +)/ \ 3 \ 2 \ 1 /
不幸的是,这似乎不适用于VSVim,并且报告无法找到模式:(\%\ w +)(\ W +)(\ w +)。我注意到错误消息报告的模式中缺少#。我想知道是否有人知道这个问题可能与绑定的正则表达式元素有什么关系,以及#具有什么角色?
答案 0 :(得分:0)
\%#
给出了光标位置(参见http://vimdoc.sourceforge.net/htmldoc/pattern.html#/\%#)
它似乎也不适合我,似乎是一个不错的功能请求,我在这里添加:https://github.com/jaredpar/VsVim/issues/1780
编辑: 开发人员回应说这个功能超出了VsVim的范围:
不幸的是,这是我目前无法接受的功能。我的正则表达式基础结构基于使用.NET Regex。它们没有光标位置的概念,我无法将光标位置转换为正则表达式元素。因此,如果不从头开始创建一个完整的正则表达式引擎,目前超出了本项目的范围,就无法做到这一点。