読者です 読者をやめる 読者になる 読者になる

ほんじゃら堂

めんどくさい仕事をラクにする作業自動化レシピ集

Vimから他のエディタに乗り換えたくなった時にみるべきポイント

f:id:piro_suke:20160825232500j:plain

ライトな言語で開発する時とか、文章を書く時は

テキストエディタとしてVim(KaoriYaさんのWindows版Vim)を長く使用している。

www.kaoriya.net

根が浮気症なので

Spacemacs+EmacsとかSublimeTextとかAtomとかLightTableとか

話題になったエディタには

「これこそ俺が求めていたもの!」

と手を出して使ってみるのだけど、半年後には

「やっぱりVimだな」

ということでVimに戻ってしまう。

そんな感じで新しいエディタを使うのは楽しいのだけど、

使い方を学ぶのに結構時間を使うので、

時間を無駄にしないように、

この条件を満たさないエディタには手を出さない!(どうせVimに戻ってくるから!)

というルールを決めてみる。

テキストオブジェクトのような簡易範囲選択機能があること

テキストオブジェクトというのは、

「""で囲まれた範囲」とか「タグで囲まれた範囲」といった

文字列の範囲を表すもので、

Vimではこのテキストオブジェクトに対して、

「v:選択する」「y:コピーする」「d:削除する(切り取る)」

みたいなオペレーションをキーの組み合わせて範囲に対する操作を

簡単に実行できる仕組みが備わっている。

例えば

カーソルのまわりの「""で囲まれた範囲を選択したい」場合は

ノーマルモードで

vi"

と打つと選択できる。

カーソルのまわりの「()の中身を削除(切り取り)したい」場合は

di(

みたいな感じで3キーでサクサク操作できる。

分かりにくいかもしれないので、

もう少し丁寧に説明されているページにリンクしておく:

qiita.com

とりあえずテキストオブジェクトはほんと素晴らしい。

これがあるかないかでプログラムを編集する時の効率がかなり変わるんじゃなかろうか。

10万行超えの大容量ファイルを編集できること

これはVim自体の良さなのかKaoriYaさんのVimの良さなのかは分からないが、

Vimは10万行程度のファイルなら数秒で開けて、

その中の数万行をフィルタするような置換処理も速い。

大容量のCSVファイルを編集したり検索したりすることもあるので、

この点は割と重視するポイント。

正規表現置換(後方参照も)に対応していること

ファイル内のデータはとにかく柔軟に効率よく検索・置換したい。

CSVをINSERT文に変換したりしたい。

列を入れ替えたりしたい。

最近のテキストエディタならだいたい

標準で正規表現検索とか置換に対応していると思う。

そういえばちょっと前にLightTableを使ってみた時は

ファイル内の正規表現置換に対応してないのか、

機能を見つけることができず使うのを断念した記憶がある。

今はどうかな。

Light Table

WindowsとMacの両方で使えること(あとできればLinuxのCUI環境でも)

これは個人的な環境の問題なのだけど、

職場がWindowsで自宅がMacなので。

画面分割(&タブ機能)機能が備わっていること

Windowsならウィンドウを横並びにすれば実現できるのだけど、

3つ以上のファイルを横並びにして見ながら編集したい、

みたいな状況だとエディタ自体にその機能が備わっている方が効率が良い。

これも最近のエディタはだいたい対応してそう。

マウス無しである程度操作できること

マウスを使わなくてもショートカットキーで編集作業を完結できると良い。

これも大抵できるかな。

日本語対応

メニューとかは英語でもいいから、

入力とか検索・置換で日本語対応しておいてほしい。

ある程度文字コード自動認識もしてほしい。

おわり

最近試した環境だと、Eclipse Neon + Vrapperがなかなかよかった。

期待以上にVimの機能がちゃんと移植されてる。

qiita.com

結局Vimなのだけど。

実践Vim 思考のスピードで編集しよう!

実践Vim 思考のスピードで編集しよう!