Vim 在ViEmu视觉模式下光标后开始选择

Vim 在ViEmu视觉模式下光标后开始选择,vim,text,editor,hotkeys,viemu,Vim,Text,Editor,Hotkeys,Viemu,好的,这以前是关于Vim的问题,直到我知道它是VisualStudio插件ViEmu特有的 在ViEmu中,“v”将荧光笔光标放在前一个字符和当前字符之间,这样,当“v”被取消选中时,向后移动会留下光标下的字母。当试图从线路的末端使用视觉模式时,这尤其令人讨厌。有没有一个键可以将“v”变成“a”对“i”和“p”对“p” 下面是一个例子: 我有以下文本,光标位于单词dances的尾随s上 胖黄狗跳舞 我想把它改为: 敏捷的棕色狐狸跳跃 我想进入视觉模式,在舞蹈中把荧光灯放在s的右边。这样,当我使用

好的,这以前是关于Vim的问题,直到我知道它是VisualStudio插件ViEmu特有的

在ViEmu中,“v”将荧光笔光标放在前一个字符和当前字符之间,这样,当“v”被取消选中时,向后移动会留下光标下的字母。当试图从线路的末端使用视觉模式时,这尤其令人讨厌。有没有一个键可以将“v”变成“a”对“i”和“p”对“p”

下面是一个例子:

我有以下文本,光标位于单词dances的尾随s上

胖黄狗跳舞

我想把它改为:

敏捷的棕色狐狸跳跃


我想进入视觉模式,在舞蹈中把荧光灯放在s的右边。这样,当我使用shift+f向后搜索时,我选择了所有内容。使用v->shift+f->f将突出显示除舞蹈中令人讨厌的s之外的所有内容。

如果我们思考一下使用操作符所做的更改,比如说
d3e
,与使用视觉模式所做的相同更改,
v3ed
,我们会发现视觉模式中独特的元素是交互

在视觉模式下,很自然地开始选择目标区域,然后稳定地磨合目标区域:与其使用
v3ed
,不如使用
veeeed
veeebbed
v4ebbed
。或者在
vee
之后,我意识到我需要包括我选择之前的内容,因此
o
bb
,最后是
d

关键是,当使用

  • 操作员,我们需要精确:操作员加目标-一枪一个洞
  • 在视觉模式下,我们可以自由地利用Vim的各种运动来描述我们的目标区域,不管它是什么形状,并且没有压力要求精确或立即命中目标
如果您经常需要在当前光标位置之后启动可视模式(或者您有另一个类似的用例),则始终可以创建自定义映射。以下是一些想法:

:nnoremap <Leader>v <Space>v
:nnoremap <Leader>v $hv
:nnoremap <Leader>v $F;v
:nnoremap v
:nnoremap v$hv
:nnoremap v$F;v

你能举个小例子说明你的意思吗?对我来说,它不是100%清晰的…
v
没有方向:没有运动或文本对象,光标保持不变。你可以给它一个向左(
^
,例如)或向右(
3w
)的运动。既然它没有方向,你为什么要求一种方法来恢复它?还是您希望在光标之前/之后的角色上开始视觉选择?重点是什么?您所描述的已经是标准的Vim行为。您可能已将
'selection'
设置为独占。执行
:设置选择&
,然后
vFf
应该可以像您期望的那样工作。@romainl哦,您是对的。我正在使用一个名为ViEmu的vim模拟器的VisualStudio。在ViEmu中,v将选择光标放在当前字母和它前面的字母之间,然后从中进行选择。(使用v后,l将选择光标刚好所在的字符,而h将选择之前的字符。)@DubiousPusher,它改变了一切。维姆不是维姆,离它很远!不幸的是,这并不能解决我的问题,因为v总是把荧光笔放在光标下字母的前面。因此,我需要你的建议起作用的是能够将1移过行中的最后一个字符。@DubiousPusher,然后尝试
:nnoremap v vo
。效果很好。不敢相信我以前不知道视觉模式下的“o”。