+ gvimmerge: opens a gvim with some tabs to resolve conflicts

Change-Id: I5d797655d5f7f316f25acf13c9e9295fd3599893
This commit is contained in:
Stefan Liebl 2014-06-03 11:59:29 +02:00
parent 663a18f737
commit 032cdfc6c9
5 changed files with 63 additions and 1 deletions

View File

@ -60,8 +60,10 @@ DelAllMultipleEmptyLines vimsuite.txt /*DelAllMultipleEmptyLines*
DelAllMultipleSameLines vimsuite.txt /*DelAllMultipleSameLines*
DelAllTrailingWhitespace vimsuite.txt /*DelAllTrailingWhitespace*
DirDiff vimsuite.txt /*DirDiff*
GVimMerge vimsuite.txt /*GVimMerge*
GrepDir vimsuite.txt /*GrepDir*
GrepFiles vimsuite.txt /*GrepFiles*
Merge vimsuite.txt /*Merge*
Project vimsuite.txt /*Project*
Projekt vimsuite.txt /*Projekt*
Reformat vimsuite.txt /*Reformat*

View File

@ -179,6 +179,14 @@ Alle Zeilen, die l
*:InsertCHeader*
:InsertCHeader Fügt das Template ... ein
*GVimMerge* *Merge*
gvimmerge Tool zur Unterstützung beim mergen
Um GVim als Tool zum Mergen für eine Versionsverwaltung zu verwenden kann
dieser dort als Merge-Tool eingetragen werden. Der Eintrag sollte
folgendermaßen ausshen:
.../vimsuite/vimfiles.stefan/tools/gvimmerge.bat <base> <mine> <theirs> <merged>
==============================================================================
*cscope_macros*

View File

@ -0,0 +1,17 @@
@echo off
setlocal
set vimdir=%~dp0..\..\..
set vimprg=%vimdir%\vim74\gvim.exe
set vimscript=%~dp0gvimmerge.vim
set base=%1
set mine=%2
set theirs=%3
set merged=%4
if not exist %vimprg% (
echo gvim.exe nicht gefunden
)
set cmd=%vimprg% -f -R %base% %mine% %theirs% %merged% -S %vimscript%
echo %cmd%
%cmd%

View File

@ -0,0 +1,31 @@
function s:OpenDiffTab(left, right)
tabnew
execute 'buffer' a:left
diffthis
execute 'rightbelow vertical sbuffer' a:right
diffthis
endfunction
function s:FixLineendings()
if !exists('b:reload_dos') && !&binary && &ff=='unix' && (0 < search('\r$', 'nc'))
edit ++ff=dos
echom 'fixed lineendings'
let b:reload_dos = 1
endif
endfunction
function s:OpenMergeTabs()
set columns=200
call s:OpenDiffTab(1, 4)
call s:FixLineendings()
setlocal noreadonly modifiable
call s:OpenDiffTab(2, 4)
call s:OpenDiffTab(3, 4)
call s:OpenDiffTab(1, 2)
call s:OpenDiffTab(1, 3)
call s:OpenDiffTab(2, 3)
tabfirst
tabclose
endfunction
call s:OpenMergeTabs()

View File

@ -156,7 +156,11 @@ nnoremap gb :call GotoLastFile()<CR>
" -----------
set sessionoptions=blank,buffers,curdir,folds,help,resize,tabpages,winsize
" open window size
autocmd GUIEnter * winsize 100 60
if &diff
autocmd GUIEnter * set lines=60 columns=200
else
autocmd GUIEnter * set lines=60 columns=100
endif
" read and write files automatically
set autoread
set autowrite