在https://stackoverflow.com/a/18466534/42580的启发下,我把这个插入到我的.vimrc中
nmap <F2> :windo set invscrollbind<cr>点击<F2>成功切换所有窗口上的滚动绑定。,但,有一些奇怪的事情,我想了解一下:
发布于 2014-06-27 12:01:37
你的第二个问题我不能再重复了。
第一个问题是因为您使用了windo,windo将遍历所有窗口并执行命令,最后将焦点放在最后一个窗口上。您可以做的是在完成windo之后移动到前面的窗口。
nnoremap <expr> <F2> ":windo set invscrollbind\<cr>:".winnr()."wincmd w\<cr>"发布于 2014-06-27 11:42:30
我知道这篇文章不是一个答案,但可能解决了您的问题:这个函数像diff一样打开窗口同步,但没有着色:
let s:sync_win = 0
function SyncWin()
let nr = winnr()
let s:sync_win = 1 - s:sync_win
if ! s:sync_win
windo set noscrollbind nocursorbind
exe nr . 'wincmd w'
return
endif
windo set scrollbind cursorbind nowrap
exe nr . 'wincmd w'
syncbind
set scrollopt+=hor
endfunction编辑:很抱歉,简短的描述,但我没有时间。
若要使用将其放在.vimrc末尾的函数,请打开要将其分为两部分比较的文件,然后:
:call SynWin()若要关闭同步,请再次调用它。
发布于 2014-06-30 11:02:08
答案2
我在.vimrc中使用了.vimrc,以防止在缓冲区之间切换时窗口上下跳。但这确实与滚动绑定发生了冲突。我重新命名了var,然后就没有问题了:
au BufLeave * if !&diff | let b:URwinview = winsaveview() | endif
au BufEnter * if exists('b:URwinview') && !&diff | call winrestview(b:URwinview) | unlet! b:URwinview | endifhttps://stackoverflow.com/questions/24450614
复制相似问题