Bug 33299

Summary: Vim разучился работать со стреклками
Product: Sisyphus Reporter: ruslandh <ruslandh>
Component: vim-minimalAssignee: Gleb F-Malinovskiy <glebfm>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: admsasha, evg, glebfm, ldv, mike, rider, ruslandh, sem, temap
Version: unstable   
Hardware: all   
OS: Linux   
URL: https://forum.altlinux.org/index.php?topic=38487.0

Description ruslandh 2017-03-29 13:33:22 MSK
Vim разучился работать со стреклками в графике.
Comment 1 Артём 2017-03-29 14:24:58 MSK
Не работают стрелки в режиме редактирования после обновления 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
Comment 2 Gleb F-Malinovskiy 2017-03-29 14:41:02 MSK
Можно, пожалуйста, точно определиться с тем, в чём, как вы считаете, ошибка?
vim? gvim? vi?

Стрелки в программе vi не работали никогда.  Может кто-то сказать, почему возникло мнение, что они когда-то работали?
Comment 3 Anton Farygin 2017-03-29 14:45:53 MSK
у меня стрелки в vi прямо сейчас работают.
$ rpm -qf /bin/vi
vim-minimal-8.0.381-alt1.x86_64
Comment 4 Артём 2017-03-29 21:10:34 MSK
У меня прямо сейчас стрелки работают тут:
$ 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


А вот там, где компьютер успел обновиться, там не работают. Выхлоп в сообщении выше
Comment 5 Gleb F-Malinovskiy 2017-03-29 21:33:22 MSK
Программа vi не должна по умолчанию работать со стрелочками.

Но вы всегда можете использовать ":set nocompatible", в том числе написать его в ~/.exrc .  Ещё можно запускать vi с ключом -N с тем же эффектом.
Comment 6 Anton Farygin 2017-03-29 21:37:03 MSK
Да, в режиме редактирования и правда не работают
Comment 7 Артём 2017-03-29 21:40:47 MSK
(В ответ на комментарий №5)
> Программа vi не должна по умолчанию работать со стрелочками.
> 
> Но вы всегда можете использовать ":set nocompatible", в том числе написать его
> в ~/.exrc .  Ещё можно запускать vi с ключом -N с тем же эффектом.

Так работает. Как теперь сделать так, чтобы всё время работало? И чтобы при следующем обновлении на всех компьютерах и во всех компьютерных классах во всех зданиях школы заработало как было?
Comment 8 Gleb F-Malinovskiy 2017-03-29 21:46:53 MSK
(In reply to comment #7)
> Так работает. Как теперь сделать так, чтобы всё время работало? И чтобы при
> следующем обновлении на всех компьютерах и во всех компьютерных классах во всех
> зданиях школы заработало как было?

Используйте vim везде, где вы хотите, получить функциональность, которую vi предоставлять не должен.
Comment 9 ruslandh 2017-03-29 23:59:51 MSK
Спасибо за разъяснение @glebfm

Resume:

Прописать в 

~/.exrc m

строчку

set nocompatible
Comment 10 Артём 2017-03-30 00:05:23 MSK
(В ответ на комментарий №9)
> Спасибо за разъяснение @glebfm
> 
> Resume:
> 
> Прописать в 
> 
> ~/.exrc m
> 
> строчку
> 
> set nocompatible
Это будет в обновлениях? ЧТобы автоматически починилось на всех компьютерах?
Comment 11 Michael Shigorin 2017-03-30 13:45:05 MSK
(В ответ на комментарий №10)
> Это будет в обновлениях? ЧТобы автоматически починилось на всех компьютерах?
Артём, Вам уже сказали, но я попробую разъяснить.

vi -- это программа для АВАРИЙНОГО ремонта.  Когда всё нахрен разлетелось, включая /usr и terminfo в нём.  Поэтому некоторое минимальное описание нескольких терминалов в него зашивается при сборке.

Применять эту программу кому-либо кроме системных администраторов, разгребающих подобные случаи, НЕ СЛЕДУЕТ.

Применять следует vim, установив пакет vim-console или vim-enhanced.

Рассчитывать на какие-либо "улучшения юзабилити" vi в обновлениях не стоит.

У меня всё.
Comment 12 Anton Farygin 2017-03-30 14:06:29 MSK
Миша, да нам бы не ухудшать юзабилити ;)
Comment 13 Артём 2017-03-30 14:19:20 MSK
Я и не прошу улучшать на самом деле. Я же прошу вернуть как было. Сейчас ухудшили юзабилити, а я прошу просто исправить это недоразумение. До обновления было всё нормально. ПОсле обновления появился этот диалог на багзилле. Стоит только исправить это ухудшение и вопрос исчерпан.
Ещё раз: я не прошу ничего улучшать. Я прошу ВЕРНУТЬ возможность, которая была ещё буквально недавно до обновления и которую УБРАЛИ после обновления.
Comment 14 Gleb F-Malinovskiy 2017-03-30 16:16:12 MSK
Ещё раз.  В сборках vi для версий < 8 было неправильное поведение. Когда стоял просто vi, он работал в режиме compatible (и это правильно). А когда устанавливался пакет vim-common, он начинал работать в режиме nocompatible (это неправильно).

Теперь вопрос -- кто те люди, которым вы установили vim, но заставляете использовать vi, а если так, то зачем им стрелочки?


В любом случае, я считаю, что программа vi должна по умолчанию работать в том режиме, в котором она теперь работает.
Comment 15 Mikhail Efremov 2017-03-30 16:28:37 MSK
Давайте я тоже поучаствую в этом празднике жизни, попробую объяснить еще раз то, что уже несколько раз объяснили.
Раньше в vi была бага,  из-за которой он мог читать чужой конфиг и его поведение менялось. Теперь vi починили, чужой конфиг он больше не читает и по умолчанию ведет себя так, как и полагается программе vi.
Вообще потенциально можно выключить сборку vi из исходников vim и собрать "настоящий" vi из bsd, который стрелочек не умеет в принципе, AFAIK.

P.S. Глеб уже ответил пока я это писал, но раз уж написал, то пусть будет.
Comment 16 Michael Shigorin 2017-03-30 16:41:02 MSK
(В ответ на комментарий №15)
> Раньше в vi была бага,  из-за которой он мог читать чужой конфиг
А, так вот из-за чего он на set mouse=a в моём ~/.vimrc ругался!
Спасибо за разъяснение.