Как интегрировать функцию автофиксации jscs в vim?

Я пытаюсь получить команду, которую могу запустить в vim, чтобы получить проблемы с автокоррекцией jscs в моем коде. До сих пор я придумал:

:nmap <F5> :!jscs -x .<CR>

это нормально, но он запускает его во всем каталоге, и мне нужно подтвердить vim, что я хочу перезагрузить буфер. Есть ли способ заставить vim исправить только текущий файл и воспроизвести изменения без перезагрузки?

2 ответа

Решение

Это будет направлять текущий файл через режим исправления jscs всякий раз, когда вы сохраняете файл (ваш пробег может варьироваться, используя это на практике!):

function! JscsFix()
    "Save current cursor position"
    let l:winview = winsaveview()
    "Pipe the current buffer (%) through the jscs -x command"
    % ! jscs -x
    "Restore cursor position - this is needed as piping the file"
    "through jscs jumps the cursor to the top"
    call winrestview(l:winview)
endfunction
command! JscsFix :call JscsFix()

"Run the JscsFix command just before the buffer is written for *.js files"
autocmd BufWritePre *.js JscsFix

Это также создает команду JscsFix который вы можете запустить, когда вы хотите с :JscsFix, Привязать его к ключу (в данном случае <leader>g) использовать noremap <leader>g :JscsFix<cr>,

vim-autoformat поддерживает JSCS из коробки. Вызвать его :Autoformat Команда исправить только текущий файл. Обратите внимание, что он редактирует файл в текущем буфере, поэтому изменения просто появятся; Вам не будет предложено перезагрузить.

Другие вопросы по тегам