f モーションで縦横無尽に移動しよう

2.1K Views

March 16, 22

vim

スライド概要

Vim の f モーションは最高というお話です。

* f モーションとは
* f モーションのコツ
* f/t モーション+オペレータ
* 縦方向 f モーション

profile-image

Vim, Rust, SATySFi

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

f モーションで 縦横無尽に移動しよう monaqa 2019 年 12 月 17 日 1/16

2.

自己紹介 名前: monaqa(モナカ) Qiita/GitHub アカウント: monaqa Twitter: @mo_naqa 好きなエディタ: Vim(普段は Neovim を使用) Vim 歴: 1 年 2 ヶ月 好きな Vim のキーマップ: NORMAL モードの f 2/16

3.

f モーションとは :help f f𝑥 :カーソル行で,文字 𝑥 が次に現れる場所に移動 (Find) Hello, world! Hello, world! fo 派生コマンド t𝑥 :カーソル行で,文字 𝑥 が次に現れる直前の文字に移動 (Till) Hello, world! to Hello, world! その他: F𝑥 , T𝑥 , ; , , など 3/16

4.

f モーションのコツ 記号を使おう この文字列に飛びたい return self.request('nvim_buf_get_lines', i, i + 1, True)[0] 記号は目立つため,一発で飛べない場合も事前に察知できる 数字やアルファベット大文字も使いやすい 4/16

5.

f モーションのコツ 記号を使おう この文字列に飛びたい return self.request('nvim_buf_get_lines', i, i + 1, True)[0] fn n n ←アルファベット小文字は一発で飛びにくい 記号は目立つため,一発で飛べない場合も事前に察知できる 数字やアルファベット大文字も使いやすい 5/16

6.

f モーションのコツ 記号を使おう この文字列に飛びたい return self.request('nvim_buf_get_lines', i, i + 1, True)[0] fn f' n n ←アルファベット小文字は一発で飛びにくい ' 記号は目立つため,一発で飛べない場合も事前に察知できる 数字やアルファベット大文字も使いやすい 6/16

7.

f モーションのコツ 記号を使おう f( return self.request('nvim_buf_get_lines', i, i + 1, True)[0] f. (この例だと) f' 一発で色んな場所に行ける! f+ f[ 記号は目立つため,一発で飛べない場合も事前に察知できる 数字やアルファベット大文字も使いやすい 7/16

8.

f/t モーション+オペレータ f/t は motion のため,d/c/ y などのオペレータと組み合わせ可能 例:メソッドを一旦消してフィールドに書き換えたい self.get_name(foo, bar) + 1 cf) c:移動場所までの範囲を消して 挿入モードになる self. + 1 name self.name + 1 self.get_name(foo, bar) + 1 f) 8/16

9.

f/t モーション+オペレータ f/t は motion のため,d/c/ y などのオペレータと組み合わせ可能 tekitou.na+address@gmail.com 1. メールアドレスの @ の手前 から書き直したいとき ct@ @gmail.com 'tekitou na mojiretsu' 2. 文字列の途中(カーソル位置) から最後まで消したいとき dt' 'tekitou ' 9/16

10.

f/t モーション+オペレータ f/t は motion のため,d/c/ y などのオペレータと組み合わせ可能 String tekitoCamelStr; 3. camelCase 変数の途中の 文字を変更したいとき ctS String tekitoStr; int tekito_kari_counter; 4. snake_case 変数の途中の 文字を削除したいとき df_ int tekito_counter; 本当はもっともっとたくさんの応用例がある(特に t) 10/16

11.

f モーションの良いところ / 悪いところ 良いところ 省エネ・高効率 汎用性が高い (良い目印を選べば)直感的に移動可能 「一発で」所望の場所に飛んだ時の快感 オペレータと組み合わせたときの破壊力 悪いところ 横にしか移動できない 11/16

12.

f モーションの良いところ / 悪いところ 良いところ 省エネ・高効率 汎用性が高い (良い目印を選べば)直感的に移動可能 「一発で」所望の場所に飛んだ時の快感 オペレータと組み合わせたときの破壊力 悪いところ 横にしか移動できない あれ?この発表のタイトルは「縦横無尽」じゃなかったっけ?? 12/16

13.

縦方向 f モーション こんな記事を書きました(Vim その 2 Advent Calendar 2018 の 3 日目) 13/16

14.

まとめと宣伝 f モーションは最高!! f モーションには記号を使おう f モーション + オペレータで幸せになれる 縦の移動は縦方向 f モーションが便利 興味がある方は是非記事をご覧ください https://qiita.com/monaqa/items/9764e957523ad0b56aec :qa! 14/16

15.

補遺 15/16

16.

縦方向 f モーションについて <Space>f𝑥𝑦𝑧<CR> と押せば,𝑥𝑦𝑧 から 始まる行に移動できる 利点 .vimrc に数行追加するだけで使える 先頭さえ覚えていれば画面外の場所 でも移動できる / とは違い行頭しか見ないため, 把 握すべき範囲が狭くて済む オペレータとも組み合わせられる example.md ## はじめに 最近,コーディングをしたり 学会の原稿を書いたりすると きに vim を使おうと試みて います. ␣f#↩ 今⽇は⾃分が実装した(ちょ っと)便利なコマンドを紹介 します. (... 中略 ...) ## f 移動とは? 16/16