Ứng dụng nào lệnh vi mở?


9

Khi bạn nhập vivào thiết bị đầu cuối, đầu ra sau đây được hiển thị

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

Vì vậy, theo điều này, viphải được khởi động VIm.
Nhưng khi bạn gõ vimnó sẽ cho

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>

Điều này cho thấy rằng vimkhông được cài đặt.
Đáng chú ý man viman vimkhởi chạy các trang người đàn ông tương tự.

Vậy vilệnh thực sự khởi chạy là gì?

Câu trả lời:


18

Đó là vim-tiny: "Vi IMproved - trình soạn thảo vi nâng cao - phiên bản nhỏ gọn".

Tôi đã làm điều này vào ngày 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

Như bạn có thể thấy, vim chưa được cài đặt (đầu ra trống), vi là một liên kết tượng trưng đến / etc / thay thế / vi (xem cơ chế thay thế ), là một liên kết tượng trưng đến /usr/bin/vim.tiny, thuộc gói vim -nhỏ bé.


Một cách ngắn hơn để tìm thấy điều này sẽ làdpkg -S $(which vi)
psusi

@psusi dpkg-truy vấn không tìm thấy đường dẫn.
Avinash Raj

3
dpkg -Ssẽ không làm việc cho các liên kết tượng trưng.
Avinash Raj

8

Nếu bạn làm type vi:

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

Bạn sẽ biết nhị phân ở đâu, bây giờ nếu bạn làm:

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

Nó được cung cấp bởi sự thay thế vi, có thể được biết bởi:

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

Vì vậy, trong trường hợp của tôi, vilà một liên kết tượng trưng cho sự thay thế viđược cung cấp bởi vim.basic.

Bạn có thể thay đổi gói nào được cung cấp vi nếu bạn làm sudo update-alternatives --config vi


2

Nó tương tự như câu trả lời @ignis, nhưng tôi đã giảm các bước. Nó chỉ hoạt động, nếu tệp là một liên kết tượng trưng cho người khác. Bạn có thể dễ dàng nhận được đường dẫn tệp gốc, nếu nó có hàng ngàn liên kết tượng trưng trong đường dẫn của nó.

symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> symlnk -> .................--> tệp gốc

$ 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

Vì vậy, vithuộc về gói vim-tiny.

readlink -fcung cấp cho bạn đường dẫn chính tắc của tệp ( Đường dẫn tệp gốc ).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.