Ha git háromirányú összevonást végez és ütközik nem tudja feloldani, a fájl ezen területét így jelöli meg:

No unresolvable conflicts here <<<<<<< HEAD xyz ||||||| parent of ... abc ======= 123 >>>>>>> ... 

Van-e mód (és ha igen, hogyan) változtatni e 3 “szakasz” háttérszíne:

  • <<<<<<< HEAD a ||||||| parent of ...
  • ||||||| parent of ... a ======= előtti soron keresztül
  • A a >>>>>>> ...

soron keresztül (SZERKESZTÉS: A kérdés körül forog, ha van mód kiemelni bizonyos vonalakat, más sorokat. xyz általában nem lenne kiemelve, de mivel <<<<<<< és ||||||| ki lenne emelve.)

Azzal, hogy más konfliktusjelzőket is kezelni tud?

A vim legfrissebb verziójának használata a megjegyzés idején. Tehát mostantól kezdve: 1883. 8.1.

A terminálomban fekete hátteret és 256 színt használok. Arra gondoltam, hogy jó lenne ezeket a szakaszokat a legsötétebb R / G / B / C / M / Y színekkel megadni, ezért nem okoztak nagy problémát a szintaxis kiemelés. (Az ANSI 52, 22, 17., 23., 53. és 58. – nem az 1–6 szín.)

Megjegyzések

  • Egy egyszerű Google keresési lekérdezés elegendő lett volna: github.com/rhysd/conflict-marker.vim
  • @klaus, meg kellett volna említenem, hogy megnéztem azt a bővítményt, miközben sok mindent csináltam google keresés. Ez a plugin kiemeli magukat a konfliktusjelzőket. Nem emeli ki ' azt a szöveget is, amelyhez a jelölők társulnak, más vonalakon. Azt hiszem, az a nagy probléma, ha vannak A ' mód bizonyos vonalak kiemelésére más vonalaktól függően. Például a xyz példát általában nem emelnénk ki, hanem mivel ' s <<<<<<< és ||||||| között Szeretném kiemelni.

Válasz

A Vim konfigurációban a következőket teheti (módosíthatja a színek és stílus tetszés szerint):

function! ConflictsHighlight() abort syn region conflictStart start=/^<<<<<<< .*$/ end=/^\ze\(=======$\||||||||\)/ syn region conflictMiddle start=/^||||||| .*$/ end=/^\ze=======$/ syn region conflictEnd start=/^\(=======$\||||||| |\)/ end=/^>>>>>>> .*$/ highlight conflictStart ctermbg=red ctermfg=black highlight conflictMiddle ctermbg=blue ctermfg=black highlight conflictEnd ctermbg=green cterm=bold ctermfg=black endfunction augroup MyColors autocmd! autocmd BufEnter * call ConflictsHighlight() augroup END 

Amely a következőképpen jelenik meg:

írja ide a kép leírását

Ez az, amire vágyik?

Megjegyzések

  • Ez ' abszolút az, amit én ' m követek. Azért <

némi furcsaságom van a vimscript-lel. Ha beírom a példáját, az pontosan úgy néz ki, mint az Ön által közzétett kép. Ha elmentem a példáját, akkor indítsa újra a vim-et az új fájl szerkesztésével, az borzalmasan kiakad. (vim 8.1.1186.) Még furcsább, ha akkor egy létező fájl összes sorát furcsán mutatom, és újból beillesztem a tartalmát, akkor ' még mindig rosszul jelenik meg. i.ibb.co/jvGMH6t/wtfvim.jpg

  • tényleges egyesítési forgatókönyvben történő használata még furcsább színt vált ki, mint az I kép összekapcsolva, a conflictStart megfelelően kiemelve; a conflictMiddle ||||||| része piros színnel, de a sor többi része kékkel, ahogy annak lennie kell; a ======= piros színnel; a >>>>>>> .* sor sárga színnel (hol jött ebbe a sárga, ott nincs sárga); és a fájl többi része, amelynek ' egyáltalán nem kell zölden szerepelnie a konfliktusnak, még mindig conflictEnd néven a SynStack() függvény a stackoverflow.com/questions/30247603
  • Hasonlóképpen, a tényleges használatával egyesítési forgatókönyv, ha másolom / beillesztem a tartalmat egy új fájlba, akkor az a várt módon jelenik meg, de amint ' menti és a vim újraindul, rosszul jelenik meg.
  • Egy tényleges egyesítési forgatókönyvben letilthatja az eredeti diff színezést a :diffoff használatával, és csak a ' s fájltípusokat hagyja meg. szintaxis kiemelés. Játszom egy kicsit, hogy kiderüljön az első eseted.
  • Ack, sajnálom, elfelejtette, hogy a konfliktus_marker plugint telepítve hagytam, miután megpróbáltam a bejegyzésem előtt, ami ellentmondásos és okozza a problémát. Ennek eltávolítása, és már nincs problémája.
  • Válasz

    Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük