sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #94761
Re: Vim scripts: Hook hvis filen ikke findes
On Tue, 18 Mar 2008 10:30:04 +0000
Peter Makholm <peter@xxxxxxxxxxx> wrote:
> Peter Makholm <peter@xxxxxxxxxxx> writes:
>
> > Er der nogle vim-eksperter der ved om det er muligt at få vim til at
> > kalde et stykke kode hvis man prøver at indlæse en ikke-eksisterende
> > fil?
>
> Ja, det er muligt. Følgende proof of concept-kode vil førsøge at åbne
> lib/Foo/Bar.pm hvis ikke allerede Foo::Bar findes:
>
> ---START---
>
> function! s:LoadModule()
> let buf = bufnr("%")
> let file = bufname("%")
>
> if ! filereadable(file)
> let realfile = substitute(file, "::", "/", "g")
> exec ':r lib/' . realfile . '.pm'
> endif
> endfunction
>
> autocmd! BufNewFile *::* nested call s:LoadModule()
>
> ---END---
>
> //Makholm
>
>
en anden ting du kunne gøre var at hooke ind i goto-file (gf i insert
mode) så hvis du bruger et modul i dit script og filen ikke eksisterer
som opretter den det.
hvis der med andre ord står:
use Foo::Bar::Baz;
og du så står med cursoren på Foo::Bar::Baz og trykker gf, så forsøger
den at hoppe til filen Foo/Bar/Baz.pm og hvis denne ikke eksisterer, så
opretter den filen (evt. med en template).
selv gf funktionaliteten til perl scripts burde være i perl syntax
filen som følger med i de fleste distributioner. Det med at oprette
filen kan klares ved at smide følgende i din vimrc:
:map gf :e <cfile><CR>
--
Kim Schulz | Need a Content Management System for your website? Go
Geek by nature | get Fundanemt at : http://www.fundanemt.com New
schulz.dk | version out now!
References