2010-03-18 5 views
1

Je suis en train de personnaliser les applications pour vimdiff et les rendre similaires à WinmergeComment détecter la position de la fenêtre dans vim

Dans une 2 voies division verticale, je veux la carte alt gauche <a-left> pour déplacer diff courant vers la gauche et vers la droite <a-right> pour déplacer le diff actuel vers la droite. Pour la fusion je peux utiliser :diffg et :diffp. Mais j'ai besoin de savoir dans quelle division je suis afin que je puisse utiliser :diffg/:diffp dans cela.

Y at-il moyen par lequel je peux détecter qui divisent je suis. est Plus précisément, il y a une façon dont je peux savoir si le curseur se trouve à Split gauche ou droit partagé

Related Question how-to-get-list-of-files-which-are-currently-being-diffed-in-vim

+0

J'aime la question, bien que je recommande d'essayer de ne pas utiliser les flèches. Une partie de ce qui est si agréable à propos de Vim est que vous n'avez pas besoin de bouger vos mains! :) En utilisant quelque chose comme alt ensemble avec < and > pour la gauche et la droite serait kick ass! (Bien que ce ne serait pas logique si vous avez vos diffs horizontalement, mais je le fais rarement). – Hannes

+0

J'utilise '' et '' parce que j'ai aussi mappé '' et '' pour passer à la diff suivante ou précédente. Cela rend les choses plus intuitives. Comme je l'ai déjà dit je le fais parce que vim ne vient pas naturellement à moi, je suis plus habitué à wokring et IDE comme eclipe/studio visuel –

Répondre

1

En supposant qu'il n'y a que deux fenêtres, la fonction winnr() renverra 1 pour la première fenêtre et 2 pour la deuxième fenêtre. Vous pouvez également utiliser winnr('$') pour connaître le nombre de fenêtres: :echo winnr('$').

Vous pouvez également simplement utiliser dp et do, alors vous n'avez pas besoin de sauter entre les fenêtres autant, et il est plus facile à atteindre que les touches fléchées.

+0

dp peut être facile, mais il ne vient pas naturellement à moi. J'ai été forcé de vim du monde d'ide, mais maintenant j'essaye de faire la carte de vim à ce que j'ai employé dans l'IDE. Cet exercice m'a fait apprendre beaucoup plus sur vim que juste les commandes –

+0

vient de le tester et la solution winnr fonctionne parfaitement –

1

Pas une réponse à votre question spécifique, mais voici quelques tweaks qui pourraient aider.

"" Diff options; ignore whitespace. 
set diffopt+=iwhite 

Je n'aime pas: diffon: diffoff parce qu'ils mess avec mot de pellicule (il se met en marche lors de la sortie diff). Donc, je ne fais que diff, scrollbind, foldmarker et 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> 
"" }}} 

En outre, consultez le plugin dirdiff pour diffing des arborescences si vous avez pas déjà ...

Questions connexes