タグ: プラグイン

IdeaVimでxキーで文字削除する際にレジスタを汚さないようにする

この記事は最終更新から3ヶ月以上が経過しています。情報が古い可能性があります。

OSの機能(cmd + xcmd + v)ではなくIdeaVimのddを使う場合に、移動先にゴミがあったのでxキーで削除して、いざペーストしようとしたら、xキーで削除したゴミが貼り付けられてしまった。「なんでだよムキーっ」とイラッとした経験を持つ人はきっと多いはずです。

そんなことにならないように、xキーで文字削除する際にレジスタを書き換えないようにする設定です。正確に言うと、IdeaVimではなくVimの設定の話ですけどね。

~/.ideavimrcを作成して以下の2行を書くだけ。

nnoremap x "_x
vnoremap x "_x

意味としてはノーマルモードとビジュアルモードにおいて、Xキーのキーマッピングを"_xに書き換えるという意味です。

"_とはなんぞやという話ですが、これはブラックホールレジスタという特殊なレジスタを表しています。Xキーのデフォルトの挙動は、1文字デフォルトのレジスタに移動するというものですが、この移動先をブラックホールレジスタに指定してやるという意味になります。

AndroidStudioをVimキーバインドで利用する

この記事は最終更新から3ヶ月以上が経過しています。情報が古い可能性があります。

Android StudioにはVimプラグインがあり、これを導入することでVimキーバインドでの入力が可能になります。

私はVim小学1年生くらいのレベルですが、そのレベルでもVimを使わない場合と比べてプログラミングが捗るなと思っています。

インストール方法は簡単で、Android StudioのメニューからPreferencesを開き、Pluginsを選択、IdeaVimというプラグインのインストールボタンを押すだけです。

Vimプラグインのインストール

タグなどの書き換えが簡単

Vimを利用することで便利になったことの1つに、タグなどの書き換えが非常にやりやすくなったことが挙げられます。

例えばandroid:layout_width="match_parent"のmatch_parentをwrap_contentに変更しようと思った時。Vimを使う前の私は、match_parentをマウスで選択肢てバックスペースキーで削除する、もしくはカーソルを最後に持って行ってバックスペースキーを連打して削除していました。

マウスを使う場合は余計なダブルクォートまで選択してしまうこともあり、微妙にイライラしてしまいます。バックスペースキーで削除する場合は、消さなくてよいところまで削除してしまい、Ctrl+zで取り消しをするとまた最初から消し直しになることがしょっちゅうありました。とても効率が悪いです。

Vimを使えば、キャレットをダブルクォートの中のどこかに置いてci"と入力するとmatch_parentが消えて書き換えができるようになります。なんとスムーズなんでしょう!

私がVimを便利だなと実感し始めたのは、この機能を知った頃からです。

慣れるまでは大変かもしれない

まったくVimに触ったことのない人だと、慣れるまでが大変かもしれません。私も最初の頃はしょっちゅう間違えておかしなことになっていました。文字を入力しようと思ったら入力できない(挿入モードに入っていない)、カーソルの動かし方がよく分からず、lキーを押して一文字ずつカーソル動かしていたり。慣れるまでVim不便すぎと思ってました。

ただある程度Vimの機能を覚え始めると、その魅力の虜になります。Vimがプログラマーに人気というのも頷けます。「範囲選択? マウスでやった方が早いじゃないか」とずっと思っていたのですが、いざVimを使ってみると想像以上に快適です。キーボードとマウスを行き来するのがこんなに邪魔だったなんて思いもしませんでした。

Android StudioでVimプラグインを導入すれば、マウスでの操作も併用できます。Vim触ったことないという人は、とりあえずAndroid StudioでVimに触れてみるのもいいのではないでしょうか。

Genymotionを導入してエミュレータの起動待ち時間を短縮する

この記事は最終更新から3ヶ月以上が経過しています。情報が古い可能性があります。

アプリ開発をしていてバカにならないのが、デバッグにかける時間です。頻繁にエミュレータを起動して動作確認を行うわけですが、デフォルトのエミュレータ(Android SDKのエミュレータ)はとにかく起動が遅いです。さらに動作ももっさりしていて、お世辞にも動作確認しやすいとはいえません。

そこで動作確認の時間をできるだけ短縮するためにも、Genymotionを導入しておくことをおすすめします。起動も早く動作もスムーズなので、デフォルトのエミュレータを使うのが馬鹿らしくなります。

私の環境で実際に両者を比較した動画を撮ってみました。

Genymotionをインストールする

Genymotionを利用するためには、ユーザー登録が必要になります。

また、エミュレータを動かすために別途Virtual Boxが必要になります。

端末を登録する

Genymotionをインストールできたら、端末の登録を行いましょう。Genymotionは実在する端末のエミュレーションを行うものなので、よく使う端末をとりあえず登録しておけばいいと思います。

サポートするAndroidのバージョンに合わせて登録しておくといいでしょう。私はとりあえず、Android2.3の端末と、自分の持っているGaraxy S3を登録しています。

端末の追加はそんなに難しくありません。予め用意されている端末から、エミュレーターとして使いたいものを選択するだけです。

Genymotionで端末の追加

Genymotion端末の選択

Genymotion端末の表示名を決める

後はダウンロードを待つだけ

Android Studioでプラグインを導入する

Android StudioからGenymotionのエミュレータを起動するためにも、Genymotionのプラグインも一緒にいれましょう。別に入れなくても使用に問題はありませんが、入れておいたほうがエミュレータの起動が捗ります。

GenymotionPluginからの端末起動

こんな感じでAndroid Studioから起動しやすくなります。

インストールの仕方はAndroid StudioのPreference > PluginsからGenymotionを探してインストールするだけです。そうすることでAndroid Studioの右上にGenymotion用のアイコンが追加されます。

Genymotion Pluginのインストール

万能ではないものの使わないのは損

Genymotionではデフォルトのエミュレータと比較して、画面サイズやAndroidのバージョン、SDカードの有無など細かなところまでカスタマイズすることができません。特にFreeライセンスでは利用できる機能に制限があるため、Android SDKのエミュレータを完全に置き換えるものではありません。

ですが基本的なデバッグ・動作確認にGenymotionを利用することで、アプリ開発における動作確認の時間を短縮することができると思います。基本的にはGenymotionを使うようにすれば、開発がだいぶ捗るのではないでしょうか?