Определить конфигурацию vim (ведут себя по-разному в разных дистрибутивах)

и другие vi-подобные редакторы

Модератор: /dev/random

Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Определить конфигурацию vim

Сообщение Stauffenberg »

Всем привет.

Как определить/изменить версию vim (не версию программы, а конфигурацию), в которой, к примеру,
* не появляется сообщение "insert", когда нажимаешь i
* в режиме редактирования нельзя использовать стрелочки для навигации (вместо них vim пишет символы A, B, C и D).
* не работает backspace
* del менят регистр предшествующей буквы

Сейчас такое снова встретил в Debian testing, до этого не привычно было в OpenBSD. Думал дело в vimrc, поэтому заменил его тем же конфиг-файлом из openSUSE, никаких изменений в поведении vim.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20872
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Определить конфигурацию vim

Сообщение Bizdelnick »

vim --version
Если это вообще vim, а не другая реализация vi.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ZyX
Сообщения: 355
ОС: Gentoo

Re: Определить конфигурацию vim

Сообщение ZyX »

У вас что‐то не то с терминологией, конфигурация сама по себе не имеет версий, это просто файлы на языке Vim.

Проблемы с тем, что вы перечислили делятся на две группы: «сообщение „insert“» и «неправильно работают клавиши». Первая лечится «настройкой» compatible, а, точнее, устанавливаемой ей showmode. См. справку по 'compatible', чтобы определить, почему она не установлена по‐умолчанию.

Вторая группа говорит о том, что $TERM содержит ссылку на неправильное описание используемого эмулятора терминала, и Vim ожидает, что нажатия производят escape‐последовательности, которые производит не тот эмулятор терминала, что вы используете, а тот, на который ссылается $TERM. Это можно исправить в vimrc, но это неправильно исправлять там: в первую очередь, убедитесь, что в vimrc не упоминается ни $TERM, ни настройка term. Исправлять нужно в настройках используемого эмулятора терминала в первую очередь. В‐третью№ — в настройках используемой оболочки (и только если эмулятор терминала не может быть правильно настроен). Одна из возможных причин, почему Vim ведёт себя именно так — вы как‐то исправляли $TERM в vimrc, но исправляли его под другой эмулятор терминала.

№ Во‐вторую — прописывайте $TERM там, где запускаете (описывается процедура запуска) эмулятор терминала (в .desktop файле, к примеру). Но это как‐то ненадёжно.
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Определить конфигурацию vim

Сообщение Stauffenberg »

ZyX
Это дефолтное поведение vi в Debian 8 (testing), т.е. я настройки не менял.

Код: Выделить всё

$ vi --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 13 2016 01:54:12)
Included patches: 1-3
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by pkg-vim-maintainers@lists.alioth.debian.org
Small 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: "$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: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/build/vim-utLJNF/vim-8.0.0003=. -fPIE -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc   -fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim    -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo  -lselinux -lacl -lattr -ldl


Да, в openSUSE выглядит немного иначе :)

Код: Выделить всё

$ vi --version
VIM - Vi IMproved 7.4 (2013 Aug 10)
Included patches: 1-52
Compiled by 'http://www.opensuse.org/'
Huge version without GUI.  Features included (+) or not (-):
+acl             +farsi           +mouse_netterm   +syntax
+arabic          +file_in_path    +mouse_sgr       +tag_binary
+autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
-balloon_eval    +float           +mouse_urxvt     -tag_any_white
-browse          +folding         +mouse_xterm     -tcl
++builtin_terms  -footer          +multi_byte      +terminfo
+byte_offset     +fork()          +multi_lang      +termresponse
+cindent         +gettext         -mzscheme        +textobjects
-clientserver    -hangul_input    +netbeans_intg   +title
-clipboard       +iconv           +path_extra      -toolbar
+cmdline_compl   +insert_expand   +perl            +user_commands
+cmdline_hist    +jumplist        +persistent_undo +vertsplit
+cmdline_info    +keymap          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       +python/dyn      +viminfo
+cscope          +lispindent      +python3/dyn     +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      +lua/dyn         +rightleft       +windows
+diff            +menu            +ruby/dyn        +writebackup
+digraphs        +mksession       +scrollbind      -X11
-dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     -xim
+emacs_tags      -mouseshape      +sniff           -xsmp
+eval            +mouse_dec       +startuptime     -xterm_clipboard
+ex_extra        -mouse_gpm       +statusline      -xterm_save
+extra_search    -mouse_jsbterm   -sun_workshop    -xpm
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/etc"
 f-b for $VIMRUNTIME: "/usr/share/vim/current"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -I/usr/local/include  -fmessage-length=0 -grecord-gcc-switches -fstack-protector -O2 -Wall -D_FORTIFY_SOURCE=1 -funwind-tables -fasynchronous-unwind-tables -g -Wall -pipe -fno-strict-aliasing
Linking: gcc   -L. -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.18.1/x86_64-linux-thread-multi/CORE   -L/usr/local/lib -Wl,--as-needed -o vim        -lm -lnsl    -ltinfo -lacl -lattr -ldl   -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.18.1/x86_64-linux-thread-multi/CORE  -L/usr/local/lib64 -fstack-protector  -L/usr/lib/perl5/5.18.1/x86_64-linux-thread-multi/CORE -lperl -lm -ldl -lcrypt -lpthread
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20872
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Определить конфигурацию vim

Сообщение Bizdelnick »

Stauffenberg писал(а):
12.10.2016 23:10
Это дефолтное поведение vi в Debian 8 (testing)

Вообще-то в Debian есть несколько алетрнативных сборок vim, а вариаций vi — ещё больше. См. update-alternatives --list vim, update-alternatives --list vi. То, что Вы показали, — это, похоже, vim-tiny, самый минималистичный вариант.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Определить конфигурацию vim

Сообщение Stauffenberg »

Код: Выделить всё

# update-alternatives --list vim
update-alternatives: error: no alternatives for vim

# update-alternatives --list vi
/usr/bin/vim.tiny

Это после подключения репозиториев.

В общем, установил просто vim да и все: apt-get install vim
Он предложил перезаписать настойки, я согласился. Теперь vim работает как я и хотел.

Всем спасибо.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Определить конфигурацию vim

Сообщение Stauffenberg »

Поставил Kubuntu 17.04, та же "проблема"

Решение: добавляем команду set nocompatible в ~/.vimrc
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Определить конфигурацию vim

Сообщение SLEDopit »

Stauffenberg писал(а):
20.11.2016 20:34
Теперь vim работает как я и хотел.
vim'овский конфиг по умолчанию (который /etc/vim/vimrc) в последнее время как-то печально стал совершенно ужасным.
Особенно удручает включённая по умолчанию поддержка мышки, что жутко неудобно.
Если раньше можно было как-то жить с настройками по умолчанию и не раскатывать нормальные конфиги на сервера, то теперь деваться некуда.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали: