這個vim腳本保存當前文件並通過js-beautify運行,每次離開insert
模式並返回normal
模式。通過js-beautify運行vim緩衝區內容而不必保存文件
我想通過js-beautify直接運行緩衝區內容而不必先保存文件,使寫入事件明顯滯後,從而提高效率。
function! TidyAndResetCursor()
let cursor_pos = getpos('.')
:w
%!js-beautify %
:w
call setpos('.', cursor_pos)
endfunction
augroup JSTidy
autocmd!
autocmd InsertLeave *.js :call TidyAndResetCursor()
augroup END
的第二個問題是,有時(例如期間undo
)的cursor_pos
復位到文檔中的第一行中,也許是因爲保存光標位置不再存在。它應該跳回到最接近的現有值,而不是默認第一行。
非常感謝!
我想你只是想''!js-beautify -'這將取代你當前的緩衝區。在您明確寫入之前不會保存到磁盤。短劃線文件名僅僅意味着stdin對js-beautify。 –
真棒,謝謝! – overflower
見下文,我的js-beautify不喜歡'-'輸入,它從字面上搜索名爲'-'的文件,不知道如何解決這個問題.. – overflower