当我突然决定需要复制该段落时,光标位于段落的中间:
因此,我键入vip
以直观地选择该段落:
现在,我点击cmd+C
复制到剪贴板(这可能在您的系统上有所不同,但不应与帖子的中心问题相关),这使我的光标停留在该段的开头:
而不是理想的位置,那是我刚开始时的位置。
请注意,当用非视觉方式取消选择时,会出现相同的问题yip
。
在执行这样的选择/复制操作之后,我希望默认行为是“返回到原始光标位置”。是否有配置使之成为可能?
当我突然决定需要复制该段落时,光标位于段落的中间:
因此,我键入vip
以直观地选择该段落:
现在,我点击cmd+C
复制到剪贴板(这可能在您的系统上有所不同,但不应与帖子的中心问题相关),这使我的光标停留在该段的开头:
而不是理想的位置,那是我刚开始时的位置。
请注意,当用非视觉方式取消选择时,会出现相同的问题yip
。
在执行这样的选择/复制操作之后,我希望默认行为是“返回到原始光标位置”。是否有配置使之成为可能?
Answers:
一个可能的解决方案是使用跳转:
在拉动或视觉选择之前,您可以设置一个新的跳转,光标移动后便可以访问该跳转。为此,请使用m`。
然后,由于拉动光标而使光标移动ctrlo后,在跳转列表中跳回。您也可以使用来查看可用跳转的:jumps
列表,ctrlo并使用和浏览该列表ctrli
总结您的工作流程将是:
使用m` 设置标记时,您可以使用``代替跳到该标记ctrlo。
您可以阅读:h mark-motions
和:h :jumps
了解更多信息。
<leader>'
为`
,对我来说效果很好。(我<space>
用作领导者。)
:h 'langmap'
。我并不是说这是理想的解决方案,但也许对您来说很有趣。
noremap ' `
noremap ` '
...这在我的vimrc中,效果很好
您可以避免通过以下方式移动光标:
:'{,'}y
见:help range
,:help mark-motions
和:help :y
。
:nmap <key> :'{,'}y<CR>
应该可以完成。
该VIM-easyclip插件具有这样的设置:
g:EasyClipPreserveCursorPositionAfterYank
-默认值0(即禁用)。Vim的默认行为是将光标定位在被选中文本的开头,这与其他动作是一致的。但是,如果您希望在执行拉动操作时光标位置保持不变,请启用此选项。
对于这个小功能,安装一个完整的插件对我来说有点麻烦,所以我更喜欢根据自己的评论使用标记。
扩展Al.G.的答案,我们可以直接编辑到所需的位置。解决方法是gi。我们将到达之前处于上一个插入模式的相同位置。
如果要转到突出显示的文本的开头或结尾。
:help v_o
突出显示突出显示的文本时,您还将返回正常模式,并且您可能会或可能不会保留原始光标位置。
拉动后返回原始位置:
gv获得上一个突出显示。
现在,您可以使用键
o或在可视模式下在原始位置和当前位置之间切换O。
状态行的行号和列号将有助于了解准确的光标位置。
说明文件:
:help visual-change
vip
当光标从段落中间开始时,此功能不起作用。
vip
检查我的编辑。
mm "+yap `m
请注意,"+y
将其