Quelle application la commande vi ouvre-t-elle?


9

Lorsque vous tapez vidans le terminal, la sortie suivante est affichée

~                             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!                                                                             

Donc, selon cela, vidoit être le lancement VIm.
Mais quand vous tapez, vimça donne

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>

Cela montre que vimn'est pas installé.
Notamment man viet man vimlancer les mêmes pages de manuel.

Alors, que vilance réellement la commande?

Réponses:


18

Il s’agit de vim-tiny: "Vi IMproved - éditeur vi amélioré - version compacte".

Je l'ai fait le 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

Comme vous pouvez le constater, vim n’est pas installé (sortie vide), vi est un lien symbolique vers / etc / alternatives / vi (voir Mécanisme des alternatives ), qui est un lien symbolique vers /usr/bin/vim.tiny, qui appartient au paquet vim. -minuscule.


Un moyen plus dpkg -S $(which vi)
rapide

@ psusi dpkg-query aucun chemin trouvé.
Avinash Raj

3
dpkg -Sne fonctionnera pas pour les liens symboliques.
Avinash Raj

8

Si vous le faites type vi:

➜  ~  type vi
vi is /usr/bin/vi

Vous saurez où est le binaire, maintenant si vous le faites:

➜  ~  ls -l /usr/bin/vi 
lrwxrwxrwx. 1 root root 20 jun 22  2013 /usr/bin/vi -> /etc/alternatives/vi

Il est fourni par l'alternative vi, qui peut être connue par:

➜  ~  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'.

Donc, dans mon cas, il viexiste un lien symbolique vers l’alternative vifournie par vim.basic.

Vous pouvez changer quel paquet fourni vi si vous le faites sudo update-alternatives --config vi


2

Cela ressemble à @ignis answer, mais j'ai réduit le nombre d'étapes. Il ne fonctionne que si le fichier est un lien symbolique vers un autre. Vous pouvez obtenir facilement le chemin du fichier d'origine s'il contient des milliers de liens symboliques.

symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk- -> symlnk -> symlnk -> symlnk -> symlnk -> .................--> fichier d'origine

$ 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

Donc, viappartient à l'emballage vim-tiny.

readlink -fvous donne le chemin canonique du fichier (chemin du fichier original ).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.