[英]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 ,用箭頭或運動字母( h
, j
, k
和l
)選擇整個塊,然后用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.