9

コードでjscsの自動修正フォーマットの問題を取得するために、vim内で実行できるコマンドを取得しようとしています。これまでのところ、私は思いついた:

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

これは問題ありませんが、ディレクトリ全体で実行されるため、バッファをリロードすることを vim に確認する必要があります。vimに現在のファイルのみを修正させ、リロードせずに変更を表示させる方法はありますか?

4

2 に答える 2

8

これにより、ファイルを保存するたびに、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>

于 2015-04-23T09:26:36.257 に答える
5

vim-autoformatはすぐに JSCS をサポートします。そのコマンドを呼び出して:Autoformat、現在のファイルのみを修正します。現在のバッファ内のファイルを編集するため、変更が表示されることに注意してください。リロードするように求められることはありません。

于 2015-12-08T22:44:07.667 に答える