微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Vim – 防止光标移动到标记时移动

我通常使用标记来剪切/粘贴Vim.

要在第4行和第12行之间抽取文本,我执行以下操作:

>将光标移动到第4行
>键入mx以放置名为x的标记
>将光标移动到第12行
>键入y’x以在第4行和第12行之间拉动文本

完成此操作后,光标移回第4行.

有没有办法让光标停留在原位(不移回标记)?

如果有人有更好的方法来做同样的事情,那也会很棒……

提前致谢!

更新:

我使用FDinoff的答案来创建一个映射,让我成为一个快乐的露营者:

nnoremap YY y'x<C-O>

这从光标到名为x的标记,然后将光标返回到它所在的位置.

这已经为我节省了大量时间.再次感谢!

解决方法

跳到第4行的原因是因为你正在使用向后运动的猛拉.

*y* *yank*
["x]y{motion}       Yank {motion} text [into register x].  When no
            characters are to be yanked (e.g.,"y0" in column 1),this is an error when 'cpoptions' includes the 'E'
            flag.

有问题的议案是'x,它跳转标记x.光标移动到被拉动部分的开头,在这种情况下是第4行,因为你从第12行开始.

但是你可以做的事情.

>使用range作为前命令行模式.范围是. (当前行)到’x(标记x).如果范围是向后的,请问你是否意味着另一个方向.这不会移动光标. :“XY
>或者你可以使用<C-o>将你跳回到你跳过的最后一个地方. (评论中提到过.)
>或者您可以使用']或`].这些命令会跳转到最后一个被拉动的文本的最后一个字符.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐