如何在vim中检测车窗位置

如何在vim中检测车窗位置,vim,winmerge,Vim,Winmerge,我正在尝试为vimdiff定制映射,并使它们类似于winmerge 在垂直双向拆分中,我想将alt left映射为假设只有两个窗口,winnr()函数将为第一个窗口返回1,为第二个窗口返回2。您还可以使用winnr(“$”)查找有多少个窗口::echo winnr(“$”) 你也可以只使用dp和do,这样你就不需要在两个窗口之间跳转了,而且它比箭头键更容易到达。这不是对你具体问题的回答,但这里有一些不错的差异调整可能会有所帮助 "" Diff options; ignore whitespace

我正在尝试为vimdiff定制映射,并使它们类似于winmerge


在垂直双向拆分中,我想将alt left映射为

假设只有两个窗口,
winnr()
函数将为第一个窗口返回
1
,为第二个窗口返回
2
。您还可以使用
winnr(“$”)
查找有多少个窗口:
:echo winnr(“$”)


你也可以只使用
dp
do
,这样你就不需要在两个窗口之间跳转了,而且它比箭头键更容易到达。

这不是对你具体问题的回答,但这里有一些不错的差异调整可能会有所帮助

"" Diff options; ignore whitespace.
set diffopt+=iwhite
我不喜欢:diffon:diffoff,因为它们会弄乱wrap(在退出diff时打开它)。所以我只设置了diff、scrollbind、foldmarker和foldcolumn

"" Diff 'd' {{{
    nmap <silent> ,dd :set diff scb fdm=diff fdc=2<CR>
    nmap <silent> ,dD :windo :set diff scb fdm=diff fdc=2<CR>
    nmap <silent> ,do :set nodiff noscb fdm=manual fdc=0<CR>
    nmap <silent> ,dO :windo :set nodiff noscb fdm=manual fdc=0<CR>
    "nmap <silent> ,dd :diffthis<CR>
    "nmap <silent> ,dD :windo :diffthis<CR>
    "nmap <silent> ,do :diffoff<CR>
    "nmap <silent> ,dO :windo :diffoff<CR>
    nmap <silent> ,du :diffupdate<CR>
"" }}}
“Diff'd”{{{
nmap,dd:设置差异scb fdm=差异fdc=2
nmap,dD:windo:set diff scb fdm=diff fdc=2
nmap,do:设置nodiff noscb fdm=手动fdc=0
nmap,dO:windo:set nodiff noscb fdm=manual fdc=0
“nmap,dd:diffthis
“nmap,dD:windo:diffthis
“nmap,do:diffoff
“nmap,dO:windo:diffoff
nmap,du:diffupdate
"" }}}

另外,如果您还没有…请查看DirDiff插件以区分目录树。

dp这样做可能很容易,但我并不自然而然地想到这一点。我被迫从IDE世界使用vim,但现在我正在尝试将vim映射到我在IDE中使用的东西。这个练习让我学到了更多关于vim的知识,而不仅仅是命令。我喜欢这个问题,尽管我建议尽量不要使用箭头。Vim的一部分好处在于,你不必移动你的手!:)使用像alt和<和>(左和右)这样的东西会踢屁股!(虽然如果你把你的diff水平放置是没有意义的,但我很少这样做)。我使用
,因为我还映射了
以移动到下一个或上一个diff。这只会让事情更直观。正如我已经说过的,我之所以这么做是因为vim对我来说不是天生的,我更习惯于使用IDE和eclipe/VisualStudio