想用函数启动vim

时间:2013-07-12 00:00:02

标签: vim

我在存储过程上做了很多工作,所以我写了一些小小的内容,以便在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()"

有什么办法可以解决这个问题吗?

2 个答案:

答案 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!