Welche Anwendung öffnet der Befehl vi?


9

Wenn Sie vidas Terminal eingeben, wird die folgende Ausgabe angezeigt

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

Demnach vimuss also gestartet werden VIm.
Aber wenn Sie tippen vim, gibt es

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>

Dies zeigt, dass vimnicht installiert ist.
Insbesondere man viund man vimstarten Sie die gleichen Manpages.

Was startet der viBefehl eigentlich?

Antworten:


18

Es ist vim-tiny: "Vi IMproved - erweiterter vi-Editor - kompakte Version".

Ich habe das am 13.10 gemacht:

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

Wie Sie sehen können, ist vim nicht installiert (leere Ausgabe), vi ist ein Symlink zu / etc / alternatives / vi (siehe Alternativenmechanismus ), ein Symlink zu /usr/bin/vim.tiny, das zum Paket vim gehört -winzig.


Ein kürzerer Weg, dies zu finden, wäredpkg -S $(which vi)
Psusi

@psusi dpkg-query kein Pfad gefunden.
Avinash Raj

3
dpkg -Sfunktioniert nicht für Symlinks.
Avinash Raj

8

Wenn Sie dies tun type vi:

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

Sie werden jetzt wissen, wo die Binärdatei ist, wenn Sie Folgendes tun:

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

Es wird durch die Alternative bereitgestellt vi, die bekannt sein kann durch:

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

In meinem Fall vihandelt es sich also um eine symbolische Verbindung zu der Alternative, vidie von bereitgestellt wird vim.basic.

Sie können ändern, welches Paket vi bereitgestellt wird, wenn Sie dies tun sudo update-alternatives --config vi


2

Es ist ähnlich wie bei @ignis answer, aber ich habe die Schritte reduziert. Es funktioniert nur, wenn die Datei ein symbolischer Link zu einer anderen ist. Sie können den ursprünglichen Dateipfad leicht abrufen, wenn der Pfad Tausende von Symlinks enthält.

symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk- -> symlnk -> symlnk -> symlnk -> symlnk -> .................--> Originaldatei

$ 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

Gehört also vizum Paket vim-tiny.

readlink -fgibt Ihnen den kanonischen Pfad der Datei ( Originaldateipfad ).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.