1. 概要

この記事では、Linuxコマンドラインで使用できるviおよびvimテキストエディターと、それらの関係について説明します。 さらに、使用しているものと状況ごとに選択するものを区別する方法についても説明します。

2. vi とは何ですか?

vi (「ビジュアルインターフェイス」の略)は、標準のコマンドラインテキストエディタです。 その起源は、コマンドライン用のUnixテキストエディタに由来します。 ed 、さまざまなエディターで進化し、最終的には vi。

vi を実行するには、コマンドラインから呼び出して、編集するファイルを追加します。

$ vi /path/to/file/to/edit

viはモーダルテキストエディタです。複数のモードがあります。ファイルを開くと、挿入モードではなく、コマンドモードになります。 これが、まだファイルに書き込めない理由です。 Insert モードに入るには、次のキーを押す必要があります。

$ i

変更を行った後、Escキーを使用してコマンドモードに戻ることができます。 保存して終了するには、次を使用します。

$ :wq

(その後に Enter キーが続きます)。 変更を保存しない場合は、次のコマンドで終了できます。

$ :q

vi の一部のモード(オープンモードとビジュアルモード)は、 Single UNIXSpecificationおよびPOSIX標準で説明されています。 これは、viエディターがこれらの標準に準拠しているデバイスと互換性があることを意味します。 したがって、作業できるほとんどのデバイスでviが見つかる可能性があります。

3. vim とは何ですか?

vim は別のコマンドラインテキストエディタで、「viImproved」の略です。 vimは、ユーザーエクスペリエンスを向上させ、テキストエディタの効果を高める追加機能を備えたviの実装です。システムにインストールすると、vimを次のように起動できます。 vi:

$ vim /path/to/file/to/edit

vi と非常によく似たインターフェースが表示されますが、これも異なるモードがあります。 簡単なファイルを編集する場合の手順は、viの場合と同じです。 ただし、vimで利用可能な改善点は詳細にあります。

vimにはあるがviにはない機能のいくつかは、ウィンドウの分割とタブ、コードの強調表示、マクロ、複数回の元に戻すとやり直し、コマンドライン履歴、パターンマッチング、単語補完です。 これらの機能はすべて、開発者とライターの生産性を高めるのに役立ちます。

4. vivimを区別する方法は?

それらの定義とマニュアルページから、vimviで利用可能な可能性のスーパーセットをカバーするエディターであることは明らかです。 ほとんどすべてのUnixオペレーティングシステムでviを見つけることができます。

ただし、多くのオペレーティングシステムはviの機能をvimに置き換えています。 これらのOSの一部では、vimを指すシンボリックリンクであるため、コマンドviを実行できます。 これが、viを開くときにvimスプラッシュウィンドウが表示される場合がある理由です。 私たちは確かにviを模倣するために最小モードでvimを実行しています。 viまたはvimを指すシンボリックリンクがあるかどうかを知る方法は、ヘルプを呼び出すことです。 (これはでのみ利用可能です vim ):

$ vi -h
vi: illegal option -- h
Usage: vi [- | -s] [-l] [-L] [-R] [-r [file]] [-t tag]
[-v] [-V] [-w size] [+cmd | -c cmd] file...

比較のために、 vim -h の出力を確認してみましょう(vivim[を指している場合のvi-hの出力と同様です。 X145X]):

$ vim -h
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Apr 25 2022 22:13:25)
Usage: vim [arguments] [file ..]       edit specified file(s)
   or: vim [arguments] -               read text from stdin
   or: vim [arguments] -t tag          edit file where tag is defined
   or: vim [arguments] -q [errorfile]  edit file with first error

Arguments:
...

エディター自体で確認することもできます。 コマンドモードで:help と入力すると、 vi ではエラーが表示されますが、vimではヘルプマニュアルが表示されます。

5. どちらを優先すべきですか?

単純なテキスト編集タスクの場合、viとvimはどちらも同じように動作します。ただし、 vi は、POSIX準拠(または少なくともほとんど準拠)のシステムであると予想できるため、推奨されます。 さらに、パフォーマンスに関しては、 vim は、そのより広範な機能のために、viよりも少し多くのリソースを必要とします。

ただし、コードの長いスニペットやより複雑な部分を扱う場合は、vimの機能が役立ちます。 vim (および vi )を習得するための学習曲線急勾配で、最初は面倒に見えることがあります。 しかし、長期的には、特に多くのコードを書いている場合は、それが報われる可能性があります。 vim の機能が実際に役立つ場合でも、編集の問題を vi の機能に減らす必要がある単純さから、viを好む人もいます。

最後に、言及する価値があります他の実装 vi それよりもさらに多くの機能を提供します vim。 最もよく知られているのは neovim。 さらに、基本的な動作を維持しながら、グラフィカルユーザーインターフェイスを備えた実装があります。 vim-gtk

6. 結論

この記事では、最初にvivimについて説明しました。 次に、それらを区別する方法と、どちらかを使用する必要があるかどうかを選択する方法について説明しました。