簡體   English   中英

vi/vim 編輯器,復制一個塊(不是通常的操作)

[英]vi/vim editor, copy a block (not usual action)

在 vi/vim 編輯器中,我需要復制一個塊。 有很多方法,但一種方法很快。

  1. 以某種方式標記第一行,

  2. 然后以某種方式標記結束線,

  3. 然后輸入一些命令來復制標記的行。

  4. 然后復制,可能使用'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...

他們的文檔說:

剪切和粘貼:

  1. 將光標定位在要開始切割的位置。
  2. v選擇字符(或大寫V選擇整行)。
  3. 將光標移動到要剪切的內容的末尾。
  4. d進行剪切(或按y進行復制)。
  5. 移動到您要粘貼的位置。
  6. P鍵粘貼光標之前,或P后進行粘貼。

復制和粘貼使用相同的步驟執行,但步驟 4 中您將按 y 而不是 d:

d = delete = cut

y = yank = copy

另一個可能更容易記住的選項是在m am 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

注意:在某些環境中,剪貼板緩沖區由*代替+


類似的問題有一些很好的答案:

鍵盤快捷鍵是:

  1. 對於復制:將光標放在塊的開頭並按md ,然后轉到塊的結尾並按y'd 這將選擇要粘貼的塊,按 p

  2. 對於剪切:將光標放在塊的開頭並按ma ,然后轉到塊的結尾並按d'a 這將選擇要粘貼的塊按 p

您可以像在 vi 中那樣進行操作,例如將行從 3020 拉到末尾,執行此命令(將塊寫入文件):

:3020,$ w /tmp/yank

並將此塊寫入另一行/文件,轉到所需位置並執行下一個命令(插入之前寫入的文件):

:r /tmp/猛拉

(提醒:不要忘記刪除文件:/tmp/yank)

暫無
暫無

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

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