每天至少一次我有以下情况:
A: This line should also replace line X
...
X: This is line should be replaced
Run Code Online (Sandbox Code Playgroud)
我相信我没有有效地执行这项任务.
我所做的:
这具有额外的缺点,现在该行X是在默认的寄存器,它是烦人,如果我觉得应该A.唬弄并粘贴从一个额外的寄存器来代替另一条线("AYY," AP)使得即使这个简单的任务效率低下.
我的问题:
Dor*_*ian 97
Vp
:选择行,粘贴被猛拉的东西
ice*_*ime 85
我会怎么做:
aG
Y
xG
Vp
您不必离开正常模式,但它确实会拉扯该线.但是V"0p
,您可以使用哪一条始终将线条放入第2步.
Eug*_*ash 43
这有一个额外的缺点,就是X行现在在默认寄存器中,如果我发现另一行应该用A代替,这很烦人.
要删除文本而不影响正常寄存器,可以使用黑洞寄存器"_
:
"_dd
Run Code Online (Sandbox Code Playgroud)
小智 9
我将使用命令行(Ex)模式并执行以下两个命令
:XmA
:Ad
Run Code Online (Sandbox Code Playgroud)
这只是将X行移动到A下方,然后删除A移动该行
例如
:7m3
:3d
Run Code Online (Sandbox Code Playgroud)
移动到第一行的开头.
y,$- 复制最后没有换行符的行
移动到目标线的起点.
V,p- 只替换一个目标线
c,c,Ctrlr,0, Esc-替换原来的猛拉目标线
移动到下一个目标线的开头.
. - 重复4.2发出的命令.
笔记:
4.1 y,$因为如果你这样做y,y或者Y你会复制断行,并且Ctrlr, 0实际上增加了你的目标线以下的换行符.
4.2替换V p,这与重复不起作用,因为从技术上讲,最后一个动作是删除,所以.只删除一行.
如果有人知道如何从EX模式(命令行)发出"用寄存器替换当前行",我想听听你的意见(并知道你在哪里找到了文档).可能存在可重复的EX命令,该命令比4.2更快和/或没有断行警告.
小智 6
你也可以这样做:
Vy (in normal mode at the line you want to copy)
Vp (in normal mode at the line you want to replace)
Run Code Online (Sandbox Code Playgroud)
相同的键可用于拉出/粘贴多于一行。
V (in normal mode at what you want to yank)
(use jk to move the selection)
y (to yank the selection)
V (in normal mode at where you want to paste)
(use jk to move the selection)
p (to replace the selection with the yanked lines)
Run Code Online (Sandbox Code Playgroud)
您可以将其与视觉模式一起使用。
A
GX
G这就是我要做的