Какое приложение открывает команда vi?

для навигации по каталогам quicky существует $CDPATH, cdargs, и способы генерировать псевдонимы автоматически

http://jackndempsey.blogspot.com/2008/07/cdargs.html

http://muness.blogspot.com/2008/06/lazy-bash-cd-aliaes.html

https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5827311.html

9
задан 16.05.2020, 10:12

3 ответа

Это vim-tiny : "Vi IMproved - улучшенный редактор vi - компактная версия".

я сделал это на 13,10:

user@ubuntu:~$ which vi
/usr/bin/vi
user@ubuntu:~$ which vim
user@ubuntu:~$ ls -l /usr/bin/vi
lrwxrwxrwx 1 root root 20 ago 13  2013 /usr/bin/vi -> /etc/alternatives/vi
user@ubuntu:~$ ls -l /etc/alternatives/vi
lrwxrwxrwx 1 root root 17 dic 20 04:39 /etc/alternatives/vi -> /usr/bin/vim.tiny
user@ubuntu:~$ apt-cache search vim.tiny
vim-common - Vi IMproved - Common files
vim-tiny - Vi IMproved - enhanced vi editor - compact version
user@ubuntu:~$ dpkg --get-selections | grep vim
vim-common                  install
vim-tiny                    install

, Как Вы видите, энергия не установлена (пустой вывод), vi является символьной ссылкой на/etc/alternatives/vi (см. механизм альтернатив ), который является символьной ссылкой на/usr/bin/vim.tiny, который принадлежит для упаковки крошечный энергией.

18
ответ дан 16.05.2020, 10:12
  • 1
    Более короткий способ найти это был бы dpkg -S $(which vi) – JaredPar 16.05.2020, 10:13
  • 2
    @psusi не dpkg-запрашивают найденного пути. – Hannoun Yassir 16.05.2020, 10:13
  • 3
    dpkg -S won' t работают на символьные ссылки. – dlamblin 16.05.2020, 10:14

Если Вы делаете 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.

можно измениться, какой пакет, обеспеченный vi, если Вы делаете sudo update-alternatives --config vi

8
ответ дан 16.05.2020, 10:13

Это подобно ответу @ignis, но я уменьшил шаги. Это только работает, если файл является символьной ссылкой на другого. Можно получить исходный путь к файлу легко, если он имеет тысячи символьных ссылок в, он - путь.

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 дает Вам канонический путь файла ( Исходный путь к файлу ).

2
ответ дан 16.05.2020, 10:14

Теги

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