是否可以抽出一個函數並將其粘貼到一個單詞上,以便它將該單詞作爲參數使用?例如,如果我有如何在一個單詞上粘貼一個函數來包裝它? (vim)
def foo(name):
pass
"John"
有沒有什麼辦法可以粘貼foo
到"John"
從而得到foo("John")
是否可以抽出一個函數並將其粘貼到一個單詞上,以便它將該單詞作爲參數使用?例如,如果我有如何在一個單詞上粘貼一個函數來包裝它? (vim)
def foo(name):
pass
"John"
有沒有什麼辦法可以粘貼foo
到"John"
從而得到foo("John")
當然可以。你可以使用像這樣的宏:
Yank: <Esc>`<"ayf(f)"by`>
Paste: B"aPE"bp
讓我們解開它們。該猛拉宏假定你有功能選擇並執行以下操作:
<Esc>
- 取消當前的選擇`<
- 移動到最後選擇的開始"ayf(
- 抽出文字達和包括右括號中的開括號「a」f)
- 移至右括號"by'>
- 抽出一切都交給最後選擇結束到寄存器「B」的粘貼宏是簡單得多:
B
- 移動到當前單詞的開頭"aP
- 在當前位置前面粘貼寄存器「a」的內容E
- 移動到當前單詞的末尾"bp
在當前位置後粘貼寄存器「b」的內容如果是一次性的事情,你可以只使用一個宏:
:map q 0ifoo(^vESCA)^vESC
只需在您想要更改的每一行上點擊「q」即可。 如果單詞不在一行上,你必須要更聰明一點。
我實際上可以把我的頭包裹在裏面。謝謝! – puk 2012-02-24 03:28:07