嗨,我有一个包含此内容的文件
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE add_customer\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE add_order\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE add_to_cart\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE add_to_wish_list\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE add_transaction\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE clear_cart\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE get_order_contents\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE get_shopping_cart_contents\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE get_wish_list_contents\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE receipt_retrieve\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE remove_from_cart\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE remove_from_wish_list\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE select_categories\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE select_products\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE select_sale_items\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE update_cart\G'
mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE update_wish_list\G'
我想使用一个函数来执行每一行并替换为命令输出,然后搜索以“mysql”开头的下一行并执行该行..直到文件末尾。
这是我的功能
r !mysql -uroot -ppass sas -e 'SELECT name FROM mysql.proc;'
normal! gg /name<CR>n
normal! dd
%normal! I mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE
normal! ggdd0
%normal A\G'
normal! gg0
normal! G
let lastline = line(".")
echom lastline
normal! gg0
"here is where i want to start
.!sh
**"back to normal to search**
normal! /mysql<CR> n
**"when found execute the line**
%normal !!sh
".!sh
endfunction
这适用于第一行,但我不知道如何做所有的行。我知道我很接近..