1

作業中のリポジトリの差分を新しいウィンドウですばやく開くために、.vimrc に新しいマッピングを作成しました。

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""                                                
" Quickly see diff
" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Open /tmp/tmp.diff in a new split
" delete the entire content
" read in the diff
nnoremap <leader>d :vsp /tmp/tmp.diff<CR>ggdG<bar>:r !hg diff<CR>
" Automatically write the diff when exiting the buffer so we're not asked to
" save it
autocmd! BufUnload /tmp/tmp.diff :w<CR>

ご覧のとおり、バッファを終了するときに BufUnload autocmd を使用してファイルを保存します。これは、差分を表示するたびに手動で書き込む必要がないためです。しかし、私はむしろ Vim が私に警告しないようにしたいと思っています。

保存されていないコンテンツがあるときに閉じられているかどうかを気にしない、Vim でバッファーを開く方法はありますか? また、特定のファイルを開く必要がなく、匿名のバッファを開く必要がない場合も同様です。

私はむしろ自動書き込みを使用したくありません。

(私は Vim/Vimscript の初心者なので、関数を書く必要がある場合は教えてください)

4

1 に答える 1

5

私はそのようなバッファにこれを持っています:

setlocal buftype=nofile noswapfile bufhidden=delete

たとえばgit diff、現在のファイルで実行するための私のホットキー (差分出力はそのようなバッファーに保持されます):

function Git_diff(fil)
    abo new
    exe '0read ++ff=unix !git diff -- ' . a:fil
    setlocal noma ro ts=8 tw=0 nowrap syn=diff ft=diff
    setlocal buftype=nofile noswapfile bufhidden=delete
    go
endfunction
map <f3> :call Git_diff(expand("%"))<CR>gg
于 2012-07-19T09:46:42.077 に答える