簡體   English   中英

如何在多行代碼中插入多行代碼?

[英]How to insert code in multiple lines in a multiple lines code?

我正在從許多不同的數據源做一些剪切和粘貼。 我試圖在多行代碼中插入多行代碼,以便粘貼代碼的第一行在原始代碼的兩個特定點之間進行,對於第二行則相同,依此類推。 這類似於在分割的多行代碼之間插入代碼塊。 下面的圖片.gif顯示了我的意思:

在此輸入圖像描述

我怎樣才能做到這一點? 我正在嘗試使用VIM CTRL + V,但我無法粘貼多行代碼。

這是樣本:

VIOLET=SpectralBand([0.380,0.450],'violet')
BLUE=  SpectralBand([0.450,0.495],'b')
GREEN= SpectralBand([0.495,0.570],'g')
YELLOW=SpectralBand([0.570,0.590],'y')
ORANGE=SpectralBand([0.590,0.620],'orange')
RED=   SpectralBand([0.620,0.750],'r')

"viol3et", 45839,
"bl3ue"  , 43903,
"gre3en" , 28392,
"y3ellow", 23049,
"o3range", 12389,
"r3ed"   , 32840,

您可以使用copy-rectangle-as-kill (Cx r Mw)和yank-rectangle (Cx ry)來實現您描述的行為。

有關詳細信息,請參閱emacs手冊中的“ 矩形”部分。

如何在Vim的行為被選擇的抽出期間類型確定。 確保以塊方式可視模式選擇viol3et塊: Ctrl + V (或許多Windows安裝中的Q )。

或者,您可以使用我的UnconditionalPaste插件來僅僅6dd /刪除整行(例如,在viol3et行上的viol3et ),然后使用gbp粘貼(在目標行之間)。

它適用於我使用CTRL + V ,用箭頭或運動字母( hjkl )選擇整個塊,然后用d剪切它,將光標放在第一行的第一個括號后面並使用p

您應該使用光標選擇左上角,鍵入Control + V,然后轉到最后一行,並鍵入$以獲取所有行的結尾(在其他答案中這是錯過的)。 然后用d刪除,轉到目的地,然后使用p。

對於您的確切樣本,vim中的解決方案是:

 G0<c-v>{j$dggf(p

分解為:

G     go to last line of file
0     go to its first character
<c-V> to start a blockwise selection
{     go to previous empty line
j     go to next line (hence the beginning of block)
$     extend the blockwise selection to end of ALL lines (that was my point)
d     delete and store the block
gg    go to first line of file
f(    go to next character '(' if on same line.
p     to paste the block after the column of current character.

$的替代方法是啟用

:set virtualedit=all

如果您不能將光標放在目的地(超出其行尾),那么這將完成工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM