цикл vi / vim / view / etc / alternatives

Я хотел понять разницу между исполняемыми файлами vi и vim. which привел меня к /usr/bin/, и там я нашел следующие символические ссылки:

/usr/bin/vi -> /etc/alternatives/vi
/usr/bin/vim -> /etc/alternatives/vim

Переходя к /etc/alternatives/, я увидел, что эти имена связаны с /usr/bin/:

/etc/alternatives/vi -> /usr/bin/vim.gnome
/etc/alternatives/vim -> /usr/bin/vim.gnome

Подумав немного, почему это так, я пришел к выводу, что оба они указывают на один и тот же исполняемый файл, следовательно, они абсолютно одинаковы.

1117 Однако что-то привлекло мое внимание в тот момент; эта ссылка:

/etc/alternatives/view -> /usr/bin/vim.gnome

сопровождается этой ссылкой:

/usr/bin/view -> /etc/alternatives/view

Теперь это странно, поскольку я знаю, что когда я запускаю view, это не то же самое, что и когда я бегу vim; он открывает режим только для чтения файла, заданного в качестве аргумента. Знает ли двоичный код vim.gnome, что связывалось с ним при выполнении?

(кстати, та же проблема с vimdiff)

У вас есть объяснение этому?

3
задан 9 April 2014 в 18:33

1 ответ

Это объяснено в man vim:

Vim ведет себя по-другому, в зависимости от названия команды (исполняемый файл может все еще быть тем же файлом).

энергия:
"нормальный" путь, все - значение по умолчанию.

исключая:
Запускаются в режиме Ex. Перейдите к режиму Normal с ": vi" команда. Может также быть сделан с "-e" аргументом.

представление:
Запускаются в режиме только для чтения. Вы будете защищены от записи файлов. Может также быть сделан с "-R" аргументом.

gvim gview:
версия GUI. Запускает новое окно. Может также быть сделан с "-g" аргументом.

evim eview:
версия GUI в легком режиме. Запускает новое окно. Может также быть сделан с "-y" аргументом.

rvim rview rgvim rgview
Как вышеупомянутое, но с ограничениями. Это не будет possi‐ ble, чтобы запустить команды оболочки или приостановить Vim. Может также быть сделан с "-Z" аргументом.

, Другими словами, энергия обнаружит имя, это было вызвано как, и действуйте соответственно. Другой пример программы, которая ведет себя по-другому, в зависимости от которого имени он был выполнен, как bash, который действует как минимальная оболочка POSIX, если названо как sh (см. ВЫЗОВ в man bash).

0
ответ дан 9 April 2014 в 18:33

Другие вопросы по тегам:

Похожие вопросы: