Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

これだけ知っときゃなんとかなるVim

7,403 views

Published on

Vim 初心者がVim 超初心者へ送る勉強会資料です。

・対象
- Vim 使ったことないけどちょっと興味ある、というひと
- 必要に迫られたときに基本操作ぐらいはできるようにしておきたいひと

・このスライドを見ると何がわかるか
- Vim の超超基本的な操作方法
- Vim を使えるようになった気持ちがちょっとだけ味わえる Tips

  • Be the first to comment

これだけ知っときゃなんとかなるVim

  1. 1. 2013/06/10
  2. 2.  Lv.1:マジでこれだけ知っときゃなんとかなる◦ モードについて◦ 基本操作 Lv.2 :これ知ってるともうちょっとマシになる◦ 置換◦ Vimgrep◦ 矩形選択◦ インデント Lv.3 :余裕あったら覚えたらええんちゃうかな
  3. 3.  Vimには4つのモードがある◦ Normalモード 基本になるモード。すべてはここから始まる。◦ Insertモード(挿入モード) 文字を入力する◦ Visualモード(選択モード) 文字を選択する◦ Commandモード 便利なコマンドを使ってごにょごにょするこれらを切り替える方法をまず覚える
  4. 4.  挿入モード1. ノーマルモードから「i」で挿入モードへ2. 「hogehoge」と入力する3. 「Esc」でノーマルモードに戻る ビジュアルモード1. ノーマルモードから「v」でビジュアルモードへ2. 矢印キーで行ったり来たりする3. 「Esc」でノーマルモードに戻る コマンドモード1. ノーマルモードから「:」でコマンドモードへ2. 「set」とか打つとちょっと楽しい3. 「Enter」を押して小窓を閉じる4. 「Esc」でノーマルモードに戻る
  5. 5.  Undo, Redo コピー&ペースト 検索 ファイルを保存する ファイルを閉じる ファイルを開く
  6. 6.  Undo, Redo◦ Undo ノーマルモードで「u」◦ Redo ノーマルモードで「Ctrl+r」
  7. 7.  Undo, Redo1. ノーマルモードから「i」で挿入モードへ移る2. 「hogehoge」と入力する3. 「Esc」でノーマルモードに戻る4. 「u」と打つ5. → 「hogehoge」が無かったことに!6. 「Ctrl+r」と打つ7. →「hogehoge」が復活!8. ノーマルモードから「i」で挿入モードへ移る9. 「hogehoge」と入力してBackSpaceでもどって「hogefuga」にする10. 「u」と打つ11.→「hogefuga」が「hogehoge」になるんじゃなくて、行自体無くなる!
  8. 8.  コピー&ペースト◦ コピー 範囲選択して「y」◦ ペースト ノーマルモードで「p」
  9. 9.  コピー&ペースト1. ノーマルモードから「i」で挿入モードへ移る2. 「hogehoge」と入力する3. 「Esc」でノーマルモードに戻る4. 「v」でビジュアルモードへ移る5. 矢印キーを使って「geho」を範囲選択6. 「y」を打つ7. (→ 「geho」がコピーされる)8. 矢印キーで適当な場所に移動する9. 「p」を打つ10.→ 「geho」がペーストされる
  10. 10.  検索◦ 後方検索 ノーマルモードで「/<検索文字列>」 次の結果へ「n」 前の結果へ「N」
  11. 11.  検索1. ノーマルモードから「i」で挿入モードへ移る2. 「hogehoge」と入力する3. 「Esc」でノーマルモードに戻る4. 「/geho」と打つ5. →検索できる
  12. 12.  ファイルを保存◦ 名前を付けて保存 コマンドモードで「w <ファイル名>」◦ 上書き保存 (ファイルを開いた状態で)コマンドモードで「w」◦ 強制保存 「w」の横に「!」を付ける 「w! <ファイル名>」 「w!」
  13. 13.  ファイルを保存1. ノーマルモードから「i」で挿入モードへ移る2. 「hogehoge」と入力する3. 「Esc」でノーマルモードに戻る4. 「:」でコマンドモードへ移る5. 「w hoge.txt」と打ってEnter6. → (カレントディレクトリに)hoge.txtが保存される カレントディレクトリは「cd」で確認
  14. 14.  ファイルを閉じる◦ 閉じる コマンドモードで「q」◦ 強制で閉じる コマンドモードで「q!」
  15. 15.  ファイルを閉じる1. (hoge.txtを開いているものとする)2. ノーマルモードから「:」でコマンドモードへ移る3. 「q」と打ってEnter4. → ファイルが閉じられる
  16. 16.  ファイルを開く◦ コマンドモードで「e <ファイル名>」
  17. 17.  ファイルを開く1. (カレントディレクトリにhoge.txtがあるものとする)2. ノーマルモードから「:」でコマンドモードへ移る3. 「e hoge.txt」と打ってEnter4. → ファイルが開かれる
  18. 18. i 挿入モードへv 選択モードへ: コマンドモードへ/後方検索(「n」「N」で結果を行き来)<Esc> ノーマルモードに戻るu アンドゥCtrl+r リドゥy コピーp ペースト:w ファイルを保存:q ファイルを閉じる:e ファイルを開く
  19. 19.  矩形選択 インデント 置換 Vimgrep
  20. 20.  「Ctrl+V」で矩形選択モードになる。◦ 選択モードの亜種。 よくやる操作◦ 引用ブロックをつける1. 先頭行を矩形選択2. 「I」で挿入モードに入るので「>」を入力3. 「Esc」でノーマルモードに戻る4. → 選択していた場所すべてに入力文字が挿入される ほかにも興味あれば→◦ http://nanasi.jp/articles/howto/editing/blockwise-operation.html
  21. 21.  カレント行をインデントする「>>」 カレント行のインデントを外す「<<」 選択行をインデントする「V」「>」 選択行のインデントを外す「 V 」「<」
  22. 22.  まずはこれを覚える◦ 「:%s/hoge/huga/gc」◦ 意味: 今開いているファイル内の(%)、 hogeを、 hugaに、 行内でマッチする限り繰り返し(g)、 一つ一つ確認しながら(c)、 置換する
  23. 23.  応用◦ 確認を挟まずに置換 「c」を外す◦ 区間を指定して置換 8行目から13行目で置換 「:8,13s/hoge/huga/gc」◦ 選択範囲内で置換1. 任意の箇所を選択する2. 「:」を打つ(→「:’<,’>」と表示される)3. 続けて、「s/hoge/huga/gc」◦ 区切り文字は、つり合いがとれていれば、 「/」じゃなくてもいい。 「%s+hoge+huga+gc」 「%s.hoge.huga.gc」
  24. 24.  まずはこれを覚える◦ 「:vimgrep /hoge/j *.html |cw」◦ 意味: hogeを含むかどうか、 検索直後に結果にジャンプせず(j)、 カレントディレクトリのhtmlファイルすべてを対象に、 調べる 結果を小窓で表示する(cw)
  25. 25.  Vimgrepを実行すると、検索結果が小窓で開かれる。◦ 行き来するには「Ctrl+w Ctrl+w」(Ctrl押しっぱなしでw)◦ 小窓を閉じるには「:cclose」◦ 小窓を開くには「:copen」
  26. 26.  応用◦ 短縮形「:vim」「:vimg」◦ 検索結果の一番目をすぐ開きたい 「j」を外す◦ カレントディレクトリ以下を再帰的にgrep 対象ファイルのところを「**/*.html」みたいな感じに
  27. 27.  →「j」 ↑「k」 ←「h」 →「l」 行の先頭「0」 行の最初の文字「^」 行の最後「$」
  28. 28.  行選択「 V 」 行削除「dd」 行ヤンク「yy」 行結合「J」「gJ」 指定文字列が含まない行を削除「:v/hoge/d」 指定文字列が含まれる行を削除「:g/hoge/d」
  29. 29.  前方検索「?」◦ 上方向の検索結果へ「n」◦ 下方向の検索結果へ「N」 語句検索◦ 前方「#」◦ 後方「*」 前回の検索を繰り返す「//」
  30. 30.  タブ作成 「:tabnew」 次のタブ 「:tabn」 前のタブ 「:tabp」
  31. 31.  バッファ一覧を開く 「:buffers」 次のバッファ 「:bn」 前のバッファ 「:bp」 指定したバッファを開く 「:buffer <number>」 指定したバッファを閉じる 「:bd <number>」 現在のバッファを閉じる 「:bd」
  32. 32.  すべて挿入モードで使用◦ キーワード補完 「Ctrl+p」もしくは「Ctrl+n」◦ 局所キーワード補完 「Ctrl+x Ctrl+p」◦ オムニ補完 「Ctrl+x Ctrl+o」◦ 辞書補完 「Ctrl+x Ctrl+k」◦ パスパターン補完 「Ctrl+x Ctrl+i」◦ ファイル名補完 「Ctrl+x Ctrl+f」
  33. 33.  水平分割 「:sp」 垂直分割 「:vs」 行き来「Ctrl+w Ctrl+w」(Ctrl押しっぱなしでw) 分割した画面の横幅を増やす 「Ctrl+w >」 分割した画面の横幅を減らす 「Ctrl+w <」 分割した画面の縦幅を増やす 「Ctrl+w +」 分割した画面の縦幅を減らす 「Ctrl+w -」
  34. 34.  カレント行をセンターにスイッチ 「zz」 カレント行をスクリーン上部にする 「z<Enter>」 カレント行をスクリーン下部にする 「zb」 ファイルの先頭 「gg」 ファイルの末尾 「G」 スクリーンの最上部 「H」 スクリーンの最下部 「L」
  35. 35.  カーソル位置の左「i」 カーソル位置の右「a」 カレント行の先頭「gI」 カレント行の最初の文字の左「I」 カレント行の末尾「A」 カレント行の下方向に改行して移行「o」 カレント行の上方向に改行して移行「O」 カーソル位置の右以降を消して移行「C」 カレント行を消して移行「Vc」
  36. 36.  カーソル位置の単語をコマンドラインに挿入 「Ctrl+rCtrl+w」 (Ctrl押しっぱなしでr,w) コピーしたデータをコマンドラインに挿入「Shift+Insert」 直前まで開いていたバッファ「#」◦ (:e # とかって使う) 検索文字を挿入する 「Ctrl+r /」◦ 挿入モード、コマンドモードで使える
  37. 37.  カウントアップ「Ctrl+a」 カウントダウン「Ctrl+x」◦ 10進数でカウントアップ/ダウンするように設定する「:setnrformats=」連番の文字列作るときに便利
  38. 38.  いま開いているファイルがあるフォルダに移動する「:cd %:h」◦ 「:e」でパス指定しながらファイルを開くと、カレントディレクトリは移動しないので、これを使って移動すると便利◦ Kaoriya Vimには拡張機能が搭載されており、コマンドラインで「Ctrl+x」すると、パスを挿入してくれる。
  39. 39.  半角英字を大文字⇔小文字切り替えする◦ 選択行の半角英字を大文字にする「VU」◦ 選択行の半角英字を小文字にする「Vu」◦ 大文字小文字をトグる「~」
  40. 40.  前回の検索文字を使って置換「:%s//huga/gc」 ファイル内の文字を数える「:%s/./&/g」◦ (改行を除き、全角半角ともに1字としてカウント)
  41. 41.  シェルの実行結果を挿入する「:r! <command>」◦ 私がよくやるのは「:r! cat matchedfiles.txt | sort |uniq」です。 検索にマッチしたファイルのリストを保存しておいてユニークかけて影響範囲を絞る、みたいな。
  42. 42.  Vimgrepした結果を編集して使う1. Vimgrepの結果を別タブにコピペする2. 要らん行消したりなどする3. ファイルに保存4. 「:set errorformat=%f|%l col %c|%m」5. 「:cg <結果を編集して保存したファイル>」6. 「:cope」7. →編集した検索結果が使用できる
  43. 43.  半角英字を13文字先の文字に変換する(Rot13)◦ 「g?」◦ ファイル全体に変換をかける「ggVGg?」 「gg」でファイルの先頭へ移動 「V」で行選択モードに移行 「G」でファイルの末尾へ移動 「g?」で変換実行
  44. 44.  set nu set backspace=2 set wrapscan set hlsearch ⇔ set nohlsearch◦ 検索時はhlsearch, 用が済んだらnohlsearchというふうに使うと便利 set ignorecase set clipboard+=unnamed
  45. 45.  Vim エディタ・スターターマニュアル◦ http://nanasi.jp/howto/user-manual.html Vim テクニックバイブル◦ http://gihyo.jp/book/2011/978-4-7741-4795-6 Vi IMproved◦ http://gihyo.jp/book/2004/4-7741-2018-9

×