vi
端末に何かを入力すると、次のように表示されます。
まだダウンロードしていないと確信しているvimがviではなく、実際にはviがvimではないことに注意してください。たとえば、矢印キーは移動の代わりにABCDを印刷します。
答え1
原作vi
はまだ利用可能、現在LinuxやBSDディストリビューションではあまり使われていないようです。1明らかに10年前になかなか使われなかった後、2000年に再導入され、2005年に最後に発売されました。
様々な実装するviのまわりで、これは実際に今POSIX仕様。これにnvi
はが含まれますが、elvis
最も人気があるのはおそらくですvim
。
vimを使用するシステムにはvi
ソフトリンクしかありません。このように呼び出すと、vi互換モードで起動する必要があるため、システムはPOSIXと互換性があります。ただし、これによりプログラムの実際の名前であるvim(タイトル画面に表示される名前)は変更されません。
1. そうですがアーチで利用可能、少なくとも。他の場所でも見つけることができます。
答え2
Debianを使用している場合vi
の項目のため開いています。私はあなたのためにそれを分析します。vim
vi
/etc/alternatives
これを行うときls -l /usr/bin/vi
:
lrwxrwxrwx 1 root root 20 Jul 1 2014 /usr/bin/vi -> /etc/alternatives/vi
ご覧のとおり、vi
バイナリは/etc/alternatives/vi
。
今これを行うls -l /etc/alternatives/vi
:
lrwxrwxrwx 1 root root 18 Jul 1 2014 /etc/alternatives/vi -> /usr/bin/vim.basic
これはバイナリファイルへのシンボリックリンクですvim.basic
。
簡単に言うと:/usr/bin/vi
→→/etc/alternatives/vi
/usr/bin/vim.basic
vi
したがって、シェルを入力するとvim.basic
開きます。
/etc/alternatives
コマンドを使用して値を確認して変更できますが、update-alternatives
元の質問に対する回答はすでにあるようです。
答え3
多くのLinuxシステムでは、デフォルトバージョンはvi
実際にはVimバージョンであり、通常はVimパッケージをインストールすることで得られるものよりも少ないオプションでコンパイルされたバージョンです(組み込みPerlおよびPythonサポートなし、GUIなしなど)。
たとえば、矢印キーは移動する代わりにABCDを印刷します。
これは、端末エミュレータと Vim が使用する terminfo/termcap エントリを一貫して理解していないために発生します。通常、これはVimが矢印キーを「有効にする」コードを送信したためです(実際には矢印キーを代わりに送信モードに配置します)t_ks
。ただし、予想されるキーは他のモード(上矢印など)用です。 TERM環境変数またはvimオプションを変更したり(または動作可能なvimrcで色を無効にしたり)、他の端末を使用するか、最後の手段としてファイルに追加してこのモードスイッチを無効にしてみてください。これはvimヘルプファイルに提案されているソリューションです。<1b>OA
<1b>[A
t_ku=<1b>[A
set term=builtin_ansi
builtin_xterm
set t_ks= t_ke=
.vimrc
:help cs7-problem
この行動はいいえとにかく、これは「実際にはvimではなくvi」であることを意味します。 viまたはnviのほとんどの最新の「本物」バージョンは矢印キーもサポートしています。
答え4
複数のDebianベースのディストリビューションでは、/bin/viのシンボリックリンクはvimではなく「busybox」です。場合によってはこれは問題ありませんが、busyboxが提供する機能は最小限のセットにすぎず、何らかの理由でbusyboxがコンパイルされる方法によって異なります。
vimがインストールされている場合、通常はbusyboxリンクを置き換えますが、時にはそうではありません。 busyboxはまだ/bin/viに接続され、vimは/usr/bin/viに接続できるため、最初に見つかったPATH環境変数によって異なります。 。一般ユーザーは「vim」を取得できますが、「root」でログインするとbusybox viを取得できます。
どのviリンクを使用しているか(どのvi)、何に接続されているかを確認して確認することをお勧めします。