On 22/08/06 09:49PM, Felipe Contreras wrote: > > diff --git a/mergetools/vimdiff b/mergetools/vimdiff > index 34373ad92c..daeb3cf1d0 100644 > --- a/mergetools/vimdiff > +++ b/mergetools/vimdiff > @@ -325,7 +325,7 @@ gen_cmd () { > if ! echo "$LAYOUT" | grep ",\|/" >/dev/null > then > buf=$(get_buf "$LAYOUT") > - FINAL_CMD="-c \"set hidden diffopt-=hiddenoff | silent execute 'bufdo diffthis' | ${buf}b\"" > + FINAL_CMD="-d -c \"set hidden diffopt-=hiddenoff diffopt-=closeoff | ${buf}b | only\"" > return > fi I found something strange while testing this: This is the final command that is generated now: vim -d -c "set hidden diffopt-=hiddenoff diffopt-=closeoff | 4b | only" LOCAL BASE REMOTE MERGED Turns out that now colors "kind of work", but not completely: - The buffer that is shown by default ("MERGED") contains colors. - If you switch to the "LOCAL" buffer (":buffer 1") it also contains colors. - *But* if you switch to any of the other buffers ("BASE" with ":buffer 2" or "REMOTE" with ":buffer 3"), there are no colors. For some reason, the command that was generated by my patch to v1, does work (?) and all buffers contain diff colors: vimdiff -c "echo | silent 4b | set hidden | let tmp=bufnr('%') | silent bufdo diffthis | exe 'buffer '.tmp" LOCAL BASE REMOTE MERGED