我正在尝试获取一个可以在vim中运行的命令,以在我的代码中获取jscs auto correct格式问题。到目前为止,我已经提出了:
:nmap <F5> :!jscs -x .<CR>
没关系,但是它将在整个目录上运行,我需要确认以确认是否要重新加载缓冲区。有没有办法让vim只修复当前文件并在不重新加载的情况下播放更改?

最佳答案

每当您保存文件时,这将通过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运行该命令。
要将其绑定(bind)到键(在本例中为<leader>g)中,请使用noremap <leader>g :JscsFix<cr>

10-04 14:34