2011-10-21 73 views
3

假設您有這樣的文字:如何在VIM中進行剪切和粘貼?

SOMETHING_XXXXXXXXXXXXXX_ELSE 
SOMETHING_XXXXXXXXXXXXXX_ELSE2 
SOMETHING_XXXXXXXXXXXXXX_ELSE3 
SOMETHING_XXXXXXXXXXXXXX_ELSE4 

而且你想用這個詞來代替所有XXX..XXX

HELLOWORLD 

如果我進入視覺模式,然後猛拉的話,我怎麼可能再更換上面4行中的XXX..XXX使用剪切和粘貼?

如果我嘗試,會發生什麼是X進入我的'剪貼板',然後我堅持只是手動輸入。

+0

這是一個vim問題或視覺工作室的問題? – Oded

+0

@Oded a [viemu](http://www.viemu.com/)問題;-)並非所有的vi [m]都是相同的。 – 2011-10-21 19:48:04

+0

@Oded viemu是vim在VS環境下的一個商業端口。在某些情況下,它的行爲與vim有所不同,這可能是爲什麼原始海報想要包含它。 – Andrew

回答

4

一個很好的選擇,我不知道這是否會在工作viemu,但在VIM中,您可以執行以下操作...

使用猛拉和粘貼

拷貝命令到一個特定的寄存器。在可視模式下選擇文本並使用命令"ay將文本抽出到寄存器a。然後粘貼時調用"ap命令,該命令粘貼a寄存器的內容。

使用正常的命令

但我強烈希望正常使用的命令。只是用線可視化模式(<C-v>)選擇線

SOMETHING_XXXXXXXXXXXXXX_ELSE 
SOMETHING_XXXXXXXXXXXXXX_ELSE2 
SOMETHING_XXXXXXXXXXXXXX_ELSE3 
SOMETHING_XXXXXXXXXXXXXX_ELSE4 

,然後發出以下命令::'<,'>normal fXct_HELLOWORLD。那麼你將有

SOMETHING_HELLOWORLD_ELSE 
SOMETHING_HELLOWORLD_ELSE2 
SOMETHING_HELLOWORLD_ELSE3 
SOMETHING_HELLOWORLD_ELSE4 

這意味着它將運行命令fXct_HELLOWORLD爲每一行。讓我解釋一下命令:

  • fX - 移動光標直到第一個X;
  • ct_ - 刪除所有東西,直到插入模式;
  • HELLOWORLD - 將代替XXXXXXXXXXXXXX的單詞;
+1

謝謝你的'fX'和'ct_'!以前不知道那些。 –

+0

@DavidPoole如果你想改變你正在搜索的角色,你也可以使用cf 。 – Despo

+0

@DavidPoole,不客氣! –

0

突出顯示四行在視覺模式下,然後

:'<,'>s/X\+/HELLOWORLD/g 
+0

除非你想要更自動的東西。 :) – Andrew

+0

我不想要搜索和替換解決方案,嘗試使用剪切和粘貼技術來學習此技術(如果可能)? – codecompleting

0

假設所有 「XXX..XXX」 是相同的。問題是,目前還不清楚有..
如果你想這樣做全球

:%s/XXX..XXX/HELLOWORLD/gc 

或只是指定行:

:123,128s/XXX..XXX/HELLOWORLD/gc 
0

通過這樣一個問題:How do I use vim registers?我發現^ R在命令模式將粘貼一個註冊表。

例如,XXXX高亮然後抽出到「註冊: :S/^ R」/HELLOWORLD/g的

1

的一種方法是,以直觀地選擇你要替換,改變它的代碼一旦

CTRL + v 3jt_cHELLOWORLD [Esc]鍵

注:它需要幾秒鐘的所有線路進行更新

另一種方法是通過創建一個宏:

記錄宏:

q10fXct_HELLOWORLD [ESC]在其他條紋●

運行宏:

Ĵ@ 1j @ 1j @ 1

Q1記錄人品1宏

@ 1重播宏

但搜索和替換是你的問題

+0

這就是爲什麼我更喜歡emacs ;-) – 2011-10-21 20:37:47

+0

@pst從未嘗試emacs,但我開始認爲我應該給他們一個鏡頭。 – Despo

+0

這只是一個陳舊的Lisp方言,帶有一些文本編輯功能/顯示內容 - 但聽起來您已經在[vi/vim learning curve plateu](http://blogs.msdn.com/b/steverowe/ archive/2004/11/17/code-editor-learning-curves.aspx)所以沒有理由改變;-)原創評論爲「我應該做什麼!?!?!」反應。 (我用足夠的vi/elvis來編輯配置文件,就是這樣。) – 2011-10-21 21:41:36