Когда вы набираете vi в терминале, отображается следующий выход
~ VIM - Vi IMproved
~
~ version 7.3.547
~ by Bram Moolenaar et al.
~ Modified by pkg-vim-maintainers@lists.alioth.debian.org
~ Vim is open source and freely distributable
~
~ Help poor children in Uganda!
Поэтому в соответствии с этим vi должен запускаться VIm. Но когда вы набираете vim, он дает
aditya@aditya-desktop:~$ vim
The program 'vim' can be found in the following packages:
* vim
* vim-gnome
* vim-tiny
* vim-athena
* vim-gtk
* vim-nox
Try: sudo apt-get install <selected package>
Это показывает, что vim не установлен. Примечательно man vi и man vim запускают одни и те же страницы руководства.
Итак, что действительно запускает команда vi?
Если вы делаете type vi:
➜ ~ type vi
vi is /usr/bin/vi
Вы узнаете, где находится бинарный файл, теперь, если вы это сделаете:
➜ ~ ls -l /usr/bin/vi
lrwxrwxrwx. 1 root root 20 jun 22 2013 /usr/bin/vi -> /etc/alternatives/vi
Это предусмотрено альтернативой vi , который может быть известен:
➜ ~ update-alternatives --display vi
vi - auto mode
link currently points to /usr/bin/vim.basic
/usr/bin/vim.basic - priority 30
slave vi.1.gz: /usr/share/man/man1/vim.1.gz
slave vi.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz
slave vi.it.1.gz: /usr/share/man/it/man1/vim.1.gz
slave vi.ja.1.gz: /usr/share/man/ja/man1/vim.1.gz
slave vi.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz
slave vi.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz
Current 'best' version is '/usr/bin/vim.basic'.
Итак, в моем случае vi является символической ссылкой на альтернативу vi, которая предоставляется vim.basic.
[d4 ] Вы можете изменить, какой пакет предоставлен vi, если вы sudo update-alternatives --config viЭто похоже на ответ @ignis, но я уменьшил шаги. Он работает только, если файл является символической ссылкой на другую. Вы можете легко получить исходный путь к файлу, если на нем есть тысячи символических ссылок. [ ! d0]
symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> .................--> исходный файл
$ which vi
/usr/bin/vi
$ ls -l $(which vi)
lrwxrwxrwx 1 root root 20 Feb 22 20:14 /usr/bin/vi -> /etc/alternatives/vi # So /usr/bin/vi is an symlink to /etc/alternatives/vi
$ dpkg -S $(readlink -f $(which vi))
vim-tiny: /usr/bin/vim.tiny
Итак, vi принадлежит к пакету vim-tiny.
readlink -f дает вам канонический путь к файлу (исходный путь к файлу).