我知道很多复制方法:

yiw =在当前单词中拉动yaw =在所有单词中都拉动(包括尾随空格)yy =在当前行中拉动3yy =从当前一行开始拉动三行yap =取消所有段落(包括尾随换行符)

我还可以删除或更改单个字符:

x =删除光标下方的字符r =替换光标下方的字符光标

但是,实际上,您如何简单地在光标下复制单个字符呢?

我的动机是我在Perl 6中进行编程,并且其中一些运算符是Unicode字符。例如,现在我正在使用tadzik的Perl 6 Config :: INI代码作为自定义解析器的起点,我希望从该行复制仅一个法语引号(超级运算符): br />
my %hash = $<sections>».ast;


我可以使用超级运算符>>的两个字符“ Texas”版本,但我认为看起来比>>>更好,没有歧义:

my %hash = $<sections>>>.ast;




评论

像往常一样,很容易地用动作组成操作:yl

@VanLaser好主意!我当时以为运动是行不通的,因为我只想要那个角色。但是您的建议对ASCII非常有用。将其发布为答案,我会投票赞成。有趣的是,它不适用于此Unicode字符,但是当X是恰好在右边的字符时,ytX(“ yank til X”)似乎可以工作。

我想知道,是使用Unicode隐藏功能还是用Vim隐藏功能替换/隐藏了两个字符?
@VanLaser看起来像两个“字符”。

顺便说一句,您如何介绍»字符?

#1 楼

将yank操作与经常使用的“向右移一个字符”动作组合在一起应该可以:yl

BTW(对OP注释发表评论),对我来说,可以在gVim或终端Vim中以这种方式拉扯»。也许是(文件)编码问题?

评论


Yanking»也对我有效。我使用vy拉动单个字符。不知道为什么我用它而不是yl,也许我曾经有一个有意识的理由,但是现在只是反射。

– jjaderberg
15年12月13日在19:07

我一直做y 认为是拖拽光标下的字符,我打算将其添加为答案,但是在检查了帮助之后,我意识到和l是同一回事。

–布雷特Y
2015年12月14日,0:07

很好,而且击打起来似乎更容易,除非当空格被用作领导者时。

– VanLaser
2015年12月14日,0:19

#2 楼

通常我按vy(视觉拉动),有时也按xu(删除撤消)。另外,如果要在光标之前拉动char而不是lvy,可以按Xu,我认为这就是我按xu的原因。 :-)

请注意,Xu将使光标移动到该字符。

评论


你的意思是爬山我尝试对其进行编辑,但是显然纠正vim命令中的一个字符并不是可以接受的重大更改。

– Shahbaz
17年4月17日在21:49

#3 楼

我知道执行此操作的最简单方法是使用x删除字符,该字符也将其放入缓冲区,然后使用P将该字符放回。然后,只要不更改缓冲区,就可以使用p(在光标之后)或P(在光标之前)在任意位置移动光标并将其粘贴回所需的位置。

#4 楼

您可以使用ylyv复制光标上的字符。

评论


欢迎来到Vi和Vim!我认为第二个应该是vy,但是我不确定这个答案是否会比现有答案增加更多的价值...

– D. Ben Knoble♦
20 Mar 28 '20在19:34

谢谢,vy或yv都对我有用。

– SHWEI
20 Mar 29 '20 at 0:37

@meteorsh欢迎来到我们的网站。我们通常会重视答案,这些答案会努力为读者清楚地解释事情。在这里,我将非常有用的解释您的解决方案与现有答案有何不同以及为什么它专门回答了OP问题。通常,不超过一个句子长的答案被认为是低质量的。

–statox♦
20 Mar 30'8:08

抱歉,我是使用此网站的新手,可能不知道规则。因此,下次我将尝试改善答案。

– SHWEI
20-3-31的3:24