Neovimを使ってみよう
Neovimとは
Neovimは
メモ帳やサクラエディタのようなテキストエディタであり、
Visual Studio CodeやEclipseのようなIDE(統合開発環境)であり、
高速なフルテキスト検索ツールでもあります。
※Neovim自体がIDEを目指しているわけではない
また、ノーマルモード、インサートモード、コマンドモード、ビジュアルモードという4つのモード(※)を利用し、テキスト編集をはじめとした操作を高速に、かつ効率的に行うことができます。
※厳密には他にもモードは存在する
私自身も最初のうちは独特のキー操作に一時的に作業効率がダウンしたものの、今では確実に以前に比べ効率が上がったと思います。
Neovimの特徴
Neovimの特徴は「プラグインによるカスタマイズ性」と「(マウス不要の)キー入力での操作」です。
プラグインによるカスタマイズ性
Neovimはインストールしただけでは、シンプルなテキストエディタでしかありません。
無数に存在するプラグインを利用用途に合わせてインストールすることで、自分だけの作業環境を構築することができます。
例えば、
- 検索ビューを追加
- エクスプローラビューを追加
- JavaやPythonの開発/デバッグ環境を構築
など、今どきの挙げたエディタやIDEであれば標準で搭載される機能もNeovimではデフォルトでは存在せず、プラグインにより用途に合わせて追加します。
(マウス不要の)キー入力での操作
Neovimはキー操作のみで完結するテキスト編集を基本理念としており、ファイルの切り替えや検索操作などもコマンドやショートカットによりマウスは使いません。
意地でもマウスを使わない、使わなさない機能が備わっています。
Neovimの歴史
実際にNeovimを使ってみるのは別記事にまとめるとして、本記事の最後にNeovimの歴史を簡単にご紹介したいと思います。
知らなくても困りはしないので、興味ない方は飛ばしてもらって、以下の記事をご覧ください。
1. viエディタの登場
1976年頃、Emacsと共にUNIX環境で人気があるテキストエディタで、ビル・ジョイによって開発されました。viエディタは当時の環境では、マウスもカーソルキー(←↑↓→の矢印キー)もなかったことを背景にコマンドモードとインサートモード切り替えることで、カーソルの移動や保存、置換、検索、テキストの編集を行う仕様であり、一見、無駄な操作を見えるが、慣れると高速にテキスト操作を可能とし、コンパクトで負荷が小さいことからlinuxなど、様々なプラットフォームに搭載されました。
2. Vim登場によるカスタマイズ性豊かなエディタに発展
Vim(ヴィム)はviエディタから派生し、発展した高機能なテキストエディタです。
1991年ごろ、オランダ人のブラム・ムールナーによって開発されました。
Vimの大きな特徴は高いカスタマイズ性です。独自のスクリプト言語(Vim script)を用いて機能を拡張することができ、かなり幅広い機能強化を行うことが可能となり、有志らによって書かれた有用なスクリプトはプラグインとして公開され、個人の好みにあったエディタにカスタマイズすうことができました。
また、Vimでは大きく4つの基本モード(ノーマルモード、ビジュアルモード、挿入モード、コマンドラインモード)が存在し、キー操作にてモードを切り替え、テキスト操作を行うことができます。
他のテキストエディタと操作方法が全く異なるため、一通りのテキスト編集作業ができるまでに慣れが必要となりが、一旦慣れてしまえば軽快なテキスト編集ができるため、数多くのVim愛好家が存在します。
特にプログラマーやシステム管理者に利用者が多いです。
3. Neovimの始まり
Noevim(ネオヴィム)は2014年頃、ブラジルのエンジニア Thiago de Arrudaさんを中心となって開発されました。
その開発背景には、Vim本体の巨大なコードベースに対して、ほぼ一人でメンテナンスを行っており、新機能や大きな変更の取り込みにとても慎重にならざるを得ず、開発スピードが遅くなっていたことが挙げられます。
Vimの開発は当時時点で多くの開発者によってプラグインや新機能の開発が行われたと予想されますので、メンテナンス性を高めることが大きなモチベーションであったようです。
以下がNeovimの特徴となります。
- ユーザ操作やコマンドはVimとほぼ同一
- メンテナンスを複数の開発者間で分割
- スクリプト言語として新たにLua言語を採用
- プラグイン実行が非同期/リモート可能
- 上記の特徴により、Vimよりも高速とされている
Neovim関連記事
以下にこれまでに作成したNeovim関連記事をまとめてます。
よかったらこっちも見ていってください。
参考資料
vi - Wikipedia
Vim - Wikipedia
Home · neovim/neovim Wiki · GitHub
neovim とは何か?
deoplete.nvim開発者、Shougoが考える「Vimの限界ギリギリ」を攻めるプラグイン開発の裏側
Discussion