Vi कमांड किस एप्लिकेशन को खोलता है?


9

जब आप 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वास्तव में कमांड क्या लॉन्च करता है?

जवाबों:


18

यह है 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 / / a आदि / विकल्प / vi ( विकल्प तंत्र देखें ) के लिए एक सहिष्णुता है, जो /usr/bin/vim.tiny के समरूप है, जो पैकेजim से संबंधित है -tiny।


इसे खोजने का एक छोटा तरीका होगाdpkg -S $(which vi)
psusi

@psusi dpkg-query कोई रास्ता नहीं मिला।
अविनाश राज

3
dpkg -Sसिमिलिंक के लिए काम नहीं करेगा।
अविनाश राज

8

यदि आप करते हैं 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


2

यह @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आपको फ़ाइल का मूल पथ ( मूल फ़ाइल पथ ) देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.