如何在不取消vim中的可视选择的情况下运行命令

如何在不取消vim中的可视选择的情况下运行命令,vim,Vim,在vim中,假设我这样做:viw(启动可视模式并选择当前单词) 然后我执行:echo“abc”(我可能必须删除范围规格,在视觉模式下键入:时自动添加该规格) 运行echo命令将取消视觉选择即使在执行echo命令后,我如何维护视觉选择?当您进入命令行模式(对于:echo)时,视觉选择不可避免地丢失,但Vim会记住选择模式、和'>标记中的开始和结束位置。gv命令允许您快速重新选择以前的选择;cp 有些人喜欢保留选择(例如,通过移动行),并通过将gv附加到原始命令的自定义映射来配置此选项 但是,对于您

在vim中,假设我这样做:
viw
(启动可视模式并选择当前单词)

然后我执行
:echo“abc”
(我可能必须删除范围规格,在视觉模式下键入
时自动添加该规格)


运行echo命令将取消视觉选择
即使在执行echo命令后,我如何维护视觉选择?

当您进入命令行模式(对于
:echo
)时,视觉选择不可避免地丢失,但Vim会记住选择模式、和
'>
标记中的开始和结束位置。
gv
命令允许您快速重新选择以前的选择;cp

有些人喜欢保留选择(例如,通过
移动行),并通过将
gv
附加到原始命令的自定义映射来配置此选项


但是,对于您所陈述的泛型Ex命令用例,我认为这没有意义。如果您只是在映射中短暂地脱离视觉模式(如您在评论中所阐明的),
gv
完全正确。或者,您可以避免通过退出可视模式,作为副作用执行这些操作,然后返回一个空字符串,这样就不会执行任何操作。但是,由于您需要存储visual end列,因此需要结束visual mode以更新
'>
标记,因此这在这里不起作用;实际上,您必须暂时离开可视模式。

(目的是我希望能够通过执行
:让lastSelectedCharacterIndex=virtcol(“>”)
)来记忆上一个选定字符的列索引的
vmap
键绑定。但是,我仍然希望使用相同的可视选择执行其他操作(记住上次选择的CharacterIndex后)谢谢!
gv
完全完成了我想要的东西,因为我只需要在一个特定的键映射中使用此功能。