私は私のコンピュータにArchlinuxをインストールすることを心配する必要はありませんでしたvimdiff
ので、一般的にすべてが最新の状態なので、それを使用するだけで大丈夫です。結局、、、またはを実行しても:version
同じ出力が提供されます。vi
vim
vimdiff
しかし、マイワークコンピュータ(Debian 10)でvimdiff
開かれるVimのバージョンはnewervi
またはoldですvim
。
/etc/alternatives
私の考えでは、これはVimのインストールや他のものと関係があるようです。長い間プレイしていたので(おそらくきちんと理解できないまま)記憶があまり出ません。
フィードバック回答そしてコメント
ls -lF /etc/alternatives/ | grep bin/vim | sed 's/.*-> //' | sort -u
1つの結果のみを生成します。/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
/を実行したときに実行されるバージョンより古いバージョンです。vim
vi
答え1
でエイリアスとしてとを使用しましたvi
。おそらくエイリアスも使用できます。vim
/home/me/vim-dist/bin
vimdiff
正しく機能するには、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
。特にDebianには、好みのバージョンの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のサポートは本当に必要ありません。私が使用する唯一のケースは、gvim
GUIアプリケーションまたはファイルブラウザで実行するときです。