ログイン
編集不可のページディスカッション情報添付ファイル
"clear/slide/2011-04-09-vi"の差分

MMA
9と10のリビジョン間の差分
2011-04-08 21:40:45時点のリビジョン9
サイズ: 2073
編集者: clear
コメント:
2011-04-09 03:03:15時点のリビジョン10
サイズ: 4015
編集者: clear
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 5: 行 5:
vi入門 `vi`入門
行 8: 行 8:
clear `clear`
行 20: 行 20:
:q :q<Enter>
行 28: 行 28:
  * `:q!`と入力   * 保存していない状態で終了しようとするとこれが出る
  * `:q!<Enter>`と入力することで無視して終了
行 31: 行 32:
 * hjklキー  * `hjkl`キー
行 39: 行 40:
 * 矢印キーも使えるが、hjklで動くようにしたほうがいい  * 矢印キーも使えるが、`hjkl`で動くようにしたほうがいい
行 43: 行 44:
= 練習 = = カーソル移動の練習 =
行 46: 行 47:
  * 次のように入力(これの意味は後ほど説明します)   * 次のように入力。途中で間違えたら`Esc`を押してやり直す
行 50: 行 51:
...

= もう少し大きく移動する =
== 単語単位 ==
 * `w`
...

== 画面単位 ==
 * `Ctrl-f`, `Ctrl-b`
...

== 特定の行へ ==
 * `<行番号>G`
 * `:<行番号><Enter>`
...
   * "80i"の部分は表示されない。後ほど説明するが、これにより"w"を80回連続で入力している
   * `h`、`l`を適当に叩いて左右の移動に慣れよう
    * 行頭や行末にたどり着いても前の行や次の行には行かないことに注意
  * 続いて、次のように入力
  {{{
yyp
}}}
   * 行が増える。そのまま`p`を何回か適当に叩いて行数を増やす
   * やはり後で説明するが、`yy`で1行コピー、`p`で次の行に貼り付け
   * `j`、`k`を使って上下に移動してみよう。慣れたら4つのキーであっちこっち移動してみよう
行 68: 行 64:
  * `i` - カーソルがある場所に挿入   * `i` - カーソルがある文字の手前に挿入
行 72: 行 68:
...
行 75: 行 70:
 * `x`
...
 * 削除したい文字にカーソルを合わせて`x`

= もう少し大きく移動する =
== 単語 ==
 * `w` - 単語の頭をたどる
 * `e` - 単語の末尾をたどる
 * `b` - 単語の頭を'''逆向きに'''たどる

== 行 ==
 * `0` - 行頭
 * `$` - 行末

== 画面 ==
 * `Ctrl-f` -
 * `Ctrl-b` -

== 特定の行 ==
 * その前に: `:set nu[mber]<Enter>`で行番号を表示
  * `:set nonu[mber]<Enter>`で行番号を非表示
 * `<行番号>G`
  * 単に`G`で末尾に飛ぶ
 * `:<行番号><Enter>`でもOK

== 検索 ==
 * `/<検索する語><Enter>` - 順方向(ファイルの後ろへ向かう検索)
  * `n`で直前の検索を繰り返す。`N`で逆方向に繰り返す
 * `?<検索する語><Enter>` - 逆方向(ファイルの先頭へ向かう検索)

= 大きく移動する練習 =
 * ちょっと大きなファイルを読み込む
 {{{
:r! /usr/include/stdio.h<Enter>
}}}
 * `:set nu<Enter>`で行番号を表示
 * 単語単位、行単位、検索など、色々な方法で移動してみよう
行 80: 行 108:
 * `dw`, `de`
...
 * `dw`、`de`、`db`
  * さっきの`w`とか`e`に`d`(delete)がついただけ
  * カーソル位置から削除する
行 84: 行 113:
 * `dd`
...
 * `dd` - 1行ごっそり消える
行 88: 行 116:
== 追加 ==
 * `a` - カーソルのある文字の後に追加
行 89: 行 120:
 * `o`, `O`
...
 * `o`ですぐ下に新しい行をつくる
 * `O`ですぐ上に新しい行をつくる
行 96: 行 127:
...
行 100: 行 130:
 * `:w`
 * `:x`
...

= 検索する =
 * `/`
...
 * `:w<Enter>`
 * `:x<Enter>`
行 110: 行 135:
 * 挿入 - `i`  * 挿入 - `i`、`a`

vi入門

clear

起動

とりあえず起動してみる

vim

終了

とりあえず終了してみる

:q<Enter>
  • :以降は画面下に表示される

  • 何かおかしい人はEscを2、3回叩いてから:q

  • こんなのが出たとき
    E37: No write since last change (add ! to override)
    • 保存していない状態で終了しようとするとこれが出る
    • :q!<Enter>と入力することで無視して終了

カーソル移動

  • hjklキー

        ^
        j
    < h   l >
        k
        v
  • 矢印キーも使えるが、hjklで動くようにしたほうがいい

    • 手をキーボードの中央から動かさずに操作できる
    • しばらく使ってみると手が覚える

カーソル移動の練習

  • 少し手を動かしてみよう
  • テキストを用意する
    • 次のように入力。途中で間違えたらEscを押してやり直す

      80iw<Esc>
      • "80i"の部分は表示されない。後ほど説明するが、これにより"w"を80回連続で入力している
      • hlを適当に叩いて左右の移動に慣れよう

        • 行頭や行末にたどり着いても前の行や次の行には行かないことに注意
    • 続いて、次のように入力
      yyp
      • 行が増える。そのままpを何回か適当に叩いて行数を増やす

      • やはり後で説明するが、yyで1行コピー、pで次の行に貼り付け

      • jkを使って上下に移動してみよう。慣れたら4つのキーであっちこっち移動してみよう

テキストを入力する

  • コマンドモードから入力モードに移行する
    • i - カーソルがある文字の手前に挿入

  • 色々入力してみよう
  • 入力を終える(コマンドモードに戻る)にはEscキー
    • 入力中なのか、コマンドモードなのか分からないときはとにかくEscを何回か叩く

一文字削除

  • 削除したい文字にカーソルを合わせてx

もう少し大きく移動する

単語

  • w - 単語の頭をたどる

  • e - 単語の末尾をたどる

  • b - 単語の頭を逆向きにたどる

  • 0 - 行頭

  • $ - 行末

画面

  • Ctrl-f -

  • Ctrl-b -

特定の行

  • その前に: :set nu[mber]<Enter>で行番号を表示

    • :set nonu[mber]<Enter>で行番号を非表示

  • <行番号>G

    • 単にGで末尾に飛ぶ

  • :<行番号><Enter>でもOK

検索

  • /<検索する語><Enter> - 順方向(ファイルの後ろへ向かう検索)

    • nで直前の検索を繰り返す。Nで逆方向に繰り返す

  • ?<検索する語><Enter> - 逆方向(ファイルの先頭へ向かう検索)

大きく移動する練習

  • ちょっと大きなファイルを読み込む
    :r! /usr/include/stdio.h<Enter>
  • :set nu<Enter>で行番号を表示

  • 単語単位、行単位、検索など、色々な方法で移動してみよう

もう少し大きく削除する

単語単位

  • dwdedb

    • さっきのwとかed(delete)がついただけ

    • カーソル位置から削除する

行単位

  • dd - 1行ごっそり消える

i以外の方法で入力する

追加

  • a - カーソルのある文字の後に追加

新しく行を作る

  • oですぐ下に新しい行をつくる

  • Oですぐ上に新しい行をつくる

既存の文字列を置き換える

  • r

  • c

  • s

保存する

  • ZZ

  • :w<Enter>

  • :x<Enter>

まとめ - これだけ覚えていればなんとかなる

  • 移動 - hjkl

  • 挿入 - ia

  • 1文字削除 - x

  • ...

clear/slide/2011-04-09-vi (最終更新日時 2011-04-10 23:02:54 更新者 clear)