2010-08-27 137 views
5

在Vim中,怎樣才能用被抽出的文本替換剩下的行?如果我按「D」鍵,被抽出的文字將被替換爲被刪除的文字。Vim:替換行的末尾

另外,它怎麼可能推到行的末尾?如果我按下「Y」鍵,它會拉開整條線。

回答

2

v對選擇的起始字符輸入視覺模式。然後點擊$即可轉到該行的末尾。之後,擊中y以推翻選擇。

所以:

v$y

相反唬弄的,使用p粘貼。這將粘貼在選擇上。您使用D所以後刪除一些文字,這樣做:

v$p

這將粘貼在選擇刪除的文字。

+0

哦,對不起,我以爲你的意思是按v $ y來拉扯。是的,那是有用的,謝謝。 – Rafid 2010-08-27 16:01:50

12

兩種方式可以與先前抽出的文本替換文本行的末尾:

  1. v$p - v進入可視化模式; $移動到行尾; p粘貼在突出顯示的文本上。
  2. D"0p - 最後一個被抽出(相對於被刪除的)文本被存儲在寄存器0中,所以:D被刪除到行尾; "0選擇寄存器0; p來粘貼該寄存器。
+0

不知道寄存器'0'。這很酷。 – wuputah 2010-08-27 16:07:19

+0

+1 - 不知道註冊表。 – 2010-08-27 16:10:37

+0

是的,我也不知道註冊評論。 無論如何選擇兩個答案作爲接受的答案? :) – Rafid 2010-08-27 16:15:20

4

您的問題似乎是徹底被別人在這一點上(v$py$)回答,但我想一個額外的一條信息:

要拷貝到行尾的,則默認方式爲y$ 。但是,由於默認行爲Yyy重複,並且與其他映射(如DC)不一致,所以map Y y$在您的.vimrc中是相當常見的做法。

+0

感謝您的評論,這是非常有用的。我會添加到我的.vimrc :) – Rafid 2010-08-27 16:02:53

+0

這很漂亮。謝謝 – devth 2010-12-22 18:13:10

1

以下是我會做:

  1. "ay$(猛拉從光標到行結束到寄存器a
  2. 將光標移動到所需的位置替換。
  3. D(刪除到行的結尾)
  4. "ap(粘貼在步驟1中猛拉文本)

誠然,這是非常相似的another answer,但我更喜歡明確指定一個寄存器,因爲它的力量我想想我在做什麼。如果我分心或試圖做其他事情,我可能會意外地覆蓋寄存器0

2

如果要刪除文本而不影響主(未命名)的寄存器,請將文本刪除到名爲"_的「黑洞寄存器」中。通過"_D做到這一點。然後,未命名的註冊將不受影響,您可以正常粘貼以前抽出的文本。

請參閱:h quote_