$30 off During Our Annual Pro Sale. View Details »

vim operation and my hotkey

vim operation and my hotkey

Toyama.rb #17 エディタについて語ろう会 LT 資料

Kunihiko Ito

May 13, 2017
Tweet

More Decks by Kunihiko Ito

Other Decks in Programming

Transcript

  1. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    vimの操作と俺と
    ホットキー
    伊藤 邦彦
    Toyamarb#17 エディタについて語ろう会
    2017-05-13

    View Slide

  2. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    p self
    name: 伊藤 邦彦

    github: kunitoo

    work: [Ruby, Rails, Neo4j]

    View Slide

  3. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    My Editor History
    Eclipse(Emacs key bind)

    Emacs

    Vim

    View Slide

  4. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    きっかけ
    https://www.slideshare.net/pharaohkj/
    ss-70439887

    View Slide

  5. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    俺とホットキー
    大変共感しました

    自分の使ってる Vim はこうだ
    よって言いたい
    比較みたいにまとめてみました

    Vimではホットキーというかは微妙ですが


    View Slide

  6. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    キーの表記
    Control key と v を同時に入力
    Vim
    Ctrl-v

    Emacs
    Ctrl + v "俺とホットキー"の表記

    View Slide

  7. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    上下左右
    Vim
    j k h l

    Emacs
    (Ctrl + p ・ 同n ・ 同b ・同f)

    View Slide

  8. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    範囲選択開始
    Vim
    v

    Emacs
    (Ctrl + h, Ctrl +h)

    View Slide

  9. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    コピー
    Vim
    y

    yy (1行コピー)

    Emacs
    (Cmd + w)

    View Slide

  10. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    カット
    Vim
    d

    dd (1行カット)

    Emacs
    (Ctrl + w)

    View Slide

  11. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    ペースト
    Vim
    p

    Emacs
    (Ctrl + y)

    View Slide

  12. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    アンドゥ・リドゥ
    Vim
    u

    Ctrl-r

    Emacs
    (Ctrl + - ・ Ctrl + ?)

    View Slide

  13. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    矩形選択
    Vim
    Ctrl-v

    Emacs
    (Ctrl + h > Ctrl + b)

    View Slide

  14. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    カーソル単語選択
    Vim
    viw

    Emacs
    (Cmd + , )

    View Slide

  15. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    単語右・左
    Vim
    w (words forward)

    b (words backward)

    Emacs
    (Cmd + f ・ Cmd + b)

    View Slide

  16. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    行末・行頭
    Vim
    $

    0

    Emacs
    (Ctrl + e ・ Ctrl + a > Ctrl + a)

    View Slide

  17. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    論理行頭
    Vim
    ^

    Emacs
    (Ctrl + a)

    View Slide

  18. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    行削除
    Vim
    dd

    Emacs
    (Ctrl + a > Ctrl + k)

    View Slide

  19. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    空行挿入
    Vim
    o

    Emacs
    (Ctrl + o)

    View Slide

  20. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    行クローン
    Vim
    yyp

    Emacs
    (Cmd + Enter)
    動作同じじゃないかも

    View Slide

  21. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    カーソル行コピー
    Vim
    yy

    Emacs
    (Cmd + Shift + Enter)

    View Slide

  22. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    編集行画面中央
    Vim
    zz

    Emacs
    (Ctrl + l)

    View Slide

  23. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    カーソル単語削除・単語削除
    Vim
    diw (bdw)

    dw

    Emacs
    (Cmd + d ・ Cmd + BS)

    View Slide

  24. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    ファイル先頭・ファイル末尾
    Vim
    gg

    G

    Emacs
    (Ctrl + < ・ Ctrl + > )

    View Slide

  25. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    入力補完
    Vim(insert mode)
    Ctrl-x Ctrl-l

    (ervandew/supertab plugin を利用)

    Emacs
    (Ctrl + SPC)

    View Slide

  26. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    ファイル履歴から開く
    Vim
    :b (補完)

    b
    Shougo/unite.vim plugin を入れて
    nnoremap b :Unite buffer

    Emacs
    (Ctrl + ;)
    動作同じじゃないかも

    View Slide

  27. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    最後に編集した箇所に移動
    Vim
    Ctrl-o

    Emacs
    (Ctrl + j > Ctrl + j)

    View Slide

  28. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    直前に開いていたウィンドウ
    @kunitoo
    - (Awesome Window Manager)
    @pharaohkj さん
    (OS) (Cmd + Tab)

    View Slide

  29. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    タグジャンプ
    Vim
    Ctrl-]

    Emacs
    (Ctrl + j > Ctrl + t)

    View Slide

  30. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    バックタグジャンプ
    Vim
    Ctrl-t
    tmux の prefix-key に使ってるので使ってない

    Emacs
    (Ctrl + j > Ctrl + b)

    View Slide

  31. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    指定行に移動
    Vim
    :{number}

    Emacs
    (Ctrl + j > Ctrl + g)

    View Slide

  32. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    行ブックマーク
    Vim
    使ってない
    Emacs
    (Ctrl - ' > Ctrl - a)

    View Slide

  33. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    対応するカッコに移動
    Vim
    %

    Emacs
    (Cmd + Ctrl + n/p)

    View Slide

  34. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    対応するカッコの自動入力
    Vim
    使ってないです
    Emacs
    ()

    View Slide

  35. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    カーソルの下のファイル開く
    Vim
    この操作が分かりませんでした...
    Emacs
    (+その行へ) (compile 実行後 対象行
    で enter)

    View Slide

  36. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    これ以降は
    kunitoo がよく使う便利な操作

    View Slide

  37. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    インデント
    >>

    View Slide

  38. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    フォーマット
    =

    View Slide

  39. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    引用符を含む文字列の操作
    (text-objects)
    operator と text-objects を組み合
    わせる
    operator
    y コピー

    d 削除

    View Slide

  40. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    引用符を含む文字列の操作
    (text-objects)
    text-objects
    a' ('を含む'で囲われた文字列)

    i' ('を含まない'で囲われた文字列)


    ya'

    yi"

    tpope/vim-surround でさらに便利に

    View Slide

  41. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    最後の操作を繰返す
    .

    View Slide

  42. vimの操作と俺とホットキー Powered by Rabbit 2.2.0
    設定(~/.vimrc)
    if &compatible
    set nocompatible
    endif
    set runtimepath+=~/.vim/repos/github.com/Shougo/dein.vim
    if dein#load_state('~/.vim/dein')
    call dein#begin('~/.vim/dein')
    call dein#add('Shougo/unite.vim')
    call dein#add('ervandew/supertab')
    call dein#add('tpope/vim-surround')
    call dein#add('vim-scripts/twilight256.vim')
    call dein#end()
    call dein#save_state()
    endif
    filetype plugin indent on
    syntax enable
    colorscheme twilight256
    set clipboard=unnamedplus
    set expandtab tabstop=2 shiftwidth=2
    set nobackup
    noremap ; :
    noremap : ;
    nnoremap b :Unite buffer

    View Slide