vimdiff 명령이 vi 및 vim 명령과 동일한 Vim 버전을 사용하도록 하려면 어떻게 해야 합니까?

vimdiff 명령이 vi 및 vim 명령과 동일한 Vim 버전을 사용하도록 하려면 어떻게 해야 합니까?

나는 내 컴퓨터에 Archlinux를 설치하는 것에 대해 걱정할 필요가 없었기 vimdiff때문에 일반적으로 모든 것이 최신 상태이므로 그냥 사용하면 괜찮습니다. 결국 , , 또는 을 실행하더라도 :version동일한 출력이 제공됩니다.vivimvimdiff

그러나 내 작업 컴퓨터(Debian 10)에서 vimdiff열리는 Vim 버전은 newer vi또는 old 입니다 vim.

/etc/alternatives내 생각엔 이것이 Vim 설치 및/또는 다른 것과 관련이 있는 것 같습니다. 오랫동안 플레이했기 때문에(아마도 제대로 이해하지 못한 채) 기억이 많이 나지 않습니다.


피드백답변그리고 댓글

ls -lF /etc/alternatives/ | grep bin/vim | sed 's/.*-> //' | sort -u

단 하나의 결과만 생성합니다. /usr/bin/vim.gtk*즉, 어떻게 다른 버전을 vimdiff열 수 있습니까? vim아니면 제가 답변을 잘못 이해한 걸까요?

의 출력은 type -a vimdiff다음과 같습니다

vimdiff is /usr/bin/vimdiff
vimdiff is /bin/vimdiff

산출:type -a vim

vim is aliased to `/home/me/vim-dist/bin/vim'
vim is /usr/bin/vim
vim is /bin/vim

출력 type -a vi:

vi is aliased to `/home/me/vim-dist/bin/vim'
vi is /usr/bin/vi
vi is /bin/vi

둘 다 동일한 출력을 /bin/vim --version | head -n 1갖습니다 ./usr/bin/vim --version | head -n 1

VIM - Vi IMproved 8.1 (2018 May 18, compiled Jun 15 2019 16:41:15)

제가 실행했을 때 실행되는 버전인데, vimdiff/를 실행했을 때 실행되는 버전보다 오래된 버전입니다.vimvi

답변1

에서 별칭으로 및를 사용했습니다 vi. 아마도 별칭도 사용할 수 있을 것입니다.vim/home/me/vim-dist/binvimdiff

제대로 작동 하려면 vimdiff"vim"이 아닌 "vimdiff"로 실행되어야 하므로 "vimdiff"라는 별칭을 붙일 수는 없습니다 /home/me/vim-dist/bin/vim.

/home/me/vim-dist/bin그러나 심볼릭 링크는 명명된 에 이미 존재할 수 있습니다 vimdiff. 가능한 경우 별칭 "vimdiff".

그렇지 않은 경우 생성하면 효과가 있을 수 있습니다.

cd /home/me/vim-dist/bin
ln -s vim vimdiff

그런 다음 "vimdiff"라는 별칭을 /home/me/vim-dist/bin/vimdiff.

링크를 원하지 않거나 생성할 수 없는 경우 "vimdiff"에 별칭을 지정할 수 있습니다 /home/me/vim-dist/bin/vim -d.

alias vimdiff="/home/me/vim-dist/bin/vim -d"

(귀하 .bashrc또는 .zshrc어느 곳에서나 별칭을 예약합니다.)

모든 별칭에 대한 대안은 /home/me/vim-dist/bin에 추가 $PATH하고 그것이 나타나는지 확인하는 것입니다.이전에와 ./bin/usr/bin바라보다이것.$PATH

답변2

아? vimdiff그냥 심볼릭 링크입니다 vim. 특히 데비안에는 선호하는 버전의 vim에 대한 심볼릭 링크인 /usr/bin/vimdiff심볼릭 링크가 있습니다 ./etc/alternatives/vimdiff

예를 들어, 내 기본 데스크탑에서 vim.gtk3내가 선호하는 vim을 사용하면 다음과 같습니다.

$ ls -lF /usr/bin/vimdiff
lrwxrwxrwx 1 root root 25 May 18  2018 /usr/bin/vimdiff -> /etc/alternatives/vimdiff*

$ ls -lF /etc/alternatives/vimdiff
lrwxrwxrwx 1 root root 17 Nov  8  2019 /etc/alternatives/vimdiff -> /usr/bin/vim.gtk3*

다음을 통해 사용 가능한 대안을 볼 수 있습니다.

$ update-alternatives --list vimdiff
/usr/bin/vim.basic
/usr/bin/vim.gtk3

다음과 같이 변경합니다.

$ sudo update-alternatives --config vimdiff
There are 2 choices for the alternative vimdiff (providing /usr/bin/vimdiff).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/vim.gtk3    50        auto mode
  1            /usr/bin/vim.basic   30        manual mode
  2            /usr/bin/vim.gtk3    50        manual mode

Press <enter> to keep the current choice[*], or type selection number: 

더 많은 vim 패키지가 설치되어 있으면(예 vim-tiny: ) 해당 패키지도 옵션으로 표시됩니다.

vim 및 vimdiff(및 기타 여러 프로그램 - 아래 일부 바이너리 참조)에 대해 *vim*다양한 대안을 사용할 수 있습니다 . 나는 이것이 당신이 한 일이라고 의심합니다. 동일하게 하려면 update-alternatives하나 또는 둘 다 변경을 사용하십시오.

$ ls -lF /etc/alternatives/ | grep bin/vim
lrwxrwxrwx 1 root root  17 Nov  8  2019 editor -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Nov  8  2019 eview -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Nov  8  2019 evim -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Nov  8  2019 gview -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Dec 24  2019 gvim -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Nov  8  2019 gvimdiff -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Nov  8  2019 rgview -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Nov  8  2019 rgvim -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Nov  8  2019 rview -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Nov  8  2019 rvim -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Nov  8  2019 vi -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Nov  8  2019 view -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Nov  8  2019 vim -> /usr/bin/vim.gtk3*
lrwxrwxrwx 1 root root  17 Mar 18 21:58 vimdiff -> /usr/bin/vim.gtk3*

(또는 다음과 같이 실행할 수도 있습니다 grep -r bin/vim /var/lib/dpkg/alternatives/)

이들 각각은 다른 vim 대안을 가리키도록 독립적으로 설정할 수 있습니다. 아마 설치해야 할 것입니다 vim-tiny(또는 적어도 위의 대부분을 로 설정해야 합니다 vim.basic). vi에 내장된 멋진 GUI나 perl/python/ruby/tcl 지원이 실제로 필요하지 않습니다. 내가 사용하는 유일한 경우는 gvimGUI 응용프로그램이나 파일 브라우저에서 실행할 때입니다.

관련 정보