Автор Тема: Что случилось с vi?  (Прочитано 11089 раз)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 30 559
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Что случилось с vi?
« Ответ #45 : 03.04.2017 06:41:04 »
Права на исполнение не забыли дать?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 30 559
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Что случилось с vi?
« Ответ #46 : 03.04.2017 06:52:34 »
Смотрим:

~/.bash_profile:
....
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
...

~/.bashrc:
....
# Source global definitions
if [ -r /etc/bashrc ]; then
        . /etc/bashrc
fi
...

а вот тут интереснее:
/etc/bashrc:

if [ -z "${-##*i*}" ]; then
.....
        # Source optional scripts.
        for f in /etc/bashrc.d/*.sh; do
                if [ -r "$f" ]; then
                        . "$f"
                fi
        done
...
fi

Я не очень понял, что проверяет if, но возможно проблема в нём. Если так, то можно в конце /etc/bashrc прописать. Но это хуже, т.к. при обновлении пакета bash , слетит ваща правка, если мантейнер не позаботится о сохранениии /etc/bashrc






Оффлайн tema

  • Мастер
  • ***
  • Сообщений: 1 914
    • Email
Re: Что случилось с vi?
« Ответ #47 : 03.04.2017 08:23:19 »
Права я дать не забыл.
Очень плохо что не работает :-(
Ищу рабочее решение для включения сразу в дистрибутив Кометы...

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 17 190
    • Домашняя страница
    • Email
Re: Что случилось с vi?
« Ответ #48 : 03.04.2017 09:41:26 »
profile и rc предназначены для разных сеансов: интерактивного и ssh. И свои каталоги *.d в /etc имеют.
Андрей Черепанов (cas@)

Онлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 980
  • UNIX System V init
Re: Что случилось с vi?
« Ответ #49 : 03.04.2017 13:07:26 »
Права я дать не забыл.
Очень плохо что не работает :-(
Ищу рабочее решение для включения сразу в дистрибутив Кометы...

:-) Почему не работает?, - очень даже работает:
$ ls -l /etc/bashrc.d/editor.sh
-rw-r--r-- 1 root root 54 апр  3 12:59 /etc/bashrc.d/editor.sh
$ cat /etc/bashrc.d/editor.sh
#!/bin/bash

export EDITOR=vim
export GIT_EDITOR=vim

$ echo $EDITOR
vim
$ echo $GIT_EDITOR
vim

Кстати:
А вы указали интерпретатор который будет выполнять этот скрипт?
« Последнее редактирование: 03.04.2017 13:16:42 от Speccyfighter »
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Оффлайн tema

  • Мастер
  • ***
  • Сообщений: 1 914
    • Email
Re: Что случилось с vi?
« Ответ #50 : 03.04.2017 13:18:07 »
У меня не работает. Может дело в kde5? Есть вероятность?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 30 559
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Что случилось с vi?
« Ответ #51 : 03.04.2017 13:18:29 »
profile и rc предназначены для разных сеансов: интерактивного и ssh. И свои каталоги *.d в /etc имеют.
Возможно, но profile всё равно вызывает bashrc

Оффлайн tema

  • Мастер
  • ***
  • Сообщений: 1 914
    • Email
Re: Что случилось с vi?
« Ответ #52 : 03.04.2017 13:21:01 »
Вот мой скрипт по добавлению этого дела:
mkdir -p /etc/bashrc.d
echo "#!/bin/sh">/etc/bashrc.d/editor.sh
echo "export EDITOR=vim">>/etc/bashrc.d/editor.sh
echo "export GIT_EDITOR=vim">>/etc/bashrc.d/editor.sh
chmod +x /etc/bashrc.d/editor.sh
Файл создаётся и там всё правильно. Но vim по vi не запускается

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 30 559
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Что случилось с vi?
« Ответ #53 : 03.04.2017 13:39:53 »
Так - а интересно, bash-completion  установлен?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 30 559
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Что случилось с vi?
« Ответ #54 : 03.04.2017 13:43:20 »
У меня вот такой проверочный скрипт

#!/bin/sh

echo EDITOR=$EDITOR
выдаёт:

sh test.sh
EDITOR=vim

Онлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 980
  • UNIX System V init
Re: Что случилось с vi?
« Ответ #55 : 03.04.2017 13:45:24 »
Но vim по vi не запускается

$ which vi
/bin/vi
$ which vim
/usr/bin/vim
$ ll /bin/vi
-rwxr-xr-x 1 root root 790560 мар 16 00:22 /bin/vi
$ ll /usr/bin/vim
lrwxrwxrwx 1 root root 36 мар 30 05:42 /usr/bin/vim -> /etc/alternatives/links/|usr|bin|vim
$ ll  /etc/alternatives/links/"|usr|bin|vim"
lrwxrwxrwx 1 root root 20 мар 30 05:42 '/etc/alternatives/links/|usr|bin|vim' -> /usr/bin/vim-console

vi это обрезанный vim
vim это vim-console
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Онлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 980
  • UNIX System V init
Re: Что случилось с vi?
« Ответ #56 : 03.04.2017 13:57:57 »
Переменная EDITOR используется в mc при выборе редактора и выбирается в его настройках с сохранением настроек.
Тогда внешний редактор mc можно использовать любой, хоть mousepad:
$ export EDITOR=mousepad
« Последнее редактирование: 03.04.2017 14:02:45 от Speccyfighter »
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Оффлайн tema

  • Мастер
  • ***
  • Сообщений: 1 914
    • Email
Re: Что случилось с vi?
« Ответ #57 : 03.04.2017 15:18:05 »
Понял. Значит всё работает как бы как надо...

Онлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 980
  • UNIX System V init
Re: Что случилось с vi?
« Ответ #58 : 03.04.2017 17:50:57 »
Понял. Значит всё работает как бы как надо...

:-) Даже без как бы.
Причём объезда здесь никакого:

vi это vim-minimal и он будет полезен если /usr на отдельной файловой, а она по какой-то причине не смонтировалась.
А все классические Unix умеют лечить себя сами и расположение файлов с FHS сделано не от фонаря и при соблюдении FHS, лайв им не требуется чуть более чем совсем:
# ldd /sbin/fsck.ext4|awk '{print $3}'|grep lib/
/lib/libext2fs.so.2
/lib/libcom_err.so.2
/lib/libblkid.so.1
/lib/libuuid.so.1
/lib/libe2p.so.2
/lib/libc.so.6
/lib/libpthread.so.0

 И vi как редактор здесь без альтернативы, поскольку всё что он требует по зависимостям лежит не в /usr
$ rpm -ql $(apt-cache depends vim-minimal|grep -v 'Depends\|minimal')
/bin/sh
/usr/lib/bash
/etc/bindresvport.blacklist
/etc/gai.conf
/etc/ld.so.cache
/etc/ld.so.conf
/etc/ld.so.conf.d
/etc/localtime
/etc/nss.conf
/etc/nsswitch.conf
/etc/rpc
/lib/ld-2.24.so
/lib/ld-linux.so.2
/lib/libBrokenLocale-2.24.so
/lib/libBrokenLocale.so.1
/lib/libc-2.24.so
/lib/libc.so.6
/lib/libcidn-2.24.so
/lib/libcidn.so.1
/lib/libcrypt-2.24.so
/lib/libcrypt.so.1
/lib/libdl-2.24.so
/lib/libdl.so.2
/lib/libm-2.24.so
/lib/libm.so.6
/lib/libnsl-2.24.so
/lib/libnsl.so.1
/lib/libnss_files-2.24.so
/lib/libnss_files.so.2
/lib/libresolv-2.24.so
/lib/libresolv.so.2
/lib/libutil-2.24.so
/lib/libutil.so.1
/sbin/glibc_fix_nsswitch
/sbin/glibc_fix_post
/sbin/glibc_post_upgrade
/sbin/ldconfig
/sbin/post_ldconfig
/sbin/postun_ldconfig
/var/cache/ldconfig
/var/cache/ldconfig/aux-cache
/lib/libacl.so.1
/lib/libacl.so.1.1.2253
/lib/libacl.so.1
/lib/libacl.so.1.1.2253
/etc/bindresvport.blacklist
/etc/gai.conf
/etc/ld.so.cache
/etc/ld.so.conf
/etc/ld.so.conf.d
/etc/localtime
/etc/nss.conf
/etc/nsswitch.conf
/etc/rpc
/lib/ld-2.24.so
/lib/ld-linux.so.2
/lib/libBrokenLocale-2.24.so
/lib/libBrokenLocale.so.1
/lib/libc-2.24.so
/lib/libc.so.6
/lib/libcidn-2.24.so
/lib/libcidn.so.1
/lib/libcrypt-2.24.so
/lib/libcrypt.so.1
/lib/libdl-2.24.so
/lib/libdl.so.2
/lib/libm-2.24.so
/lib/libm.so.6
/lib/libnsl-2.24.so
/lib/libnsl.so.1
/lib/libnss_files-2.24.so
/lib/libnss_files.so.2
/lib/libresolv-2.24.so
/lib/libresolv.so.2
/lib/libutil-2.24.so
/lib/libutil.so.1
/sbin/glibc_fix_nsswitch
/sbin/glibc_fix_post
/sbin/glibc_post_upgrade
/sbin/ldconfig
/sbin/post_ldconfig
/sbin/postun_ldconfig
/var/cache/ldconfig
/var/cache/ldconfig/aux-cache
/etc/bindresvport.blacklist
/etc/gai.conf
/etc/ld.so.cache
/etc/ld.so.conf
/etc/ld.so.conf.d
/etc/localtime
/etc/nss.conf
/etc/nsswitch.conf
/etc/rpc
/lib/ld-2.24.so
/lib/ld-linux.so.2
/lib/libBrokenLocale-2.24.so
/lib/libBrokenLocale.so.1
/lib/libc-2.24.so
/lib/libc.so.6
/lib/libcidn-2.24.so
/lib/libcidn.so.1
/lib/libcrypt-2.24.so
/lib/libcrypt.so.1
/lib/libdl-2.24.so
/lib/libdl.so.2
/lib/libm-2.24.so
/lib/libm.so.6
/lib/libnsl-2.24.so
/lib/libnsl.so.1
/lib/libnss_files-2.24.so
/lib/libnss_files.so.2
/lib/libresolv-2.24.so
/lib/libresolv.so.2
/lib/libutil-2.24.so
/lib/libutil.so.1
/sbin/glibc_fix_nsswitch
/sbin/glibc_fix_post
/sbin/glibc_post_upgrade
/sbin/ldconfig
/sbin/post_ldconfig
/sbin/postun_ldconfig
/var/cache/ldconfig
/var/cache/ldconfig/aux-cache
/etc/bindresvport.blacklist
/etc/gai.conf
/etc/ld.so.cache
/etc/ld.so.conf
/etc/ld.so.conf.d
/etc/localtime
/etc/nss.conf
/etc/nsswitch.conf
/etc/rpc
/lib/ld-2.24.so
/lib/ld-linux.so.2
/lib/libBrokenLocale-2.24.so
/lib/libBrokenLocale.so.1
/lib/libc-2.24.so
/lib/libc.so.6
/lib/libcidn-2.24.so
/lib/libcidn.so.1
/lib/libcrypt-2.24.so
/lib/libcrypt.so.1
/lib/libdl-2.24.so
/lib/libdl.so.2
/lib/libm-2.24.so
/lib/libm.so.6
/lib/libnsl-2.24.so
/lib/libnsl.so.1
/lib/libnss_files-2.24.so
/lib/libnss_files.so.2
/lib/libresolv-2.24.so
/lib/libresolv.so.2
/lib/libutil-2.24.so
/lib/libutil.so.1
/sbin/glibc_fix_nsswitch
/sbin/glibc_fix_post
/sbin/glibc_post_upgrade
/sbin/ldconfig
/sbin/post_ldconfig
/sbin/postun_ldconfig
/var/cache/ldconfig
/var/cache/ldconfig/aux-cache
/etc/bindresvport.blacklist
/etc/gai.conf
/etc/ld.so.cache
/etc/ld.so.conf
/etc/ld.so.conf.d
/etc/localtime
/etc/nss.conf
/etc/nsswitch.conf
/etc/rpc
/lib/ld-2.24.so
/lib/ld-linux.so.2
/lib/libBrokenLocale-2.24.so
/lib/libBrokenLocale.so.1
/lib/libc-2.24.so
/lib/libc.so.6
/lib/libcidn-2.24.so
/lib/libcidn.so.1
/lib/libcrypt-2.24.so
/lib/libcrypt.so.1
/lib/libdl-2.24.so
/lib/libdl.so.2
/lib/libm-2.24.so
/lib/libm.so.6
/lib/libnsl-2.24.so
/lib/libnsl.so.1
/lib/libnss_files-2.24.so
/lib/libnss_files.so.2
/lib/libresolv-2.24.so
/lib/libresolv.so.2
/lib/libutil-2.24.so
/lib/libutil.so.1
/sbin/glibc_fix_nsswitch
/sbin/glibc_fix_post
/sbin/glibc_post_upgrade
/sbin/ldconfig
/sbin/post_ldconfig
/sbin/postun_ldconfig
/var/cache/ldconfig
/var/cache/ldconfig/aux-cache
/etc/bindresvport.blacklist
/etc/gai.conf
/etc/ld.so.cache
/etc/ld.so.conf
/etc/ld.so.conf.d
/etc/localtime
/etc/nss.conf
/etc/nsswitch.conf
/etc/rpc
/lib/ld-2.24.so
/lib/ld-linux.so.2
/lib/libBrokenLocale-2.24.so
/lib/libBrokenLocale.so.1
/lib/libc-2.24.so
/lib/libc.so.6
/lib/libcidn-2.24.so
/lib/libcidn.so.1
/lib/libcrypt-2.24.so
/lib/libcrypt.so.1
/lib/libdl-2.24.so
/lib/libdl.so.2
/lib/libm-2.24.so
/lib/libm.so.6
/lib/libnsl-2.24.so
/lib/libnsl.so.1
/lib/libnss_files-2.24.so
/lib/libnss_files.so.2
/lib/libresolv-2.24.so
/lib/libresolv.so.2
/lib/libutil-2.24.so
/lib/libutil.so.1
/sbin/glibc_fix_nsswitch
/sbin/glibc_fix_post
/sbin/glibc_post_upgrade
/sbin/ldconfig
/sbin/post_ldconfig
/sbin/postun_ldconfig
/var/cache/ldconfig
/var/cache/ldconfig/aux-cache
/etc/bindresvport.blacklist
/etc/gai.conf
/etc/ld.so.cache
/etc/ld.so.conf
/etc/ld.so.conf.d
/etc/localtime
/etc/nss.conf
/etc/nsswitch.conf
/etc/rpc
/lib/ld-2.24.so
/lib/ld-linux.so.2
/lib/libBrokenLocale-2.24.so
/lib/libBrokenLocale.so.1
/lib/libc-2.24.so
/lib/libc.so.6
/lib/libcidn-2.24.so
/lib/libcidn.so.1
/lib/libcrypt-2.24.so
/lib/libcrypt.so.1
/lib/libdl-2.24.so
/lib/libdl.so.2
/lib/libm-2.24.so
/lib/libm.so.6
/lib/libnsl-2.24.so
/lib/libnsl.so.1
/lib/libnss_files-2.24.so
/lib/libnss_files.so.2
/lib/libresolv-2.24.so
/lib/libresolv.so.2
/lib/libutil-2.24.so
/lib/libutil.so.1
/sbin/glibc_fix_nsswitch
/sbin/glibc_fix_post
/sbin/glibc_post_upgrade
/sbin/ldconfig
/sbin/post_ldconfig
/sbin/postun_ldconfig
/var/cache/ldconfig
/var/cache/ldconfig/aux-cache
/etc/bindresvport.blacklist
/etc/gai.conf
/etc/ld.so.cache
/etc/ld.so.conf
/etc/ld.so.conf.d
/etc/localtime
/etc/nss.conf
/etc/nsswitch.conf
/etc/rpc
/lib/ld-2.24.so
/lib/ld-linux.so.2
/lib/libBrokenLocale-2.24.so
/lib/libBrokenLocale.so.1
/lib/libc-2.24.so
/lib/libc.so.6
/lib/libcidn-2.24.so
/lib/libcidn.so.1
/lib/libcrypt-2.24.so
/lib/libcrypt.so.1
/lib/libdl-2.24.so
/lib/libdl.so.2
/lib/libm-2.24.so
/lib/libm.so.6
/lib/libnsl-2.24.so
/lib/libnsl.so.1
/lib/libnss_files-2.24.so
/lib/libnss_files.so.2
/lib/libresolv-2.24.so
/lib/libresolv.so.2
/lib/libutil-2.24.so
/lib/libutil.so.1
/sbin/glibc_fix_nsswitch
/sbin/glibc_fix_post
/sbin/glibc_post_upgrade
/sbin/ldconfig
/sbin/post_ldconfig
/sbin/postun_ldconfig
/var/cache/ldconfig
/var/cache/ldconfig/aux-cache
/etc/bindresvport.blacklist
/etc/gai.conf
/etc/ld.so.cache
/etc/ld.so.conf
/etc/ld.so.conf.d
/etc/localtime
/etc/nss.conf
/etc/nsswitch.conf
/etc/rpc
/lib/ld-2.24.so
/lib/ld-linux.so.2
/lib/libBrokenLocale-2.24.so
/lib/libBrokenLocale.so.1
/lib/libc-2.24.so
/lib/libc.so.6
/lib/libcidn-2.24.so
/lib/libcidn.so.1
/lib/libcrypt-2.24.so
/lib/libcrypt.so.1
/lib/libdl-2.24.so
/lib/libdl.so.2
/lib/libm-2.24.so
/lib/libm.so.6
/lib/libnsl-2.24.so
/lib/libnsl.so.1
/lib/libnss_files-2.24.so
/lib/libnss_files.so.2
/lib/libresolv-2.24.so
/lib/libresolv.so.2
/lib/libutil-2.24.so
/lib/libutil.so.1
/sbin/glibc_fix_nsswitch
/sbin/glibc_fix_post
/sbin/glibc_post_upgrade
/sbin/ldconfig
/sbin/post_ldconfig
/sbin/postun_ldconfig
/var/cache/ldconfig
/var/cache/ldconfig/aux-cache
/lib/libselinux.so.1
/usr/share/man/man8/booleans.8.xz
/usr/share/man/man8/selinux.8.xz
/var/run/setrans
/lib/libtinfo.so.5
/lib/libtinfo.so.5.9
/etc/bindresvport.blacklist
/etc/gai.conf
/etc/ld.so.cache
/etc/ld.so.conf
/etc/ld.so.conf.d
/etc/localtime
/etc/nss.conf
/etc/nsswitch.conf
/etc/rpc
/lib/ld-2.24.so
/lib/ld-linux.so.2
/lib/libBrokenLocale-2.24.so
/lib/libBrokenLocale.so.1
/lib/libc-2.24.so
/lib/libc.so.6
/lib/libcidn-2.24.so
/lib/libcidn.so.1
/lib/libcrypt-2.24.so
/lib/libcrypt.so.1
/lib/libdl-2.24.so
/lib/libdl.so.2
/lib/libm-2.24.so
/lib/libm.so.6
/lib/libnsl-2.24.so
/lib/libnsl.so.1
/lib/libnss_files-2.24.so
/lib/libnss_files.so.2
/lib/libresolv-2.24.so
/lib/libresolv.so.2
/lib/libutil-2.24.so
/lib/libutil.so.1
/sbin/glibc_fix_nsswitch
/sbin/glibc_fix_post
/sbin/glibc_post_upgrade
/sbin/ldconfig
/sbin/post_ldconfig
/sbin/postun_ldconfig
/var/cache/ldconfig
/var/cache/ldconfig/aux-cache

А вот у vim, который vim-console, в зависимостях vim-common с кучей фич которые лежат в /usr/share/vim. И если файловая /usr отвалилась, то vim здесь не помощник. Более того, он и сам лежит в /usr.

Здесь попытка объяснить, почему я противник превращения Линукс, как Unix-подобной системы, в Fedora или нечто подобное и почему на подобные попытки реагирую предельно резко и грубо. Unix-подобная система сама себе доктор, но безалаберности в отношении к ней, на дух не переносит.  И альты здесь, в rpm-образных, сегодня тот редкий случай, когда традиции Unix сохраняются, а не разламываются вдребезги.

« Последнее редактирование: 03.04.2017 17:56:45 от Speccyfighter »
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 30 559
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Что случилось с vi?
« Ответ #59 : 03.04.2017 18:36:22 »
А vim установлен?  Их там несколько :-)
Помимо vim-console есть и другие.