赤ちゃんvimmerからよちよちvimmerにクラスチェンジを果たすためのTips

こんにちは、インフラエンジニアの射場です。

これはTECHSCORE Advent Calendar 2015 の15日目の記事です。

ふと、いつもどんなコマンドを多く使って仕事をしているのだろうと思い、以下のコマンドを叩いてみました。

ヒストリーから使用回数の多いコマンド上位10個を表示させるワンライナーです。

実行結果は以下のとおり。

vimがダントツですねー!

私が所属しているプラットフォームグループに最近Windowsな環境で戦ってきたメンバーが入ったのですが、vimが少々つらそう(と私が勝手に思っています笑)

vimでストレスを感じないために知っていると幸せになれるtipsをまとめました。

vimなんて爆発しろ!と思っている方に是非ご覧頂きたいです。

赤ちゃんvimmerになるためのテクニック

最低限vimを使ってファイル編集できるようになるために身に付けるテクニック。

とりあえずこれさえ覚えておけばなんとか仕事が進められるようになります。

vimのモード

vimは以下のモードを行き交ってファイルの編集をしていきます。

  • ノーマルモードは基本のモード
    • ファイルの保存もこのモードで行う
  • インサートモード (iやaキーなど)
    • ファイルの編集はこのモード
  • コマンドモード ノーマルモードから : で各種コマンドを実行
  • ビジュアルモード 初心者のうちは詳しく知らなくていい(多分)

最低限覚えるテクニック

最低限vimを使うために下記のテクニックは身に付けましょう。

  • 「i」でその場でインサートモード
  • 「a」で直後の文字にインサートモード
  • 「Escキー」でノーマルモード
  • 「:wq」で保存終了
  • 「:q!」で保存せずに終了
  • 移動は矢印キー
  • 「x」でカーソル下の文字を削除
  • 困ったらEscキーを連打

よちよちvimmerになるためのテクニック

矢印キー連打、deleteキー連打を卒業し、赤ちゃんvimmerからよちよちvimmerへクラスチェンジを果たすために下記のテクニックを身に付けましょう。

矢印キー連打からの卒業

  • 「h」で左、「j」で下、「k」で上、「l」で右にカーソルが移動する
  • 「gg」で最初の行、「G」で最終行にジャンプできる
  • <C-f>で1ページ後、<C-b>で1ページ前に移動
  • 「H」、「M」、「L」はそれぞれ画面の最上部・真ん中、最下部の行にカーソルを移動する
  • 「:数字」で入力した数字の行にカーソルを移動させる

より素早くファイルを編集する

  • 「==」でその行のインデント位置を自動修正できる
  • 「u」でundo
  • でredo
  • 「dd」で行全体をカット
  • 「yy」で行全体をコピー
  • 「dd」または「yy」を実行後に「p」でカット(コピー)した行をペースト
  • 「:%s/str1/str2/g」で全てのstr1をstr2に置換
  • 「”」で囲まれている中にカーソルを置いて、「ci”」と打つと「”」の中身を消してインサートモードになる
    • 「ciw」とするとカーソル位置の単語を消してインサートモード
    • 「ci[」「ci{」「ci(」はそれぞれ、「[」「{」「(」の中身を消してインサートモード
  • 「/パターン」で検索できる
  • 「:set number」または「:set nu」で行数を表示する

ここまでのテクニックを身に付ければvimを使う業務も難なくこなせるだろうと思います。

vim力を飛躍的に高めてくれる神ツール

LinuxやMacを使っているなら、ネ申コマンドがあるのでやってみるといいです。

vimをインストールしている状態で、以下のコマンドを実行します。

すると、vimの操作をチュートリアルで学ぶことができるのです。

何回かチュートリアルやればvimがメインのエディタになることでしょう。

Comments are closed, but you can leave a trackback: Trackback URL.

Advent Calendar 2015の連載記事

  1. TECHSCORE Advent Calendar 2015
  2. Redshift と PostgreSQL に同時に JDBC 接続する
  3. Lombok で Spice up your Java!
  4. 画像を指定するだけ!非デザイナーでも簡単にそれっぽい配色ができるツールを作ってみた
  5. 新卒文系エンジニアの記録:配属半年間の失敗を振り返ってみた
  6. 非同期処理のすすめ
  7. ioDrive2の導入で支える、そのIOPS - 導入検討編.
  8. GoでパイプラインからSlackに通知する
  9. fuse でオレオレファイルシステムを作ってみた (Haskell で)
  10. Erlang はじめました
  11. ちょっと地味なビルドとリリースの話 (レガシーシステム改革、はじめの一歩)
  12. Java8 最速 boolean[] to Stream 選手権
  13. Google Apps の Directory API にてWebブラウザを介さずに認証する
  14. 風データをビジュアルに表現する
  15. マイクロフレームワーク「Ninja」を使ってみる
  16. 赤ちゃんvimmerからよちよちvimmerにクラスチェンジを果たすためのTips
  17. PostgreSQL FDW を作ってSQLでログ検索してみた
  18. Goで偽名ジェネレータを作りました
  19. 書き込み中に削除されたファイルを救出する
  20. 運用情報更新のススメ
  21. ちゃんと読んでくれましたか?
  22. Presto コネクターを実装する 第三回
  23. Ruby2.3を触ってみる
  24. Git 困ったときのtips集
  25. 5分で読む入門編:Java 8 ラムダ式 コレクション編(2)リストの検索
  26. CloudFront (+ S3) + JWPLAYER で様々なデバイスのブラウザから動画をストリーミング再生する

Comments

  • 長井健  On 2015年12月18日 at 10:36

    Vimperator を使えばFirefox上でviキーバインドが楽しめますよね。ブラウザは利用頻度が高いので知らず知らずに何処でもhjklを押してしまう癖がついてしまいました。