您好,我有這個內容的文件執行當前行,然後尋找下一個和執行
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
這適用於第一線,但我無法弄清楚如何做線的整個範圍。我知道我關閉..
這將允許我使用1,18!sh,但不是1,.lastline。!我是否正確地做這件事 – Brett