vimで、sassファイル保存時にひとつ上の階層に書きだすスクリプト
すげー冗長だけど、なんとか形になったので貼っておくw
ちなみに、vimからsassを変換する(–watchしない)を参考にしました。
function! Sass_convert()
let scss = expand('%:p')
let filename = expand('%:t:r')
let scsspath = substitute(scss, '\v(/.*)/(.*)', '\1', '')
let parent = substitute(scsspath, '\v(/.*)/(.*)', '\1', '')
let css = parent . '/' . filename . '.css'
let cmd = printf('sass -t compressed %s %s &', scss, css)
let res = system(cmd)
if res != ''
echo res
endif
endfunction
au! BufWritePost *.scss call Sass_convert()
こんな感じ。substituteのところもっとスマートにできそうだけど、vimの正規表現よくわからん・・。