2010-03-18 2 views
1

Я пытаюсь настроить сопоставления для vimdiff и сделать их похожими на WinmergeКак определить положение окна в Vim

В вертикальном 2 пути раскола, я хочу, чтобы отобразить альт-влево <a-left> для перемещения текущего диф влево и вправо-вправо <a-right> для перемещения токового дифференциала с правой стороны.

Для слияния я могу использовать :diffg и :diffp. Но мне нужно знать, какой раскол я нахожусь, чтобы я мог использовать :diffg/:diffp.

Есть ли способ, с помощью которого я могу определить, какой раскол я нахожусь в. В частности есть ли способ, с помощью которого я могу знать, является ли курсор находится в левом разъемном или правого расколе

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

+0

Мне нравится этот вопрос, хотя я рекомендую попробовать не использовать стрелки. Часть того, что так приятно в Vim, заключается в том, что вам не нужно двигать руками! :) Используя что-то вроде alt вместе с < and > для левой и правой будет удар задницу! (Хотя это не имеет смысла, если у вас есть ваши различия по горизонтали, но я редко это делаю). – Hannes

+0

Я использую '' и '' потому что я также сопоставил '' и' ', чтобы перейти к следующему или предыдущему разу. Это просто делает вещи более интуитивными. Как я уже сказал, я делаю это, потому что vim не приходит естественным образом для меня, я больше привык к wokring с и IDE, например, Eclipe/visual studio –

ответ

1

Предполагая, что есть только два окна, функция winnr() вернет 1 для первого окна и 2 для второго окна. Вы также можете использовать winnr('$'), чтобы узнать, сколько окон есть: :echo winnr('$').

Вы также можете просто использовать dp и do, тогда вам не нужно будет прыгать через разные окна, и их легче достичь, чем клавиши со стрелками.

+0

dp do может быть легко, но для меня это не приходит естественным образом. Я был принужден к vim из мира IDE, но теперь я пытаюсь сделать vim-карту тем, что я использовал в IDE. Это упражнение заставило меня узнать больше о vim, чем просто команды –

+0

просто протестировали его, и решение winnr отлично работает –

1

Не ответ на ваш конкретный вопрос, но вот некоторые полезные настройки, которые могут помочь.

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

Я не люблю: diffon: diffoff потому что бардак со словом обертывание (превращает его на при выходе диф). Поэтому я устанавливаю только 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> 
"" }}} 

Кроме того, проверить плагин DirDiff для сравниваете дерева каталогов, если вы еще не ...

Смежные вопросы