vim-jp / issues

有志で既知のバグや要望を検討・管理し、オフィシャルへの還元をしていきます。
https://vim-jp.org/
341 stars 11 forks source link

ビルドした Vim で <BS> でテキストを消せない #1406

Closed iranoan closed 1 year ago

iranoan commented 1 year ago

質問の内容

最新版の手元ビルドした Vim インサート・モードで <BS> が動作しないケースが有るのですが、皆さんの環境で再現するでしょうか? それとも何がビルド方法に間違いが有るでしょうか?

setcellwidths() 指定範囲に変更があったので、使ってみたいと思ったのですが…

症状

下の動画は端末ですが、GVim も同様です

$ ~/src/vim/src/vim ~/downloads/sample.txt

で起動したのが

$ sudo apt install -y libacl1-dev libgpm-dev libxmu-dev libgtk-3-dev libxpm-dev libperl-dev python3-dev lua5.4 liblua5.4-dev
$ git clone https://github.com/vim/vim.git "$HOME/src/vim"
$ cd "$HOME/src/vim"
$ make distclean
$ ./configure --with-features=huge --enable-gui=gtk3 --enable-perlinterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-fail-if-missing CC=$( which clang ) CFLAGS='-O2'
$ make
$ sudo make install
$ sudo rm /usr/local/bin/{g,}vim

としたビルドした Vim です 最後PATHのvimはこのテストの為削除しています また CC=$( which clang ) を消しても同じでした

そしてもう一つの

$ /usr/bin/vim ~/downloads/sample.txt

で起動したのがディストリビューション公式のパッケージです

simplescreenrecorder

ご覧のようにインサート・モードで入力したテキストは削除できますが、開いた時にすでにあったテキストを削除できません

動画にはありませんが

set autoindent smartindent

が設定されていた時に自動で入力された行頭タブも同様に削除できません

動画で使ったVimの設定

$ sed -e '/^"/d' -e '/^$/d' ~/vim/vimrc

scriptversion 4 set viminfo+=n~/.vim/viminfo set background=dark colorscheme habamax filetype plugin on syntax enable set shortmess+=IWc set autoindent smartindent set hidden

Vimのバージョン

長くなりますが、動画で用いた Vim の両方の載せます

$ ~/src/vim/src/vim --version # 問題が起きるビルドした Vim

VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Feb 2 2023 12:54:37) 適用済パッチ: 1-1273 Compiled by xxx@xxx Huge 版 with GTK3 GUI. 機能の一覧 有効(+)/無効(-) +acl +comments +find_in_path +lispindent +multi_byte +rightleft +terminal +wildignore +arabic +conceal +float +listcmds +multi_lang +ruby +terminfo +wildmenu +autocmd +cryptv +folding +localmap -mzscheme +scrollbind +termresponse +windows +autochdir +cscope -footer +lua +netbeans_intg +signs +textobjects +writebackup -autoservername +cursorbind +fork() +menu +num64 +smartindent +textprop +X11 +balloon_eval +cursorshape +gettext +mksession +packages -sodium +timers -xfontset +balloon_eval_term +dialog_con_gui -hangul_input +modify_fname +path_extra -sound +title +xim +browse +diff +iconv +mouse +perl +spell +toolbar +xpm ++builtin_terms +digraphs +insert_expand +mouseshape +persistent_undo +startuptime +user_commands +xsmp_interact +byte_offset +dnd +ipv6 +mouse_dec +popupwin +statusline +vartabs +xterm_clipboard +channel -ebcdic +job +mouse_gpm +postscript -sun_workshop +vertsplit -xterm_save +cindent +emacs_tags +jumplist -mouse_jsbterm +printer +syntax +vim9script +clientserver +eval +keymap +mouse_netterm +profile +tag_binary +viminfo +clipboard +ex_extra +lambda +mouse_sgr -python -tag_old_static +virtualedit +cmdline_compl +extra_search +langmap -mouse_sysmouse +python3 -tag_any_white +visual +cmdline_hist -farsi +libcall +mouse_urxvt +quickfix -tcl +visualextra +cmdline_info +file_in_path +linebreak +mouse_xterm +reltime +termguicolors +vreplace システム vimrc: "$VIM/vimrc" ユーザー vimrc: "$HOME/.vimrc" 第2ユーザー vimrc: "\~/.vim/vimrc" ユーザー exrc: "$HOME/.exrc" システム gvimrc: "$VIM/gvimrc" ユーザー gvimrc: "$HOME/.gvimrc" 第2ユーザー gvimrc: "\~/.vim/gvimrc" デフォルトファイル: "$VIMRUNTIME/defaults.vim" システムメニュー: "$VIMRUNTIME/menu.vim" 省略時の $VIM: "/usr/local/share/vim" コンパイル: /usr/bin/clang -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/x86_64-linux-gnu -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -O2 -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 リンク: /usr/bin/clang -Wl,-E -L/usr/local/lib -Wl,--as-needed -o vim -lgtk-3 -lgdk-3 -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 -lXpm -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lselinux -lacl -lattr -lgpm -L/usr/lib -llua5.4 -Wl,-E -fstack-protector-strong -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu/perl/5.34/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/python3.10/config-3.10-x86_64-linux-gnu -lpython3.10 -lcrypt -ldl -lm -lm -lruby-3.0 -lm -L/usr/lib

$ /usr/bin/vim --version # 問題のないディストリビューション公式の Vim

VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Aug 23 2022 20:18:58) 適用済パッチ: 1-242 Modified by team+vim@tracker.debian.org Compiled by team+vim@tracker.debian.org Huge 版 with GTK3 GUI. 機能の一覧 有効(+)/無効(-) +acl +comments +find_in_path +lispindent +multi_byte +rightleft +terminal +wildignore +arabic +conceal +float +listcmds +multi_lang +ruby +terminfo +wildmenu +autocmd +cryptv +folding +localmap -mzscheme +scrollbind +termresponse +windows +autochdir +cscope -footer +lua +netbeans_intg +signs +textobjects +writebackup -autoservername +cursorbind +fork() +menu +num64 +smartindent +textprop +X11 +balloon_eval +cursorshape +gettext +mksession +packages +sodium +timers -xfontset +balloon_eval_term +dialog_con_gui -hangul_input +modify_fname +path_extra +sound +title +xim +browse +diff +iconv +mouse +perl +spell +toolbar -xpm ++builtin_terms +digraphs +insert_expand +mouseshape +persistent_undo +startuptime +user_commands +xsmp_interact +byte_offset +dnd +ipv6 +mouse_dec +popupwin +statusline +vartabs +xterm_clipboard +channel -ebcdic +job +mouse_gpm +postscript -sun_workshop +vertsplit -xterm_save +cindent +emacs_tags +jumplist -mouse_jsbterm +printer +syntax +vim9script +clientserver +eval +keymap +mouse_netterm +profile +tag_binary +viminfo +clipboard +ex_extra +lambda +mouse_sgr -python -tag_old_static +virtualedit +cmdline_compl +extra_search +langmap -mouse_sysmouse +python3 -tag_any_white +visual +cmdline_hist -farsi +libcall +mouse_urxvt +quickfix +tcl +visualextra +cmdline_info +file_in_path +linebreak +mouse_xterm +reltime +termguicolors +vreplace システム vimrc: "/etc/vim/vimrc" ユーザー vimrc: "$HOME/.vimrc" 第2ユーザー vimrc: "\~/.vim/vimrc" ユーザー exrc: "$HOME/.exrc" システム gvimrc: "/etc/vim/gvimrc" ユーザー gvimrc: "$HOME/.gvimrc" 第2ユーザー gvimrc: "\~/.vim/gvimrc" デフォルトファイル: "$VIMRUNTIME/defaults.vim" システムメニュー: "$VIMRUNTIME/menu.vim" 省略時の $VIM: "/usr/share/vim" コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/x86_64-linux-gnu -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -Wdate-time -g -O2 -ffile-prefix-map=/build/vim-Oy69Mt/vim-9.0.0242=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DSYS_VIMRC_FILE=\"/etc/vim/vimrc\" -DSYS_GVIMRC_FILE=\"/etc/vim/gvimrc\" -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 リンク: gcc -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-E -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -flto=auto -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim -lgtk-3 -lgdk-3 -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 -lselinux -lcanberra -lsodium -lacl -lattr -lgpm -L/usr/lib -llua5.2 -Wl,-E -fstack-protector-strong -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu/perl/5.34/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/python3.10/config-3.10-x86_64-linux-gnu -lpython3.10 -lcrypt -ldl -lm -lm -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lm -lruby-3.0 -lm -L/usr/lib

OSの種類/ディストリ/バージョン

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.10 Release: 22.10 Codename: kinetic $ uname -a Linux xxx 5.19.0-29-generic #30-Ubuntu SMP PREEMPT_DYNAMIC Wed Jan 4 12:14:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

h-east commented 1 year ago
:set backspace?

の結果に start が含まれていない場合はそのような動作になります。

k-takata commented 1 year ago

Ubuntuに入っているvimは、(--version の結果にも表示されている通り)システム vimrcとして "/etc/vim/vimrc" がロードされるようになっています。その中で 'backspace' の設定が行われていると思います。:verbose set backspace? を実行すれば、どこで設定されているか確認できます。

iranoan commented 1 year ago

読み込みファイルの違いを確認すべきでしたね どうもありがとうございました