2010-03-09 34 views
3

我已閱讀其他帖子,例如vim: Executing a list of editor commands等。對於我來說,答案並不明確。我有一些從SQL查詢中生成的編輯器命令。它使用:s/foo/bar來更改國家代碼(從FIPS到非標準代碼集)。下面是該文件的一個示例:如何在VIM中執行一堆存儲在文件中的編輯器命令?

:s/CB/CAMBO 
:s/CQ/NMARI 
:s/KV/KOSOV 
:s/PP/PAPUA 
... 

我已經保存在一個名爲fipsToNonStd.vim(不確定正確的擴展名)的文件。我想要一個接一個地運行這些命令。最簡單的方法是什麼?

非常感謝! SO岩石!

回答

7

我想你正在尋找:source命令。

online documentation,你可以在vim中看到運行:help :source

+0

我剛剛發現了這個我自己!謝謝! – les2 2010-03-09 17:00:18

1

:源文件名

3

一般而言,您只想將所有這些命令放入.vim文件。例如,你可以在一個名爲convert.vim文件保存:

:%s/CD/CAMBO/g 
:%s/CQ/NMARI/g 
" etcetera 

在這一點上,你可以任何文件加載到Vim,輸入在編輯器中執行以下操作:

:so convert.vim 

或者,如果這是你需要在一個漂亮的腳本基礎上做的事情,那麼爲什麼打擾甚至打開vim?做到這一切的命令行。你可以通過做下面的事情來做到這一點。修改convert.vim再次:

:%s/CD/CAMBO/g 
:%s/CQ/NMARI/g 
" etcetera 
:w! 
:q 

然後,你可以只是做這一切的命令行上。假設你需要轉換的'輸入文件'被稱爲data.txt。從命令行你可以這樣做:

vim -s convert.vim data.txt 

這將爲您處理/轉換您的數據並保存並完成。

0

你可以把這些行放到一個函數中,稍後調用:調用FName