태그 보관물: job_start

(vim) scss 파일을 자동으로 컴파일하게 하기

scss 파일을 저장할 때 자동으로 컴파일 해주는 기능을 만들어보자. vim8의 비동기IO를 이용해서 스무스하게 진행될 수 있게끔 했다. 컴파일은 sassc에 의존하며 이는 파이썬 pip를 이용해서 libsass를 설치하면 얻을 수 있다.

먼저 비동기 처리를 완료한 후 처리할 콜백함수와, 비동기로 컴파일 명령을 실행하는 두 함수를 작성한다.

function! CB_compile_scss(channel, msg)
    echom 'Compilation completed'
    echom a:msg
endfunction

function CompileSCSS()
    let cname = expand('%')
    let fname = expand('%<') . '.css'
    let command = 'sassc ' . cname . ' ' . fname
    echom 'start compile ' . cname
    job = job_start(command, {'callback': 'CB_compile_scss' })
endfunction

이 함수를 vimrc 등에 정의해놓고 다음과 같이 자동명령을 설정한다.

au! BufWritePost *.scss call CompileSCSS()

끝.