私が一般的にVimに持っていた問題は、ウィンドウ内でバッファを切り替えると(:[n]b
またはMiniBufExplのいずれか)、カーソルの位置は変わらないが、カーソルが中央にある行。バッファを切り替えるときのウィンドウの位置を保持するVim
ウィンドウの中央にカーソルを置くべき場所ではなく、ウィンドウの上部/下部がどこにあるかを視覚的に覚えているので、これは本当に迷惑です。
バッファ上でウィンドウの位置を保持するために変更できる設定はありますか?
私が一般的にVimに持っていた問題は、ウィンドウ内でバッファを切り替えると(:[n]b
またはMiniBufExplのいずれか)、カーソルの位置は変わらないが、カーソルが中央にある行。バッファを切り替えるときのウィンドウの位置を保持するVim
ウィンドウの中央にカーソルを置くべき場所ではなく、ウィンドウの上部/下部がどこにあるかを視覚的に覚えているので、これは本当に迷惑です。
バッファ上でウィンドウの位置を保持するために変更できる設定はありますか?
あなたの質問を読むまで、それは私を気にしませんでした。
これを試してみてください:
if v:version >= 700
au BufLeave * let b:winview = winsaveview()
au BufEnter * if(exists('b:winview')) | call winrestview(b:winview) | endif
endif
@dnetsによって投稿このスクリプトは、常にファイル内の同じ位置にあるとはいえ、私のために画面の上部にカーソルを設定します。
私は(http://vim.wikia.com/wiki/Avoid_scrolling_when_switch_buffersからコピーされた)このにそれを変更し
" Save current view settings on a per-window, per-buffer basis.
function! AutoSaveWinView()
if !exists("w:SavedBufView")
let w:SavedBufView = {}
endif
let w:SavedBufView[bufnr("%")] = winsaveview()
endfunction
" Restore current view settings.
function! AutoRestoreWinView()
let buf = bufnr("%")
if exists("w:SavedBufView") && has_key(w:SavedBufView, buf)
let v = winsaveview()
let atStartOfFile = v.lnum == 1 && v.col == 0
if atStartOfFile && !&diff
call winrestview(w:SavedBufView[buf])
endif
unlet w:SavedBufView[buf]
endif
endfunction
" When switching buffers, preserve window view.
if v:version >= 700
autocmd BufLeave * call AutoSaveWinView()
autocmd BufEnter * call AutoRestoreWinView()
endif
そして、それは今、画面とカーソル位置が保存されて、私が望むように動作します。
私も気にしませんでした。しかし、私はこのマッピングを使用していました: 'nmap:bn '' ' –
tungd
良い仕事、@poisonedbit、おそらくVIMのプログラミングマニュアルをお勧めしますか? – Art
@Art Vimで ':h usr_41.txt'を試してください。さらにSteve Loshの[Vimscriptの難しい方法を学ぶ](http://learnvimscriptthehardway.stevelosh.com/)。 – echristopherson