vim-users.jp

Vim勉強会#5 ujihisa発表資料

Posted at 2010/01/31
このエントリーをはてなブックマークに追加

Vim勉強会5 初級者向け講座

ujihisa

初級者とは

「初級者向け講座」 … 具体的に、初級者とは?

Vim使いのレベル10

  • Lv1 vimtutorを終わらせた。あるいは、hjklで移動できて保存と終了ができる
  • Lv2 ビジュアルモードを使うのをやめ、y}やdawなどの素晴らしい操作性に自己陶酔する
  • Lv3 自分でインストールしたプラギンの数が5を越え、ダメプラギンはすぐに判別できるようになる
  • Lv4 自分で作ったプラギンをvim.orgでリリースし、何人かをLife Changingさせる
  • Lv5 他のアプリケーション使用時にescやiを打鍵してしまい、イラっとする日々を送る
  • Lv6 シェルは当然vimshell。ネオコンなど大規模プラギンのバグを発見し、パッチ付きで報告する
  • Lv7 Vim本体のソースコードを読み、あまりの魔界に発狂する
  • Lv8 他言語インタフェースif_***を作り、vim_devに投稿する。当然採用されない
  • Lv9 Vim本体の開発への貢献が日常になる。投稿し採用されたパッチ数が10を越える
  • Lv10 神になる

つまり

  • Lv1~Lv4 初級者
  • Lv4~Lv7 中級者
  • Lv7~Lv10 上級者

今日の目標

Lv4 自分で作ったプラギンをvim.orgでリリースし、何人かをLife Changingさせる

全員ここまでやる

Be Lv1

  • Lv1 vimtutorを終わらせた。あるいは、hjklで移動できて保存と終了ができる

VimをインストールしてVimtutorを全部やる。25~30分。

$ vimtutor

Lv1の重要な点

  • u
    • undo。無制限
    • Vimは終了しない
    • キャンセルは<C-r>
  • A
    • その行の行末から文字入力開始!
  • dw
    • (delete 'word)
    • カーソル位置からその単語の終わりまでまとめて削除!
  • d$
    • カーソル位置から行末まで削除!
  • dd
    • その行を削除
  • p, P
    • 消した文字を貼付け。PだとVim以外のソフトのペーストのような挙動
  • 0
    • 行頭に移動

ビジュアルモード

  • v
    • 一文字単位のビジュアルモード
  • V
    • 行単位のビジュアルモード
  • <C-v>
    • 矩形選択

vしてyでヤンク、あるいはdで削除できる!

Be Lv2

  • Lv2 ビジュアルモードを使うのをやめ、y}やdawなどの素晴らしい操作性に自己陶酔する

非オブジェクト指向言語

値x に対して、 引数2 で、 関数f を実行する

f(x, 2)

オブジェクト指向言語

値x に対して、 引数2 で、 関数f を実行する

# f(x, 2)
x.f(2)

Vimのビジュアルモード

範囲x に対して、 引数2 で、 操作f を実行する

# f(x, 2)
# x.f(2)
x2f

Vimの非ビジュアルモード

範囲x に対して、 引数2 で、 操作f を実行する

# f(x, 2)
# x.f(2)
# x2f
2fx

例: 次の空行まで削除

ビジュアルモード

v}d

非ビジュアルモード

d}

非ビジュアルモードの薦め

  • 自分で画面を確認する必要がない! EP確保 (後述)
  • キータイプ数が少ない!
  • 範囲の大きさに依存しない!

dawは?

text-objectの一つ。

詳しくは次のSixeightさんによるtext-objectのためだけのプレゼンに刮目せよ!

Be Lv3

  • Lv3 自分でインストールしたプラギンの数が5を越え、ダメプラギンはすぐに判別できるようになる

Vim plugins

インストール: 単にファイルを置くだけ

  • (大抵の場合) ビルドとかいらないよ!

便利で小さいプラギン

  • quickrun
    • 編集中バッファを「実行」する
  • git-vim
    • gitをラクに使う
  • smartchr
    • いい感じに文字入力をラクにする

便利で大きいプラギン

  • neocomplcache
    • 補完!
  • vimshell
    • Vim scriptで実装されたシェル
  • blogger.vim
    • blogspot.comにブログを投稿する

自己紹介

ujihisa

自分のプロジェクト

  • quickrun.vim (現在はthincaさんがメインブランチ)
  • blogger.vim
  • few

関わっているプロジェクト

  • Termtter
  • Ruby Core

最近の活動

  • アメリカの大学院入試。いまは結果待ち
  • 明後日カナダに帰ります
  • アセンブリ言語勉強しています (LLVM, IA-32)

Be Lv4

  • Lv4 自分で作ったプラギンをvim.orgでリリースし、何人かをLife Changingさせる

プラギンの作り方

  1. Vimを使いまくる
  2. こんな機能があればラクなのになあと思う
  3. Vim標準でその機能があるか調べる :h
  4. www.vim.orgにそのスクリプトがあるか調べる

#

  1. 大抵はすぐにいくつか見つかる
  2. 実際に使ってみる
  3. ヒドい出来具合に発狂する
  4. 自分で実装する
  5. githubで公開する
  6. vim.orgで公開する

今後の発展

  • Vim用語を抑える
  • Vim hacksを毎日読む
  • Lingr Vim Roomに常駐する

Vim用語

  • Bram
  • 教皇
  • エネミー
  • hkn

Vim Hacks

/vim-users-jp/

  • kana, ujihisa, thinca, Shougo, ukstudioらが執筆
  • 時々ゲスト執筆者も。

ゲスト執筆者は常時募集中!

Lingr Vim Room

http://lingr.com/room/vim/

  • 大勢が常に常駐
  • tsukkeeさんのlingr-vimを使うとさらに快適に!

let g:loaded_vimlectur = 1


もどる
blog comments powered by Disqus