Closed sgsoftware closed 4 years ago
Is this project abandoned?
Can you give me your platform and exact vim build version btw? It seems to work ok on Mac (vim 8.2 with patch up to 450) so far. I'll try it on Linux next. It's hard when upgrading a minor version in Vim something is broken on a certain platform.
Platform is Arch Linux. vim --version reports the following:
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Mar 1 2020 17:21:03)
Included patches: 1-343
Compiled by Arch Linux
Huge version with GTK3 GUI. Features included (+) or not (-):
+acl -farsi -mouse_sysmouse -tag_old_static
+arabic +file_in_path +mouse_urxvt -tag_any_white
+autocmd +find_in_path +mouse_xterm +tcl/dyn
+autochdir +float +multi_byte +termguicolors
-autoservername +folding +multi_lang +terminal
+balloon_eval -footer -mzscheme +terminfo
+balloon_eval_term +fork() +netbeans_intg +termresponse
+browse +gettext +num64 +textobjects
++builtin_terms -hangul_input +packages +textprop
+byte_offset +iconv +path_extra +timers
+channel +insert_expand +perl/dyn +title
+cindent +job +persistent_undo +toolbar
+clientserver +jumplist +popupwin +user_commands
+clipboard +keymap +postscript +vartabs
+cmdline_compl +lambda +printer +vertsplit
+cmdline_hist +langmap +profile +virtualedit
+cmdline_info +libcall +python/dyn +visual
+comments +linebreak +python3/dyn +visualextra
+conceal +lispindent +quickfix +viminfo
+cryptv +listcmds +reltime +vreplace
+cscope +localmap +rightleft +wildignore
+cursorbind +lua/dyn +ruby/dyn +wildmenu
+cursorshape +menu +scrollbind +windows
+dialog_con_gui +mksession +signs +writebackup
+diff +modify_fname +smartindent +X11
+digraphs +mouse +sound -xfontset
+dnd +mouseshape +spell +xim
-ebcdic +mouse_dec +startuptime -xpm
+emacs_tags +mouse_gpm +statusline +xsmp_interact
+eval -mouse_jsbterm -sun_workshop +xterm_clipboard
+ex_extra +mouse_netterm +syntax -xterm_save
+extra_search +mouse_sgr +tag_binary
system vimrc file: "/etc/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
system gvimrc file: "/etc/gvimrc"
user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
defaults file: "$VIMRUNTIME/defaults.vim"
system menu file: "$VIMRUNTIME/menu.vim"
fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/libffi-3.2.1/include -I/usr/include/harfbuzz -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/at-spi-2.0 -pthread -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -L. -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.30/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -L/usr/local/lib -Wl,--as-needed -o vim -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lelf -lnsl -lcanberra -lacl -lattr -lgpm -ldl -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.30/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector-strong -L/usr/local/lib -L/usr/lib/perl5/5.30/core_perl/CORE -lperl -lpthread -ldl -lm -lcrypt -lutil -lc -L/usr/lib -ltclstub8.6 -ldl -lz -lpthread -lm
Attached are an example of directory structure and screenshots of what I am getting after ':DirDiff d1 d2' initially (screen1.png - correct) and after going to the next file (screen2.png - messed up). example.zip
Can you try to run :messages and send me what you get? There seems to be a bug in vim where the GotoDiffWindow actually failed with this E479: No match error, which is somewhat similar to https://github.com/vim/vim/issues/4610.
The only output from :messages is: Messages maintainer: Bram Moolenaar Bram@vim.org
It looks like there's something wrong with the :drop command in vim 8.2 on Linux. This is related to this issue here: https://github.com/vim/vim/issues/1503. Basically the wildignore option affects the :drop command somehow (like :args).
The script basically uses :drop when it's ensuring the cursor would land on the diff buffer (which is this /tmp/xyz/0 file), the :drop /tmp/xyz/0 would return E479: No match (only sometimes when wildignore is set to have /tmp/ pattern). I don't really understand the context of this bug and why they haven't fixed this yet. I may have to find some other way to work around it.
I tried to add set wildignore= before the :drop line and it seems to working after that. I don't really want to mess with the people settings of wildignore though, so I need to think about this about on how to fix this. Any suggestion is welcomed!
I believe this has been fix in master now. I basically worked around it by doing a simulated drop function with other functions. Please see if it would work for you.
Latest master works fine. Thanks!
After upgrading Vim from 8.1 to 8.2 DirDiff behaves weirdly. First files difference is shown correctly but when I go to other files diffs the windows are messed up. This is probably related to the new 'popup windows' feature of Vim 8.2.