我在存储过程上做了很多工作,所以我写了一些小小的内容,以便在vim中很好地列出它们。
如何在vim启动时运行此命令,我知道我可以将此功能放在vimrc中。但我真的想知道为什么我无法做到这一点。
/usr/bin/vimx -c "so:'/home/brett/.vim/autoload/testfu'" | call' Myproc1()'
我整夜坐在这里无济于事......这里必须有功能。我希望这有助于某人...我只是在学习
function! Myproc1()
exec "silent !sudo rm storedproc.sql"
exec "silent !sudo touch storedproc.sql"
exec "silent !sudo chmod ao+wr storedproc.sql"
exec "e storedproc.sql"
r !mysql -uroot -ppass sas -e 'SELECT name FROM mysql.proc;'
normal! gg /name<CR>n|dd
%normal! I mysql -uroot -ppass sas -e 'SHOW CREATE PROCEDURE
normal! ggdd0
%normal A\G'
normal! G
let lastline = line(".")
exec "1,".lastline."!sh"
exec "normal! gg03ddIDELIMITER $$\r"
exec "g/1. row/.,+2d|norm! ODELIMITER $$"
exec '%s/^\s\+//|%s/\r//'
exec "g/Create/norm! 010dw ICREATE "
exec "g/character_set_client/.,+2d|norm! IEND $$\rDELIMITER ;\r\r"
normal! gg0jddGddkkp
normal gg=G
exec "w!"
redraw
endfunction
这是我试图称之为
vim -c" so:/home/brett/.vim/autoload/testfu"+"call Myproc()"
有什么办法可以解决这个问题吗?
答案 0 :(得分:0)
你的原始尝试很接近。你有一些不必要的引用和错误的冒号。以下应该有效:
vim -c "source /home/brett/.vim/autoload/testfu | call Myproc1()"
答案 1 :(得分:-1)
好吧我发现答案希望这有助于某人
vim +"call so /home/brett/.vim/autoload/testfu" +"call Myproc()"
这让我工作2次而不是一次;; taa daah!