vi
は Unix および Unix系オペレーティングシステムで広く使用されているテキストエディタです。vi
はビジュアルモードをサポートする非常に強力なテキストエディタであり、vim
(Vi IMprovedの略)は vi
の拡張版として開発されました。
vim
は vi
の基本的な機能に加え、様々な拡張機能が追加されています。
vi と vim の違い
vi:
- Unix での標準的なテキストエディタとして提供されます。
- 基本的なテキスト操作機能を提供します。
- プログラムの修正や設定ファイルの編集に用いられます。
- 多くのUnixシステムでは、
vi
はvim
のシンボリックリンクとしてインストールされることが多いですが、最小限の機能のみを持つ場合があります。
vim (Vi Improved):
vi
の拡張版として多くの追加機能があります。- 構文ハイライト、複数のアンドゥレベル、拡張されたプラグインシステムなどが含まれます。
- ユーザーによりカスタマイズが可能で、多くの追加リソースが利用できます。
- 現代の多くのLinuxディストリビューションでは、
vi
は通常vim
のエイリアスまたはシンボリックリンクとして設定されています。
vi/vim でのファイル編集
ファイルを編集する基本的な流れは以下の通りです(ここでは vim
の例を挙げます)。
- ファイルを開く
vi filename
またはvim filename
ここでfilename
は編集したいファイルの名前です。 - 編集モードへの切り替え
i
キーを押すと「挿入モード」になり、テキストの編集が可能です。Esc
キーを押すと「通常モード」に戻ります。
- コマンドによる操作
:w
はファイルの保存。:q
はエディタの終了。:wq
または:x
は保存して終了。:q!
は変更を破棄して強制終了。
vi
や vim
を使いこなせるようになると、テキストの編集が非常に高速かつ効率的に行えるようになります。
viとvimの便利なコマンド
- 効率的なナビゲーション
gg:ファイルの最初へ移動。
G:ファイルの最後へ移動。
Ctrl + f:次の画面へスクロール。
Ctrl + b:前の画面へスクロール。
%:対応する括弧((, {, [など)へジャンプ。 - 検索と置換
/キーワード:キーワードを前方向に検索。
?キーワード:キーワードを後方向に検索。
:s/旧文字列/新文字列/g:カレント行の文字列を置換。
:%s/旧文字列/新文字列/g:ファイル全体の文字列を置換。 - 複数ファイルの操作
:e ファイル名:新しいファイルを開く。
:bn:次のファイルに移動。
:bp:前のファイルに移動。
:bd:ファイルを閉じる。 - カスタマイズとプラグイン
.vimrc ファイルに設定を記述して vim の挙動をカスタマイズ。
プラグインマネージャ(例:Vundle, Pathogen)を使用して機能拡張。 - マクロと自動化
qa:aレジスタにマクロを記録開始。
q:マクロの記録終了。
@a:aレジスタのマクロを実行。
@@:最後に実行したマクロを再実行。 - vimスクリプト
vimスクリプトを使用して複雑なテキスト処理を自動化。
:if, :endif, :for, などのコントロールステートメントを利用。