如何提取(复制)光标所在的单个字符?


49

我知道很多复制方法:

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

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

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

但是,您究竟如何在光标下简单地复制一个字符呢?

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

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

我可以使用hyper运算符的两个字符的“ Texas”版本>>,但是我认为它看起来比>>>

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

在此处输入图片说明
在此处输入图片说明


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

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

我想知道,是使用Vim conceal功能隐藏/替换的一个字符,是Unicode,还是不存在两个字符?
VanLaser 2015年

@VanLaser看起来像两个“字符”。
Christopher Bottoms 2015年

顺便说一句,您如何介绍»角色?
VanLaser

Answers:


41

与经常使用的“一个字符右”运动组成抽出操作应该工作:yl

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


4
Yanking »对我也很好。我vy过去经常拉单个字符。不知道为什么我使用它而不是yl,也许我有一次有意识的原因,但是现在只是反射。
jjaderberg 2015年

3
我一直y<space>认为它是使光标下方的字符变色,我打算将其添加为答案,但是在检查了帮助之后我意识到<space>并且l是同一回事。
Brett Y

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

1
@jjaderberg我喜欢您的评论,请将其发布为答案。谢谢!
Christopher Bottoms 2015年

1
@brettanomyces我喜欢您的评论,请将其发布为答案。谢谢!
Christopher Bottoms 2015年

14

通常我按vyvisual yank),有时也按xudelete undo)。另外,如果要在光标前拖动char lvy,可以代替,而可以按Xu,我认为这就是我按xu电流的原因。:-)

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


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

9

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.