2012-07-06 56 views
1

讓我們假設我在Safari中選擇一些文本並將其複製到剪貼板,例如「foo,bar」(不帶引號)。現在我可以通過輸入:reg來看到它在Macvim的"*寄存器中可用。我可以使用快捷方式或使用edit-> paste將該寄存器的內容複製到Vim編輯器中。但是,在粘貼之前,如何修改此註冊表(或任何註冊表)的內容。例如,我將如何應用搜索和替換例程,例如搜索「,」並替換爲「。」,使得寄存器現在包含「foo.bar」?Macvim:在粘貼之前修改剪貼板寄存器的內容

在此先感謝!

回答

2
:reg * 
original content 

let @*='altered content' 

:reg * 
altered content 

你可以用每個指定的寄存器來做到這一點。

你舉的例子可以處理:

let @a=substitute(@*,',','.','g') 
"ap 

但你其實應該做的事情太複雜了之前可能使一些備份:

:reg a 
original content 

let a_orig = @a 

let @a='altered content' 
"ap 
altered content 

let @a=a_orig 

:reg a 
original content 
+0

謝謝!這工作完美。 – TriSSSe 2012-07-09 07:50:46

+0

@romainl謝謝,但是當我想用''''''''替換換行符'''^ J''時,失敗了。我想也許換行不是'''''''追加'''''''所以我只是在運行''':reg'''時將它從寄存器中複製過來,但也得到了錯誤的結果。我可以用空格替換換行符嗎? – lerner 2015-06-21 04:01:46

+1

@leoadams,在Vim中'^ J'實際上是單個字符。你可以輸入''來插入。 – romainl 2015-06-21 08:14:57