evil模式下大家都是怎么快速复制一段文字的?

我想复制23到26行的那一段代码,大家都是怎么操作的?

  1. 开相对行号,num+y

  2. 先选中,然后yy

觉得先定义“一段”才比较好回答。

纠正一下,选中文本后,按的是 y ,不是 yy

1 个赞

eno 可以不用移动光标,直接复制其它位置的 word, symbol, line。

1 个赞

听着感觉和 avy-thing-edit、leap-spooky.nvim 是同类功能。

习惯用 vi 的方式的话,可以这样 :23,26t28 (把 23 到 26 行复制到 28 行下面)

2 个赞

avy是快速移到其它地方,这个eno是不用移动,快速复制其它地方的内容。

1 个赞

它说的 any-thing-edit 应该是 avy 和 thing-edit 的结合, thing-edit 创建于 2008年, 是原地拷贝当前光标的内容的插件。

avy-thing-edit 应该是可以远程拷贝(就是除了当前光标拷贝, 还可以跳到其他窗口拷贝内容而不改变当前光标的位置)

那功能就是和 eno 一样的了,不过 melpa上没找到有这个 any-thing-edit 包

这个世界上有很多包是不上 melpa 的, 哈哈哈哈。

github上找到了

不用evil是不是还简单点?M-h, M-w.

2 个赞

楼主的字体 还是比较别具一格啊。 这是什么字体?

第一种方法 23ggy3j 也就是 先移动到第二十三行再复制三行。vim用户用熟练了是不会先选中区域再复制的,而是直接复制区域。(vim的术语叫做operator pending mode)。你可以下载一个插件叫evil-goggle,这样每次妮复制一段区域以后都会短暂的高亮那段区域,这样你就知道你操作的区域对没有。

第二种方法 注意到你这个第26行后面是一个空行,那么可以直接23ggy}, }在这里的作用是移动到下一个空行。

如果你的第23行上面也有一个空行,那么还可以直接把光标移动到23-26样任意的一个地方按 yap 意思是复制一整个段落

4 个赞

monofur

我一般就是normal 模式下,移动到那一行, 然后V (shift-v) 选取整行,j移动到想要复制哪里(evil会连续选择这些行,并高亮标记出来), 然后 y 进行复制就ok了,想copy到哪里,就去相应位置按p. 我一般不会开着行号,为了能多一些空间看代码。这种连续整行的复制,是我的肌肉记忆一部分。

evil 下 yn 然后按提示操作

n 绑定 avy-line