Welche Anwendung öffnet der Befehl vi?

9

Wenn Sie vi im Terminal eingeben, wird die folgende Ausgabe angezeigt:

~                             VIM - Vi IMproved                                
~                                                                             
~                               version 7.3.547                                 
~                           by Bram Moolenaar et al.                            
~           Modified by [email protected]             
~                 Vim is open source and freely distributable                   
~                                                                               
~                        Help poor children in Uganda!                                                                             

Also muss vi VIm starten.
Aber wenn Sie vim eingeben, wird

angezeigt
[email protected]:~$ 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 vim nicht installiert ist.
Insbesondere man vi und man vim starten die gleichen man-Seiten.

Also, was startet der Befehl vi eigentlich?

    
Registered User 15.03.2014, 15:41

3 Antworten

18

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

Ich habe das am 13.10 gemacht:

[email protected]:~$ which vi
/usr/bin/vi
[email protected]:~$ which vim
[email protected]:~$ ls -l /usr/bin/vi
lrwxrwxrwx 1 root root 20 ago 13  2013 /usr/bin/vi -> /etc/alternatives/vi
[email protected]:~$ ls -l /etc/alternatives/vi
lrwxrwxrwx 1 root root 17 dic 20 04:39 /etc/alternatives/vi -> /usr/bin/vim.tiny
[email protected]:~$ apt-cache search vim.tiny
vim-common - Vi IMproved - Common files
vim-tiny - Vi IMproved - enhanced vi editor - compact version
[email protected]:~$ 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 symbolischer Link zu / etc / alternatives / vi (siehe alternatives mechanism ), welches ein Symlink zu /usr/bin/vim.tiny ist, der zum Paket vim-tiny gehört.

    
ignis 15.03.2014, 15:48
8

Wenn du type vi :

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

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

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

Es wird von der Alternative vi bereitgestellt, die wie folgt bekannt sein kann:

➜  ~  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 ist also vi eine symbolische Verbindung zur alternativen vi , die von vim.basic bereitgestellt wird.

Sie können ändern, welches Paket vi zur Verfügung gestellt wird, wenn Sie sudo update-alternatives --config vi

machen     
Braiam 15.03.2014 15:47
2

Es ähnelt der @ignis-Antwort, aber ich habe die Schritte reduziert. Es funktioniert nur, wenn die Datei eine symbolische Verbindung zu einer anderen ist. Sie können den ursprünglichen Dateipfad leicht finden, wenn er Tausende von symbolischen Links im Pfad hat / p>

symlnk - & gt; symlnk - & gt; symlnk - & gt; symlnk - & gt; symlnk - & gt; symlnk - & gt; symlnk - & gt; symlnk - & gt; symlnk - & gt ; symlnk - & gt; symlnk - & gt; symlnk - & gt; symlnk - & gt; symlnk - & gt; symlnk - & gt; symlnk - & gt; symlnk - & gt; ......... ........-- & gt; 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

So vi gehört zum Paket vim-tiny .

readlink -f gibt Ihnen den kanonischen Pfad der Datei ( Ursprünglicher Dateipfad ).

    
Avinash Raj 16.03.2014 05:33

Tags und Links