SORU
27 Kasım 2010, CUMARTESİ


Vim: üst Dizin Oluşturma Kaydet

Ben vim foo/bar/somefile foo/bar zaten yok çağırmak, Vim kurtarmak için reddediyor.

Bir kabuk geçin veya Vim :!mkdir foo/bar yapabileceğimi biliyorum ama tembelim :) Tampon kaydettiğinde bir şekilde Vim yapmak için otomatik olarak var mı?

CEVAP
27 Kasım 2010, CUMARTESİ


augroup BWCCreateDir
    autocmd!
    autocmd BufWritePre * if expand("<afile>")!~#'^\w\ :/' && !isdirectory(expand("%:h")) | execute "silent! !mkdir -p ".shellescape(expand('%:h'), 1) | redraw! | endif
augroup END

Koşullar not: expand("<afile>")!~#'^\w\ :/' ftp://* !isdirectory gibi dosyaları pahalı format arayın önlemek için dizin oluşturma vim önleyecektir.

Güncelleme: sligtly daha iyi bir çözüm de boş olmayan buftype ve kullanır mkdir(): kontrol eder

function s:MkNonExDir(file, buf)
    if empty(getbufvar(a:buf, '&buftype')) && a:file!~#'\v^\w \:\/'
        let dir=fnamemodify(a:file, ':h')
        if !isdirectory(dir)
            call mkdir(dir, 'p')
        endif
    endif
endfunction
augroup BWCCreateDir
    autocmd!
    autocmd BufWritePre * :call s:MkNonExDir(expand('<afile>'),  expand('<abuf>'))
augroup END

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BigDawsTv

    BigDawsTv

    20 HAZİRAN 2012
  • Joseph Herscher

    Joseph Hersc

    14 Mart 2007
  • Lin Steven

    Lin Steven

    17 EKİM 2006