Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
f モーションで縦横無尽に移動しよう
Search
monaqa
December 17, 2019
Programming
2
870
f モーションで縦横無尽に移動しよう
Vim の f モーションは最高というお話です.
* f モーションとは
* f モーションのコツ
* f/t モーション+オペレータ
* 縦方向 f モーション
monaqa
December 17, 2019
Tweet
Share
More Decks by monaqa
See All by monaqa
Lua製プラグインdial.nvimの紹介
monaqa
1
260
SATySFi Language Server の現状と今後
monaqa
0
510
satysfi-easytable: SATySFi で簡易な表組版
monaqa
1
2.4k
Vimrc読書会のすすめ
monaqa
2
790
Other Decks in Programming
See All in Programming
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
170
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
290
Java ジェネリクス入門 2024
nagise
0
690
推し活の ハイトラフィックに立ち向かう Railsとアーキテクチャ - Kaigi on Rails 2024
falcon8823
6
2.7k
From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism- An Example
philipschwarz
PRO
0
190
見せてあげますよ、「本物のLaravel批判」ってやつを。
77web
5
6.5k
約9000個の自動テストの 時間を50分->10分に短縮 Flakyテストを1%以下に抑えた話
hatsu38
24
12k
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
270
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
160
Ethereum_.pdf
nekomatu
0
380
cXML という電子商取引の トランザクションを支える プロトコルと向きあっている話
phigasui
3
2.3k
Realtime API 入門
riofujimon
0
140
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
15
2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
What's in a price? How to price your products and services
michaelherold
243
12k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
505
140k
Documentation Writing (for coders)
carmenintech
65
4.4k
We Have a Design System, Now What?
morganepeng
50
7.2k
Typedesign – Prime Four
hannesfritz
40
2.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Music & Morning Musume
bryan
46
6.2k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Transcript
f モーションで 縦横無尽に移動しよう monaqa 2019 年 12 月 17 日
1/16
自己紹介 名前: monaqa (モナカ) Qiita/GitHub アカウント: monaqa Twitter: @mo_naqa 好きなエディタ:
Vim (普段は Neovim を使用) Vim 歴: 1 年 2 ヶ月 好きな Vim のキーマップ: NORMAL モードの f 2/16
f モーションとは :help f f :カーソル行で,文字 が次に現れる場所に移動 (Find) Hello, world!
Hello, world! fo 派生コマンド t:カーソル行で,文字 が次に現れる直前の文字に移動 (Till) Hello, world! Hello, world! to その他: F, T, ;, , など 3/16
f モーションのコツ 記号を使おう return self.request('nvim_buf_get_lines', i, i + 1, True)[0]
この文字列に飛びたい 記号は目立つため,一発で飛べない場合も事前に察知できる 数字やアルファベット大文字も使いやすい 4/16
f モーションのコツ 記号を使おう fn n n この文字列に飛びたい ←アルファベット小文字は一発で飛びにくい return self.request('nvim_buf_get_lines',
i, i + 1, True)[0] この文字列に飛びたい 記号は目立つため,一発で飛べない場合も事前に察知できる 数字やアルファベット大文字も使いやすい 5/16
f モーションのコツ 記号を使おう f' fn n n ' この文字列に飛びたい ←アルファベット小文字は一発で飛びにくい
return self.request('nvim_buf_get_lines', i, i + 1, True)[0] この文字列に飛びたい 記号は目立つため,一発で飛べない場合も事前に察知できる 数字やアルファベット大文字も使いやすい 6/16
f モーションのコツ 記号を使おう f( return self.request('nvim_buf_get_lines', i, i + 1,
True)[0] f. f[ f' f+ (この例だと) 一発で色んな場所に行ける! 記号は目立つため,一発で飛べない場合も事前に察知できる 数字やアルファベット大文字も使いやすい 7/16
f/t モーション+オペレータ f/t は motion のため,d/c/y などのオペレータと組み合わせ可能 self.get_name(foo, bar) +
1 self.get_name(foo, bar) + 1 self. + 1 self.name + 1 例:メソッドを一旦消してフィールドに書き換えたい cf) f) name c:移動場所までの範囲を消して 挿入モードになる 8/16
f/t モーション+オペレータ f/t は motion のため,d/c/y などのオペレータと組み合わせ可能 'tekitou na mojiretsu'
'tekitou ' 2. 文字列の途中(カーソル位置) から最後まで消したいとき dt'
[email protected]
@gmail.com 1. メールアドレスの @ の手前 から書き直したいとき ct@ 9/16
f/t モーション+オペレータ f/t は motion のため,d/c/y などのオペレータと組み合わせ可能 int tekito_kari_counter; int
tekito_counter; 4. snake_case 変数の途中の 文字を削除したいとき df_ String tekitoCamelStr; String tekitoStr; 3. camelCase 変数の途中の 文字を変更したいとき ctS 本当はもっともっとたくさんの応用例がある(特に t) 10/16
f モーションの良いところ / 悪いところ 良いところ 省エネ・高効率 汎用性が高い (良い目印を選べば)直感的に移動可能 「一発で」所望の場所に飛んだ時の快感 オペレータと組み合わせたときの破壊力
悪いところ 横にしか移動できない 11/16
f モーションの良いところ / 悪いところ 良いところ 省エネ・高効率 汎用性が高い (良い目印を選べば)直感的に移動可能 「一発で」所望の場所に飛んだ時の快感 オペレータと組み合わせたときの破壊力
悪いところ 横にしか移動できない あれ?この発表のタイトルは「縦横無尽」じゃなかったっけ?? 12/16
縦方向 f モーション こんな記事を書きました(Vim その 2 Advent Calendar 2018 の
3 日目) 13/16
まとめと宣伝 f モーションは最高!! f モーションには記号を使おう f モーション + オペレータで幸せになれる 縦の移動は縦方向
f モーションが便利 興味がある方は是非記事をご覧ください https://qiita.com/monaqa/items/9764e957523ad0b56aec :qa! 14/16
補遺 15/16
縦方向 f モーションについて ## はじめに 最近,コーディングをしたり 学会の原稿を書いたりすると きに vim を使おうと試みて
います. 今⽇は⾃分が実装した(ちょ っと)便利なコマンドを紹介 します. (... 中略 ...) ## f 移動とは? example.md ␣f#↩ <Space>f<CR> と押せば, から 始まる行に移動できる 利点 .vimrc に数行追加するだけで使える 先頭さえ覚えていれば画面外の場所 でも移動できる / とは違い行頭しか見ないため, 把 握すべき範囲が狭くて済む オペレータとも組み合わせられる 16/16