Vim разучился работать со стреклками в графике.
Не работают стрелки в режиме редактирования после обновления vi до: vi --version VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Mar 15 2017 12:28:07) Included patches: 1-381 Compiled by Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org> Tiny version without GUI. Features included (+) or not (-): +acl -farsi -mouse_netterm +tag_binary -arabic -file_in_path -mouse_sgr -tag_old_static -autocmd -find_in_path -mouse_sysmouse -tag_any_white -balloon_eval -float -mouse_urxvt -tcl -browse -folding -mouse_xterm -termguicolors +builtin_terms -footer -multi_byte +terminfo -byte_offset +fork() -multi_lang -termresponse -channel -gettext -mzscheme -textobjects -cindent -hangul_input -netbeans_intg -timers -clientserver -iconv -num64 -title -clipboard -insert_expand +packages -toolbar -cmdline_compl -job -path_extra -user_commands -cmdline_hist -jumplist -perl -vertsplit -cmdline_info -keymap -persistent_undo -virtualedit -comments -lambda -printer +visual -conceal -langmap -profile -visualextra -cryptv -libcall -python -viminfo -cscope -linebreak -python3 -vreplace -cursorbind -lispindent -quickfix +wildignore -cursorshape -listcmds -reltime -wildmenu -dialog -localmap -rightleft -windows -diff -lua -ruby +writebackup -digraphs -menu -scrollbind -X11 -dnd -mksession -signs -xfontset -ebcdic -modify_fname -smartindent -xim -emacs_tags -mouse -startuptime -xpm -eval -mouse_dec -statusline -xsmp +ex_extra -mouse_gpm -sun_workshop -xterm_clipboard -extra_search -mouse_jsbterm -syntax +xterm_save system vimrc file: "/etc/vim/vimrc" user vimrc file: "$HOME/.vimrc" 2nd user vimrc file: "~/.vim/vimrc" user exrc file: "$HOME/.exrc" defaults file: "$VIMRUNTIME/defaults.vim" fall-back for $VIM: "/usr/share/vim" Compilation: x86_64-alt-linux-gcc -c -I. -Iproto -DHAVE_CONFIG_H -pipe -Wall -g -O2 -DSYS_VIMRC_FILE=\"/etc/vim/vimrc\" -DSYS_GVIMRC_FILE=\"/etc/vim/gvimrc\" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 Linking: x86_64-alt-linux-gcc -L/usr/local/lib -Wl,--as-needed -o vim -lm -lselinux -ltinfo -lacl -lattr -ldl
Можно, пожалуйста, точно определиться с тем, в чём, как вы считаете, ошибка? vim? gvim? vi? Стрелки в программе vi не работали никогда. Может кто-то сказать, почему возникло мнение, что они когда-то работали?
у меня стрелки в vi прямо сейчас работают. $ rpm -qf /bin/vi vim-minimal-8.0.381-alt1.x86_64
У меня прямо сейчас стрелки работают тут: $ vi --version VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Nov 25 2015 16:51:15) Included patches: 1-353 Compiled by Igor Vlasenko (ALT Linux Sisyphus) <viy@altlinux.org> Tiny version without GUI. Features included (+) or not (-): -arabic -autocmd -balloon_eval -browse +builtin_terms -byte_offset -cindent -clientserver -clipboard -cmdline_compl -cmdline_hist -cmdline_info -comments -conceal -cryptv -cscope -cursorbind -cursorshape -dialog -diff -digraphs -dnd -ebcdic -emacs_tags -eval -ex_extra -extra_search -farsi -file_in_path -find_in_path -float -folding -footer +fork() -gettext -hangul_input -iconv -insert_expand -jumplist -keymap -langmap -libcall -linebreak -lispindent -listcmds -localmap -lua -menu -mksession -modify_fname -mouse -mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse -mouse_xterm -mouse_urxvt -multi_byte -multi_lang -mzscheme -netbeans_intg -path_extra -perl -persistent_undo -printer -profile -python -python3 -quickfix -reltime -rightleft -ruby -scrollbind -signs -smartindent -sniff -startuptime -statusline -sun_workshop -syntax -tag_binary -tag_old_static -tag_any_white -tcl +terminfo -termresponse -textobjects -title -toolbar -user_commands -vertsplit -virtualedit -visual -viminfo -vreplace +wildignore -wildmenu -windows +writebackup -X11 -xfontset -xim -xsmp -xterm_clipboard +xterm_save system vimrc file: "/etc/vim/vimrc" user vimrc file: "$HOME/.vimrc" user exrc file: "$HOME/.exrc" fall-back for $VIM: "/usr/share/vim" Compilation: x86_64-alt-linux-gcc -c -I. -Iproto -DHAVE_CONFIG_H -I/usr/local/include -pipe -Wall -g -O2 -DSYS_VIMRC_FILE=\"/etc/vim/vimrc\" -DSYS_GVIMRC_FILE=\"/etc/vim/gvimrc\" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 Linking: x86_64-alt-linux-gcc -L/usr/local/lib -Wl,--as-needed -o vim -lm -lnsl -lselinux -ltinfo -lacl -lattr -ldl А вот там, где компьютер успел обновиться, там не работают. Выхлоп в сообщении выше
Программа vi не должна по умолчанию работать со стрелочками. Но вы всегда можете использовать ":set nocompatible", в том числе написать его в ~/.exrc . Ещё можно запускать vi с ключом -N с тем же эффектом.
Да, в режиме редактирования и правда не работают
(В ответ на комментарий №5) > Программа vi не должна по умолчанию работать со стрелочками. > > Но вы всегда можете использовать ":set nocompatible", в том числе написать его > в ~/.exrc . Ещё можно запускать vi с ключом -N с тем же эффектом. Так работает. Как теперь сделать так, чтобы всё время работало? И чтобы при следующем обновлении на всех компьютерах и во всех компьютерных классах во всех зданиях школы заработало как было?
(In reply to comment #7) > Так работает. Как теперь сделать так, чтобы всё время работало? И чтобы при > следующем обновлении на всех компьютерах и во всех компьютерных классах во всех > зданиях школы заработало как было? Используйте vim везде, где вы хотите, получить функциональность, которую vi предоставлять не должен.
Спасибо за разъяснение @glebfm Resume: Прописать в ~/.exrc m строчку set nocompatible
(В ответ на комментарий №9) > Спасибо за разъяснение @glebfm > > Resume: > > Прописать в > > ~/.exrc m > > строчку > > set nocompatible Это будет в обновлениях? ЧТобы автоматически починилось на всех компьютерах?
(В ответ на комментарий №10) > Это будет в обновлениях? ЧТобы автоматически починилось на всех компьютерах? Артём, Вам уже сказали, но я попробую разъяснить. vi -- это программа для АВАРИЙНОГО ремонта. Когда всё нахрен разлетелось, включая /usr и terminfo в нём. Поэтому некоторое минимальное описание нескольких терминалов в него зашивается при сборке. Применять эту программу кому-либо кроме системных администраторов, разгребающих подобные случаи, НЕ СЛЕДУЕТ. Применять следует vim, установив пакет vim-console или vim-enhanced. Рассчитывать на какие-либо "улучшения юзабилити" vi в обновлениях не стоит. У меня всё.
Миша, да нам бы не ухудшать юзабилити ;)
Я и не прошу улучшать на самом деле. Я же прошу вернуть как было. Сейчас ухудшили юзабилити, а я прошу просто исправить это недоразумение. До обновления было всё нормально. ПОсле обновления появился этот диалог на багзилле. Стоит только исправить это ухудшение и вопрос исчерпан. Ещё раз: я не прошу ничего улучшать. Я прошу ВЕРНУТЬ возможность, которая была ещё буквально недавно до обновления и которую УБРАЛИ после обновления.
Ещё раз. В сборках vi для версий < 8 было неправильное поведение. Когда стоял просто vi, он работал в режиме compatible (и это правильно). А когда устанавливался пакет vim-common, он начинал работать в режиме nocompatible (это неправильно). Теперь вопрос -- кто те люди, которым вы установили vim, но заставляете использовать vi, а если так, то зачем им стрелочки? В любом случае, я считаю, что программа vi должна по умолчанию работать в том режиме, в котором она теперь работает.
Давайте я тоже поучаствую в этом празднике жизни, попробую объяснить еще раз то, что уже несколько раз объяснили. Раньше в vi была бага, из-за которой он мог читать чужой конфиг и его поведение менялось. Теперь vi починили, чужой конфиг он больше не читает и по умолчанию ведет себя так, как и полагается программе vi. Вообще потенциально можно выключить сборку vi из исходников vim и собрать "настоящий" vi из bsd, который стрелочек не умеет в принципе, AFAIK. P.S. Глеб уже ответил пока я это писал, но раз уж написал, то пусть будет.
(В ответ на комментарий №15) > Раньше в vi была бага, из-за которой он мог читать чужой конфиг А, так вот из-за чего он на set mouse=a в моём ~/.vimrc ругался! Спасибо за разъяснение.