コードでjscsの自動修正フォーマットの問題を取得するために、vim内で実行できるコマンドを取得しようとしています。これまでのところ、私は思いついた:
:nmap <F5> :!jscs -x .<CR>
これは問題ありませんが、ディレクトリ全体で実行されるため、バッファをリロードすることを vim に確認する必要があります。vimに現在のファイルのみを修正させ、リロードせずに変更を表示させる方法はありますか?
コードでjscsの自動修正フォーマットの問題を取得するために、vim内で実行できるコマンドを取得しようとしています。これまでのところ、私は思いついた:
: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
、現在のファイルのみを修正します。現在のバッファ内のファイルを編集するため、変更が表示されることに注意してください。リロードするように求められることはありません。