我通常使用标记来剪切/粘贴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] 举报,一经查实,本站将立刻删除。