秒速で初心者からエキスパートになる。 たった7ステップで。
vimconf2016の発表で使用したサンプルデモ
High speed tour from beginner to expert in 7 stepsの抜粋版
※ step5以降は要 vim-mode-plus
- ビジュアルモードは知ってるよね?
- TextObject を使えや
- もっとええ Operator つかえや
- Operator と TextObject を組み合わせてみよう
- Operator の動作を
o
で変更してみよう. Occurrence に対して、Operate するようになるよ! - preset-occurrence を使ってみよう
- persistent-selection(消えないセレクション)を使ってみよう
チュートリアルで使用するテキスト
This is 1st paragraph text.
2nd line also include text text text.
3rd line include text text text
This is 2nd paragraph text.
2nd line also include text text text.
3rd line include text text text
4th text
1. ビジュアルモードは知ってるよね?
最初のパラグラフを abc
に書き換えて.visual-mode
でパラグラフ選択できるよね?
v j j $
orV j j
d
で消す。i
でinsert-mode
にはいってabc
と入力したらescape
2. TextObject を使えや
TextObject
を使えばもっと良くなるよ。
パラグラフ全体を i p
(inner-paragraph
) で選択してみろ。
v i p
d
で消す.i
でinsert-mode
にはいってabc
と入力したらescape
3. もっとええ Operator つかえや.
もっと良い Operator
を使えばもっと良くなる。d
で消してから i
で insert-mode
に入るより、c
を使えば両方一気にやれるぞ!
v i p
c
でchange
しよう.パラグラフ全体がdelete
されて、今キミはinsert-mode
にいる!abc
と入力したらescape
4. Operator と TextObject を組み合わせてみよう
visual-mode
を使わなければ、もっと良くなる。
c i p
でパラグラフ自体をchange
してみて。Operator が最初で、次に Target(TextObject) の順番だabc
と入力したらescape
- 2番目のパラグラフで
.
リピートしてみよう
5. Operator の動作を o
で変更してみよう。 Occurrence に対して、Operate するようになるよ!
新しいミッションを与える
今回は、パラグラフ全体を abc
に変えるんじゃなくて、パラグラフ内の text
という文字列のみを abc
に変えてほしい。o
Operator modifier は、まさにこの為にある!
- 最初のパラグラフの
text
という文字に移動して c o i p
かc o p
と打ってabc
と入力したらescape
- 2番目のパラグラフで
.
リピートしてみよう
何が起こった?o
は、カーソルの下の単語をまず、keyword としてピックアップする。そして、ターゲットの中で出くわす(occurrences
)、keyword に対して Operator を apply するようになるんだ。
今までみたいに、パラグラフ全体を change
して abc
に変える代わりに
パラグラフの中で出くわす text
(カーソル下の単語) を change
するようになったんだ。
内部的には、こうなっている
- 通常: パラグラフを
select
してchange
o
: パラグラフをselect
して,text
を更にその中からselect
し直して(re-select
)change
6.preset-occurrence を使ってみよう
新しいミッションを与える
今回は text
と line
の両方を abc
に変更して欲しい。
つまり 2つ!!のキーワードを変えてほしい。preset-occurrence
はこういう時に使える。o
をオペレーションの途中に挟み込む代わりに、前もって occurrence keyword を指定しておけるんだ。
- 1行目の
text
に移動してg o
とタイプ - 2行目の
line
に移動してg o
とタイプ c o i p
かc o p
と打って.abc
と入力したらescape
.- 2番目のパラグラフで
.
リピートしてみよう
7. persistent-selection(消えないセレクション)を使ってみよう
新しいミッションを与えるtext
と line
の両方を abc
に変更して欲しい。ただし、2番目のパラグラフの2行目だけは変えないで欲しい。
なんてこった。単純な .
リピートが使えない!persistent-selection
はこういう時使える。
text
とline
にg o
で preset-occurrence してv i p
でパラグラフ選択してenter
.普通の selection がpersistent-selection
になった- 2番目のパラグラフの1行目に移動して、
V enter
- 2番目のパラグラフの3行目に移動して、
V j
- よし、準備は整った.
c
で変更しよう abc
と入力したらescape
さらに難しいミッション
以下のサンプルテキストから、 vim-mode-plus のコマンド名を PascalCase 形式で抜き出して、アルファベット順に並び替えて。
From-short
"'": 'vim-mode-plus:move-to-mark-line'
To-short
MoveToMarkLine
From-full
'`': 'vim-mode-plus:move-to-mark'
"'": 'vim-mode-plus:move-to-mark-line'
'/': 'vim-mode-plus:search'
'?': 'vim-mode-plus:search-backwards'
'*': 'vim-mode-plus:search-current-word'
'#': 'vim-mode-plus:search-current-word-backwards'
'n': 'vim-mode-plus:repeat-search'
'N': 'vim-mode-plus:repeat-search-reverse'
'%': 'vim-mode-plus:move-to-pair'
')': 'vim-mode-plus:move-to-next-sentence'
'(': 'vim-mode-plus:move-to-previous-sentence'
# ')': 'vim-mode-plus:move-to-next-sentence-skip-blank-row'
# '(': 'vim-mode-plus:move-to-previous-sentence-skip-blank-row'
'[': 'vim-mode-plus:move-up-to-edge'
']': 'vim-mode-plus:move-down-to-edge'
'}': 'vim-mode-plus:move-to-next-paragraph'
'{': 'vim-mode-plus:move-to-previous-paragraph'
'G': 'vim-mode-plus:move-to-last-line'
'g g': 'vim-mode-plus:move-to-first-line'
'H': 'vim-mode-plus:move-to-top-of-screen'
'L': 'vim-mode-plus:move-to-bottom-of-screen'
'M': 'vim-mode-plus:move-to-middle-of-screen'
To-full
MoveDownToEdge
MoveToBottomOfScreen
MoveToFirstLine
MoveToLastLine
MoveToMark
MoveToMarkLine
MoveToMiddleOfScreen
MoveToNextParagraph
MoveToNextSentence
MoveToNextSentenceSkipBlankRow
MoveToPair
MoveToPreviousParagraph
MoveToPreviousSentence
MoveToPreviousSentenceSkipBlankRow
MoveToTopOfScreen
MoveUpToEdge
RepeatSearch
RepeatSearchReverse
Search
SearchBackwards
SearchCurrentWord
SearchCurrentWordBackwards