首页 / 知识
关于编辑器:Emacs是否等同于Vim的yy10p?
2023-04-15 21:53:00

Emacs equivalent of Vim's yy10p?如何在Emacs中轻松地复制一条线10次? 我找不到复制行快捷方式或功能。 我可以使用C-aC-spcC-eM-w费力地复制该行,但是如何才能多次粘贴呢? 在编写自己的函数之前,请先提出任何想法。 您可以为此使用键盘宏:- C-a C-k C-x(C-y C-j C-x)C-u 9 C-x e 说明:-
复制中:
如果您经常使用线条,则可能需要在未选择区域的情况下在线条上进行复制(
然后,您可以仅使用M-w复制该行。 贴上:
通常,前缀参数会执行多次操作,因此您希望C-u 10 C-y可以工作,但是在这种情况下,C-y使用其参数来表示kill-ring的哪个元素"粘贴"。我能想到的唯一解决方案是kronoz所说的:用Cx(Cy Cx)记录一个宏,然后将Cu的参数改为
其它的办法: 您可能知道这一点,但是对于许多命令,使用" C-u 10"前缀即可解决问题。不幸的是,对于C-y猛拉命令," C-u"被重新定义为"返回杀死环中的许多物品,然后猛拉该物品"。 我以为您也许可以将C-U前缀命令与copy-to-register和insert-register命令一起使用,但是显然这也不起作用。 同样,C-x z的"重复最后命令"似乎不受C-u的影响。 另一个想法是使用M-:来获得一个Eval提示符并输入一些elisp。我认为类似(dotimes '10'yank)的方法可能会这样做,但似乎没有。 因此,看起来像在宏上使用C-u确实是您可以写的最好的方法,而无需编写自己的小函数。 如果我投票,我会投票给克朗兹答案。 在此示例中,您不需要C-x和C-x e。 您可以直接将repeat参数直接赋予C-x)。这将停止记录并一步一步重复宏。或者,您可以跳过C-x)并直接转到C-x e,因为C-x e在执行重复操作之前将结束录制。 选择哪种方式取决于您希望重复计数的工作方式。对于C-x),您说总共要重复多少次(本例中为10次)。对于C-x e,您需要说还剩下多少个重复(即9)。 C-a C-k C-k也会杀死结尾的换行符,因此您不必稍后再放回去。它比使用标记更快,并且不需要您更改任何变量。 更好的是(除非您在终端中),无论您位于行中何处,都可以使用C-S-Backspace *杀死整个行。 [*如果您使用的是X窗口,请确保键入shift(而不是alt),否则您可能会终止会话!] 说到终端,如果您发现无法输入C-9,则M-9是一个不错的选择。 在Emacs 22及更高版本中,默认情况下,F3启动一个宏,F4结束/重复一个宏。您只需按F3开始录制,完成后按F4,然后再次按F4以重复宏。 (F4也有一个参数。) 将所有这些放在一起,以获得当前行的10个副本:
并不比y y 10 p短,但是非常接近。 :) 这是我从Emacs的OS / 2端口获得的功能。 (是的,我使用Emacs已有一段时间了。)
我已经绑定到F9 d:
然后,我将使用C-u 10 F9 d将一行重复10次。 我知道重复任意命令的唯一方法是使用键盘宏的"按参数重复"功能。 C-a C-空间向下M-w C-x(C-y C-x)C-9 C-x e
与vim相比,这有点弱。但这仅仅是因为vim在这种情况下非常有效。 如果您确实希望进行类似于模式的vi交互,则可以使用一种vi仿真模式,例如viper模式。签入在线emacs手册的"仿真"部分。 您可以通过减少击键次数将一条线(或一个区域)拉十次:
或者,使用F3和F4功能键开始和结束键盘宏:
根据Baxissimo的回答,我对此表示怀疑:
将其设置为某个键,使用前缀参数调用它,然后就可以使用了。 编辑(还修改了上面的交互式调用,以减少麻烦) 或者,这是一个可以代替yank-pop的版本:
该消息有点是谎言,但是无论如何您都应该在没有大于1的前缀的情况下调用它。 不确定这是否是个好主意,但我将其替换为M-y,我将看看情况如何。 我不知道直接等效(C-y是我所知道的最好的10倍),但是您可能对Viper感兴趣,Viper是emacs的vi仿真包。它是标准emacs发行版的一部分。 您将要杀死这条线:C-a C-k,然后C-y或? 使用C-k获得该行,使用C-u 10使下一个命令发生十次,然后使用C-y粘贴该行。很简单 如果您始终希望C-k做整行,可以将kill-whole-line设置为t。不再摆弄C-a或C-e。 花式杀手环,寄存器和宏可以做很多事情,我鼓励您学习它们,但是拉一条线十次不必太困难也不奇怪。 |
最新内容
相关内容
linux命令和库函数?
linux命令和库函数?,系统,标准,管理,地址,服务,库函数,环境,平台,第一,状态,1.linux系统调用和库函数调用的区别系统调用和库函数在执行的效果linux查看函数命令?
linux查看函数命令?,系统,信息,名称,命令,位置,情况,公用,名字,标准,资料,linux下有没有像查看函数那样直接使用man命令来查看结构体的命令?这linux下的键盘命令是?
linux下的键盘命令是?,系统,电脑,命令,工具,代码,简介,软件,光标,程序,进程,如何用键盘控制电脑1、使用方向键选中软件图标。win键进入开始菜调用函数命令linux?
调用函数命令linux?,系统,管理,网络,通用,统一,观察,地址,代码,设备,地方,怎么调用system函数,使用Android的linux命令1、int system(const ch键盘进入linux命令?
键盘进入linux命令?,系统,状态,设备,电脑,名称,百度,密码,通用,工作,代码,linux怎么进入目录?1、cd命令:切换当前目录至其它目录。cd / ,即进入linux命令编辑器与?
linux命令编辑器与?,环境,档案,标的,数字,名称,数据,正规,名字,命令,光标,Linux环境编程-编辑器基本操作如果输入了Y,下一步会让你输入想要保存linux用命令显示键盘?
linux用命令显示键盘?,系统,信息,工具,电脑,键盘,分析,设备,数据,通用,工作,Linux系统中使用屏幕键盘的方法然后用编辑器打开欢迎界面配置文件linux编辑器保存命令?
linux编辑器保存命令?,状态,网络,系统,电脑,命令,编辑,文件,位置,终端,模式,linux系统使用vi命令进入文件后怎么修改保存1、按ESC键回到命令模linux发送键盘命令?
linux发送键盘命令?,电脑,信息,数据,系统,通信,多地,发行,名称,环境,标准,请问如何向LINUX的某个进程发送键盘消息1、sigqueue的第一个参数是linux查询函数命令?
linux查询函数命令?,系统,信息,名称,标准,函数,百度,代码,名字,最新,实时,Linux下查找一个函数在哪个库文件中1、默认状态下,gcc并不搜索数学库比较好用的Python代码编辑器
比较好用的Python代码编辑器,代码,平台,环境,培训,教育,设计,数据,办公,人员,分析,Python是一款非常简单的编程语言,其功能使用起来都十分方便python免费编辑器?
python免费编辑器?,代码,项目,分析,智能,平台,技术,庞大,公司,功能,插件,Python是一种高级编程语言,因其简单易学、功能强大、开源免费等特点,成