第16章 viはどこにでもある
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
はじめに
vi 、Vimを強力なエディターにしている多くの機能について説明してきた。しかし、vi は単なるエディターではない。 哲学である。 言葉を別の方法で考える方法である。 テキストをオブジェクトとして見ることができる。 これらのオブジェクトは、一度学べば、「ポイント・アンド・クリック」や「WYSIWYG(What you see is what you get)」とはかけ離れた編集アプローチを形成する。 オブジェクトとしてのテキストは興味深い抽象化であり、他のツールにも波及するほど人気がある。 この章では、vi-thinkの一般的なインスタンスと、あまり一般的ではない(しかし驚くほど便利な)インスタンスを紹介する。
コマンドライン・エクスペリエンスの向上
vi のユーザがパワーユーザであるように、 の「パワー」はテキスト編集だけにとどまらない。 何年もの間、コマンドラインツール(ターミナルエミュレータ、DOSウィンドウなど)は、初歩的なコマンドライン編集と履歴を提供してきた。オープンソースの貢献により、コマンドライン環境に劇的な改善がもたらされることが多くなった。vi 、多くのコマンドライン環境でコマンドライン履歴管理の実装として、より一般的なもののひとつである。
Unixでは、コマンドラインはShellと呼ばれている。 多くのシェルがある。最も有名なものには、sh (オリジナルのBourneシェル)、bash(GNU Bourne-againシェル)、 csh (Cシェル)、 (Zシェル)などがある、1ksh (Kornシェル)、zsh(Zシェル)である。
これから説明するように、最近のShellコマンドのほとんどは、vi-modeコマンドライン編集機能を備えている。
複数のシェルを共有する
警告
これから紹介することをテストする前に、 、これから説明する指示に従うことを強くお勧めする。 そうしなかったために、8,000近いヒストリー・コマンドが保存されたヒストリー・ファイルを失ってしまった!
以下の例では、コマンド履歴の編集を有効にするために必要なオプションを簡単に説明し、vi キー操作でコマンド履歴をナビゲートする方法を説明する。 さまざまなオプションをテストするために、必然的にさまざまなシェルを呼び出すことになるので、それぞれのシェルに固有の変数や振る舞いといった「環境」の概念を持つシェルインスタンスを作成することになる。 しかし、シェルによってはヒストリーファイルのデフォルト値を持っているものもあり、シェルを起動したり呼び出したりするときに、既存のヒストリーファイルの定義をわざわざ上書きすることはない。
たとえば、zsh を定期的に使用し、別のシェル (ksh) を起動した場合、履歴ファイル変数 (HISTFILE)の値は変更されず、ksh のコマンドがzsh の履歴ファイルに記録される。 あなたがksh 、既存のzsh 、混乱したまま放置され、壊れたヒストリーファイルを起動することになる!これは世界の終わりではないが、ヒストリーの力を使いたいのであれば、このようなことが起こらないようにしてほしい! そこで、こうするのだ:
-
ホームディレクトリに、
ksh(.kshrc)、Bash (.bashrc)、zsh(.zshrc)の各シェル用のスタートアップファイルを作成または編集する。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access