deris's tech talk ujihisa.vim3

2,333 views

Published on

0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,333
On SlideShare
0
From Embeds
0
Number of Embeds
916
Actions
Shares
0
Downloads
11
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • deris's tech talk ujihisa.vim3

    1. 1. How to move cursor more effectively (for Beginner) 2012/11/3 ujihisa.vim#3 @deris0126
    2. 2. 目次• はじめに• カーソル移動 • 横移動 • 縦移動• カーソル移動系plugin• まとめ
    3. 3. はじめに• 自己紹介 • Twitter:deris0126 • vim歴:2年半 • yokohama.vim ujihisa.vim vimrc読書 • どこにでもいるただのVimmerです
    4. 4. はじめに• 今日お話すること • normal modeでのカーソル移動の話
    5. 5. 目次• はじめに• カーソル移動 • 横移動 • 縦移動• カーソル移動系plugin• まとめ
    6. 6. カーソル移動• カーソル移動のコマンド • h,j,k,l,w,b,e,ge,H,M,L,¦,0,^, $,f,F,t,T,gg,G,%,]],[[,{,}, (,),/,*,#,m, ,`,etc • :help motion.txt • :help pattern.txt
    7. 7. カーソル移動• 数あるコマンドいつ、どれを使う?• おそらく誰もが通る道 • h j k l連打(jjjjjjjjjjjjjjjjjllllllllllllllllllll) • w連打(wwwwwwwwwww) • / とりあえず検索
    8. 8. カーソル移動• 私がよく使うコマンド • 横移動: f F ; ^ $ w b h l • 縦移動: gg G { } <C-f> <C-b> j k • 検索 : * /• わからないコマンドは • :help f とか :help CTRL-f
    9. 9. カーソル移動• どうすれば効率的に移動できる?• 以下に分けてお話 • 横移動 • 縦移動(検索)
    10. 10. カーソル移動• 以降、個人的見解でお話します • bestではないと思います • next stepのきっかけに • よりbetterな方法、考え方(求む)
    11. 11. 目次• はじめに• カーソル移動 • 横移動 • 縦移動• カーソル移動系plugin• まとめ
    12. 12. 横移動• 特定の位置に移動したい • 編集のため • *での検索のため(後述)• どのコマンドを選択するか?• どう考えるのが効率的か?
    13. 13. 横移動• 私の思考プロセス • ステップ1:行頭(末)に近いか?(^ $) • ステップ2:f(F)で近づけないか? • ステップ3:十分近いか?(w b h l)
    14. 14. 横移動• ステップ1:行頭(末)に近いか?(^ $) • 行頭(行末)から数単語くらいの位置
    15. 15. 横移動• ステップ2:f(F)で近づけないか? • 行内で1つだけの文字を探す • 記号 • 数字 • 大文字 • 小文字
    16. 16. 横移動• ステップ3:十分近いか?(w b h l) • 数単語以内 • w b(後述:vim-smartword) • 同単語 or 数文字内 • h l と f(F)
    17. 17. 横移動• ステップ1∼ステップ3のそれぞれを 一瞬で判断できるように鍛錬が必要• fより5wとか打つ思考の人もいるはず• 自分に合うか&慣れ
    18. 18. 目次• はじめに• カーソル移動 • 横移動 • 縦移動• カーソル移動系plugin• まとめ
    19. 19. 縦移動• 縦移動(ファイル内移動)はカーソル移動 以外にも方法があるので軽めに• まとめられなかったとか、発表時間足りないとかそんな理由じゃ ないです><
    20. 20. 縦移動• 移動箇所が明確• 眺めたいだけ
    21. 21. 縦移動• 移動箇所が明確 • ファイルの先頭:gg • ファイルの末尾:G
    22. 22. 縦移動• 移動箇所が明確 • 目的の単語知ってる • *で検索(後述:vim-visualstar) • 近くに目的の単語があれば、/より速い • /で検索
    23. 23. 縦移動• 移動箇所が明確 • 同画面内にある • { } 5j 5k j kでアプローチ • 後は横移動
    24. 24. 縦移動• 眺めたいだけ • ざっくり:<C-f> <C-b> • 細かく :{ } 5j 5k
    25. 25. 縦移動• おまけ:悪魔と取引をする • OSのkey repeat間隔を短くして禁断 のj,k長押しを使う。。。 • まっとうなVim Lifeを送りたい人に はおすすめはしない。 • MacならKeyRemap4Macbook、Windowsならレジストリいじくったり(完全に自己責任) • 昨年の某vim○akuさんから伝授
    26. 26. 目次• はじめに• カーソル移動 • 横移動 • 縦移動• カーソル移動系plugin• まとめ
    27. 27. カーソル移動系plugin• vim-smartword• vim-visualstar• vim-easymotion• columnjump• vim-submode
    28. 28. カーソル移動系plugin• vim-smartword • 単語移動がスマートに • 横移動時(いつでも) • NeoBundle kana/vim-smartword • 作者様:kana氏
    29. 29. カーソル移動系plugin• vim-visualstar • 選択したテキストを検索 • *で事足りない場合 • NeoBundle thinca/vim-visualstar • 作者様:thinca氏
    30. 30. カーソル移動系plugin• vim-easymotion • EasyMotion provides a much simpler way to use some motions in vim. • 画面内移動だったら万能? • NeoBundle Lokaltog/vim-easymotion • 作者様: Lokaltog氏
    31. 31. カーソル移動系plugin• columnjump • 縦方向のw bのようなもの • 階層構造になっている文章など• NeoBundle deris/columnjump• 作者:deris
    32. 32. カーソル移動系plugin• columnjump • vimrcの設定nmap <c-k> <Plug>(columnjump-backward)nmap <c-j> <Plug>(columnjump-forward)
    33. 33. カーソル移動系plugin• vim-submode • サブmodeを作れる(not 移動特化) • 移動専用modeも作れる • NeoBundle kana/submode • 作者様:kana氏
    34. 34. カーソル移動系plugin• vim-submode • vimrcの設定call submode#enter_with(ex-move, n, , <Space><Space>, <Nop>)call submode#enter_with(ex-move, n, , <Space>j, <C-f>)call submode#enter_with(ex-move, n, , <Space>k, <C-b>)call submode#leave_with(ex-move, n, , <Space>)call submode#map(ex-move, n, , j, <C-f>)call submode#map(ex-move, n, , k, <C-b>)call submode#map(ex-move, n, , n, 5j)call submode#map(ex-move, n, , m, 5k)call submode#map(ex-move, n, , l, })call submode#map(ex-move, n, , h, {)
    35. 35. カーソル移動系plugin• 縦移動はカーソル移動だけでは役不足• ファイル内移動に(も)使えるplugin • taglist • unite-outline • vimgrep • unite-grep
    36. 36. 目次• はじめに• カーソル移動 • 横移動 • 縦移動• カーソル移動系plugin• まとめ
    37. 37. まとめ• betterな方法を考えるのが上達の近道 • :help • vim plugin試してみる • 著名Vimmerをフォローする • [hot]vimrc読書会に参加する(土曜夜)
    38. 38. まとめ• とにかくvimに触れる• 日々の鍛錬で自分に合うコマンド、思 考プロセスを考えること
    39. 39. Happy Vim Life!

    ×