Как интегрировать функцию автофиксации 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
Команда исправить только текущий файл. Обратите внимание, что он редактирует файл в текущем буфере, поэтому изменения просто появятся; Вам не будет предложено перезагрузить.