LINUX.ORG.RU
ФорумTalks

Slackware, /usr/bin/vi и UTF-8

 , ,


1

2

Здравствуйте, дорогие любители юникода! Продолжаем наш цикл заметок про улучшение поддержки UTF-8 в Slackware. В прошлый раз - Slackware, man и UTF-8 - мы улучшали поддержку UTF-8 в man. В этот раз поговорим про грабли /usr/bin/vi.

Как оказывается, в Slackware из коробки /usr/bin/vi не является симлинком указывающим на vim. Всё гораздо серьёзнее. Из коробки /usr/bin/vi является симлинком... текстового редактора elvis (да, он входит в базовую систему!) в котором нет нормальной поддержки UTF-8. Поэтому, например, попытавшись создать коммит в том же git'е можно внезапно увидеть

# �.ожал�.й�.�.а, введи�.е �.ооб�.ение комми�.а дл�. ва�.и�. изменений. С�.�.о�
ºи,
# на�.ина�.�.ие�.�. �. «#» б�.д�.�. п�.оигно�.и�.ован�., а п�.�.�.ое �.ооб�.ение
# о�.мен�.е�. п�.о�.е�.�. комми�.а.
# �.а ве�.ке master
#
# �.а�.ал�.н�.й комми�.
.

Ситуацию можно легко исправить, например, так:

removepkg elvis && ln -s /usr/bin/vim /usr/bin/vi

Enjoy!

★★★★★
Ответ на: комментарий от kirk_johnson

vim умеет работать в режиме совместимости с vi. В LFS'е описана именно такая установка vim'а:

ln -sv vim /usr/bin/vi
for L in  /usr/share/man/{,*/}man1/vim.1; do
    ln -sv vim.1 $(dirname $L)/vi.1
done

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от cantus

Emacs и GNU Emacs тоже разные программы?

Конечно. Оригинальный EMACS написали Мун со Стилом, потом Гослинг сделал первый Emacs для UNIX. И только затем Столлман заменил в Гослинговском интерпретатор Lisp и назвал результат GNU Emacs.

baka-kun ★★★★★
()
Ответ на: комментарий от kirk_johnson

:) и какие же киллер фичи есть у разной программы vi по сравнению с vim? и если уж пошел разговор, то про какой из vi мы говорим?

mrdeath ★★★★★
()
Последнее исправление: mrdeath (всего исправлений: 2)
Ответ на: комментарий от mrdeath

какие же киллер фичи есть у разной программы vi по сравнению с vim?

В первую очередь — размер и отсутствие тяжелых зависимостей.

baka-kun ★★★★★
()
Ответ на: комментарий от baka-kun

В первую очередь — размер и отсутствие тяжелых зависимостей.

Это плюс поддержка UTF-8 есть в т.ч. у имеющихся на slackbuilds.org ex-vi (устанавливается в /opt/ex-vi/bin/vi) и nvi.

$ ldd /opt/ex-vi/bin/ex
        linux-vdso.so.1 (0x00007ffe41ce2000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fbef5766000)
        /lib64/ld-linux-x86-64.so.2 (0x0000556303605000)
$ du -b /opt/ex-vi/bin/ex
240464  /opt/ex-vi/bin/ex
$  ldd /usr/bin/nvi
        linux-vdso.so.1 (0x00007ffecd9fd000)
        libvi.so.0 => /usr/lib64/libvi.so.0 (0x00007fe8203aa000)
        libncursesw.so.6 => /lib64/libncursesw.so.6 (0x00007fe820171000)
        libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007fe81ff46000)
        libdb-4.8.so => /lib64/libdb-4.8.so (0x00007fe81fbd0000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fe81f80a000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fe81f604000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe81f3e6000)
        /lib64/ld-linux-x86-64.so.2 (0x0000558a3e15b000)
$ du -b /usr/bin/nvi
41232   /usr/bin/nvi
$ ldd /usr/bin/vim
        linux-vdso.so.1 (0x00007ffd5ae3a000)
        libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007fb949336000)
        libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007fb94911b000)
        libXt.so.6 => /usr/lib64/libXt.so.6 (0x00007fb948eb5000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007fb948b78000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fb94886f000)
        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007fb948616000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00007fb94840e000)
        libgpm.so.2 => /lib64/libgpm.so.2 (0x00007fb948208000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fb948004000)
        libperl.so => /usr/lib64/perl5/CORE/libperl.so (0x00007fb947c14000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb9479f6000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fb94762e000)
        libpython2.7.so.1.0 => /usr/lib64/libpython2.7.so.1.0 (0x00007fb947215000)
        libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fb947011000)
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007fb946df2000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007fb946bef000)
        libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007fb9469ea000)
        /lib64/ld-linux-x86-64.so.2 (0x00005600a5c18000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007fb9467e4000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fb9465cb000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fb946393000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007fb946190000)
$ du -b /usr/bin/vim
2550800 /usr/bin/vim

saahriktu ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.