[英]vi/vim editor, copy a block (not usual action)
在 vi/vim 編輯器中,我需要復制一個塊。 有很多方法,但一種方法很快。
以某種方式標記第一行,
然后以某種方式標記結束線,
然后輸入一些命令來復制標記的行。
然后復制,可能使用'p',但不確定。
有人知道命令嗎(不是 yy 或 10yy)? 提前致謝。
只需使用V選擇行或v選擇字符或Ctrl v選擇一個塊。
When the selection spans the area you'd like to copy just hit y and use p to paste it anywhere you like...
剪切和粘貼:
復制和粘貼使用相同的步驟執行,但步驟 4 中您將按 y 而不是 d:
d = delete
= cut
y = yank
= copy
另一個可能更容易記住的選項是在m a和m b的兩行上放置標記,然后運行:'a,'byank
。
許多不同的方法來完成這項任務,只是提供另一種。
我發現下面的命令更方便。 如果要從 6 行復制到 12 行並從當前光標位置粘貼。
:6,12 co .
如果要將第 6 行復制到第 12 行並從第 100 行粘貼。
:6,12t100
來源: https : //www.reddit.com/r/vim/comments/8i6vbd/efficient_ways_of_copying_few_lines/
聽起來您想在文件中放置標記。
m x在光標下放置一個名為x的標記
y ' x猛拉光標當前位置和包含標記 x的行之間的所有內容。
您可以使用' x簡單地將光標移動到帶有標記的行。
您可以使用` x (反引號)移動到標記的確切位置。
我一直做的一件事是將光標和標記 x 之間的所有內容都拖入剪貼板。
你可以這樣做:
" + y ' x
注意:在某些環境中,剪貼板緩沖區由*
代替+
。
類似的問題有一些很好的答案:
鍵盤快捷鍵是:
對於復制:將光標放在塊的開頭並按md ,然后轉到塊的結尾並按y'd 。 這將選擇要粘貼的塊,按 p
對於剪切:將光標放在塊的開頭並按ma ,然后轉到塊的結尾並按d'a 。 這將選擇要粘貼的塊按 p
您可以像在 vi 中那樣進行操作,例如將行從 3020 拉到末尾,執行此命令(將塊寫入文件):
:3020,$ w /tmp/yank
並將此塊寫入另一行/文件,轉到所需位置並執行下一個命令(插入之前寫入的文件):
:r /tmp/猛拉
(提醒:不要忘記刪除文件:/tmp/yank)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.