「なぜvimを使うのか」の版間の差分

提供: neovim/vim入門
移動: 案内検索
(なぜvimを使うのか)
行168: 行168:
  
 
== 関連項目 ==
 
== 関連項目 ==
{{basic}}
+
* [[vim]]
* [[特別:人気ページ]]
+
* [[vimの環境構築]]
 
* [[メインページ]]
 
* [[メインページ]]
 
<!-- vim: filetype=mediawiki
 
<!-- vim: filetype=mediawiki
 
-->
 
-->

2017年6月18日 (日) 23:11時点における版

なぜvimを使うのか、を説明します。むしろ、なぜvimを使わないのか?vimというよりは、むしろ、なぜエディタを使うのか、という色が強いかもしれません。

読み方

なぜvimを使うのか
なぜ、ぶいあいえむをつかうのか

概要

なぜ、エディターを使うのか? 人は、なぜ、究極のバトルエディターズ vimに溺れるのか?

エディタ戦争をはじめようという意図はありません。

テキスト編集能力の補完をはじめましょう。

エディタとはなにか

エディタ(editor)とは、テキストを編集することに利用されるソフトウェアです。Windowsで言えば、「メモ帳」(notepad.exe)さんもエディタです。

エディタと出会う

「弘法は筆を選ばず」といいますが、「選ばなくても良い結果が出せる」ということであって、「弘法が筆を選べばもっと結果を出せる」と思っています。

規制されている環境もございますが、多くの人は、「エディタを選ぶ自由」が与えられています。数多くのエディタが創られて、進化を続けています。

今、使ってるエディタは、

  • それが最初から入っていた
  • 薦められた
  • たまたま出会った
  • 便利なものを探していた

など、いろいろな出会いがあったかと思います。

もし、今のエディタに不自由しているなら、最適なエディタを探してみるべきです。

なぜ人はエディタを選ぶのか

エディタには、それぞれ、特徴があります。

  • 機能が最低限でシンプル
  • 機能が豊富
  • 拡張ができる
  • プラグインがいっぱいある
  • キーバインド(ショートカットキー)がステキ
  • 見た目がオシャレ
  • マルチプラットフォーム

どれを選ぶかは、人それぞれでしょう。

人は、何を選ぶべきなのか

エディタ選択は、人生を左右すると言っても過言ではありません。 エディタの持つ能力は、あなたの生産性を10にも100にもしてくれる存在です。

自分にマッチしているものを選択するべきです。 どういう意味で、マッチしているかというと、「自身の生産性」を爆発的に強化できる機能を有しているかです。

キーバインド(ショートカットキー)であらゆる操作ができれば、マウスに手を持ち替えずに、操作ができます。「デバイスの持ち替え」の時間が省略できるということは、次の動作に、すぐに移れるということです。余計なことに時間を割く必要がありません。思考の中断を最小限にできます。

文章を編集する、ということは、文章内を移動しなければなりません。「カーソルキーで移動する」よりも「効率的にカーソルを移動する」ことができれば、すぐに次のタスクに取り掛かれます。 「カーソルキーを移動する」時間は、何も生み出しません。正しい、位置にカーソルをあわせることに、人は、意識が向いてしまっています。カーソルキーを移動することが目的ではなく、移動先で「才能を爆発」させることが目的であるのです。

テキストでは、同じようなフレーズを使いまわすこともあります。 一度、入力したものを2度もすべて入力しなおすのは、ナンセンスです。 そこで活躍するのは、「入力補完機能」です。

入力補完機能は、いろいろな実装があります。補完の例をいくつか挙げてみます。

  • すでに、入力されている文字列から補完
  • 辞書などから補完
  • プログラムならヘッダファイルから補完

「入力補完」をするのは、なにが嬉しいのでしょうか? ガラケー、スマホやパソコンのIMEの補完機能を経験したことがある人なら、よくわかると思いますが、自分がすべて入力せずとも、選択するだけで、文章がある程度、構築できるわけです。それだけ、テキストの作成の時間が短縮できます。

「入力補完」は、「時間の短縮」だけではなく、「正確に入力ができる」という恩恵があります。何度も同じ「単語」を入力していると、人は、どうしても「スペルミス」を犯しがちです。入力補完を使用すれば、正しいデータがさえあれば、ミスを減らせる可能性があります。また、補完候補で、複数、似たようなものが出てきて、スペルミスに 気づくこともある、というそういうメリットもあります。

高機能なエディタはプログラマ達だけのものではない

「高機能なエディタ」は、ソフトウェアプログラマやシステムエンジニアだけのソフトウェアではありません。

ドキュメントの編集、Wikiの編集、メールの編集、メモの編集、といったエンジニア以外の人たちにも恩恵があります。 「エディタの拡張」機能を作ることは、非エンジニア向きではないかもしれませんが、世の中の好きな人達が、どんどん、「拡張機能」を作って、「便利な機能」を提供してくれます。「あなたが困っていること」は「他の人も困っている」訳です。

特殊なマークアップ言語で文章を編集するときに、テキストでマークアップしなければならないとき、補完機能があれば、面倒なマークアップの入力を自動化できるわけです。マークアップのシンタックスを理解させれば、色付けして、マークアップを見やすくすることもできます。

エンジニアはなぜエディタが好きなのか

「生産性が上がる」からでしょう。

  • 移動が自由自在
  • キーボードだけでほとんどオペレーションできる
  • 入力補完によって、編集スピードが加速する
  • プログラムのチェックを自動化する
  • 面倒なことは、エディタや拡張機能でバリバリ解決
  • アンドゥ・リドゥがいけてる
  • インクリメンタルサーチ
  • 正規表現による検索や置換
  • 外部コマンドとの連携
  • シンタックスハイライト
  • プラグインで拡張できる
  • プラグインを自分で作れる
  • レコーディング

vi/vimを使う理由として、上記のことがあがるでしょう。

エディタは一生付き合うパートナー

エディタに習熟するには、時間がかかります。

vi/vimといった変態的なエディタは、キーバインドが特殊であるが故に、多少、とっつきにくいところもあります。「多少」といって、「多少じゃない」という声が聞こえてきそうです。 たかだか、文章編集のために「本を読む」といった行為も必要になります。 しかしながら、「その投資」があなたの将来を支えることになります。

たいていのエディタは、「機能が豊富」であるため、すべてを知り尽くし、すべてを使いこなすのは、おそらく困難でしょう。しかし、恐れることはありません。「すべての機能」は、知らなくても、「効率化の弊害」にはなりません。自分に必要な機能から覚えていけばいいのです。

世の中は、進化するため、ときどき、キャッチアップが必要になります。

  • エディタそのものが進化する
  • 拡張機能・プラグインの進化
  • 新しい拡張機能・プラグインの誕生

上記のケースがあるため、ときどき、新しい情報を仕入れるべきです。仕入れることをやめた時点で、あなたは、時代遅れになってしまうでしょう。それぞれの「進化」は、あなたにとって、「些細なこと」であったり、「不要なこと」であるかもしれませんが、「あなたに多大な恩恵をもたらすもの」であることもあります。

そして、何を選択するのか

多くのことは、

  • それ、vim で出来るよ
  • それ、Emacs で出来るよ

というように、どのエディタでも同じようなことができるでしょう。

vimは貴方を補完する

不自由だと思ってることは、「それ ooo で出来るよ」が当てはまることがあります。テキスト編集で不自由を感じていることのいくつかは、「それ vim で出来るよ」に該当するでしょう。

  • vim のデフォルトの機能が補完(入力補完という意味ではなく)してくれる
  • vim プラグイン(vimスクリプト)を誰かが作ってくれている

足りない機能は、自分で作り、自己補完することが可能です。

vimはデフォルトの設定では使えない

おそらく、vimをデフォルトの設定で使うのは、無策過ぎるかもしれません。自分にあった形で、最適化が必要です。間違いなく、他人のvimは、使い物になりません。なぜなら、それは、その人に最適化されているからです。

だから、あなたは、 .vimrc を持ち歩くことになるでしょう。

  • クラウドストレージ (例: Dropbox)
  • ソースコード管理システム (例: github)

vimは、どこでも使える

vimは、どこでも使えます。

  • Unix ( *BSD / Linux )
  • Windows
  • Mac OS

vimは、なんでも編集できます。

  • Web
  • メール
  • メモ
  • プログラム

なぜvimを使うのか

もう、ここまできたら、なぜvimを使うのか、という問に答えが出ているのではないでしょうか? 生産性を上げるため、貴方を補完するためのエディタの魅力が理解できたはずです。

vimを使う理由をあげたら、きりがありません。

  • vimは、マルチプラットフォーム(詳しくはvimをお読みください)
  • vimを補完する豊かなvimのプラグイン
  • vimを拡張できるvimスクリプト
  • vimは、統合開発環境でもある(vimのPHP開発環境をお読みください)
  • vimは、すべてを編集する
    • あらゆるテキストファイル
    • メール
    • Wiki
  • ホームポジションであらゆることができる
  • ユニークなキーバインド
  • vimは画面分割、タブ機能がある
  • パワフルな検索と置換(詳しくはvimのパターン検索と置換で知っておくべきことをお読みください)
  • 豊富なハイライトシンタックス
  • ビジュアルモード
  • レジスタ
  • 繰り返し作業に強い機能
  • レコーディング機能
  • 素敵なアンドゥ(undo)とリドゥ(redo)

vimは、貴方の編集ライフを書換える事が可能です。

関連項目