如何将 jscs 自动修复功能集成到 vim 中?
How can I integrate jscs autofix feature into vim?
我正在尝试在 vim 中获取我可以 运行 的命令,以在我的代码中解决 jscs auto correct 格式问题。到目前为止,我想出了:
:nmap <F5> :!jscs -x .<CR>
没问题,但是 运行 它在整个目录中,我需要向 vim 确认我想重新加载缓冲区。有没有办法让 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
运行。
要将它绑定到一个键(在本例中为 <leader>g
),请使用 noremap <leader>g :JscsFix<cr>
.
vim-autoformat 开箱即用地支持 JSCS。调用其 :Autoformat
命令以仅修复当前文件。请注意,它编辑了当前缓冲区中的文件,因此更改只会出现;系统不会提示您重新加载。
我正在尝试在 vim 中获取我可以 运行 的命令,以在我的代码中解决 jscs auto correct 格式问题。到目前为止,我想出了:
:nmap <F5> :!jscs -x .<CR>
没问题,但是 运行 它在整个目录中,我需要向 vim 确认我想重新加载缓冲区。有没有办法让 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
运行。
要将它绑定到一个键(在本例中为 <leader>g
),请使用 noremap <leader>g :JscsFix<cr>
.
vim-autoformat 开箱即用地支持 JSCS。调用其 :Autoformat
命令以仅修复当前文件。请注意,它编辑了当前缓冲区中的文件,因此更改只会出现;系统不会提示您重新加载。