Vimm #2
プラグインって何?おいしいの?(kana)
- 種類
- global
- 全体で有効な機能を提供
- 起動時に自動ロード
- filetype
- emacsでいうとことのmajor mode
- ft別機能の追加
- compiler
- quickfixで利用される
- global
- pluginの場所
- <runtimepath>/plugin/{plugin}.vim
- help
- <runtimepath>/doc/{plugin}.txt
- :helptags
- Ex command
- ex. narrow.vim
- 指定範囲のみ表示
- ex. narrow.vim
- key mapping
- 関数
- Exコマンドの羅列をまとめたもの
- 値を返せる
- 引数の受け渡しが楽
- ex: smartchr
- Exコマンドの羅列をまとめたもの
- autocmd
- ex.netrw
- ネット越しのファイルを読み書き
- ex.netrw
- 詳細は:help
- 左手を回転させて中指でEsc
-
はじめてのコンパイラプラグイン(id:maedana)
- Skipのコミッタ
- テキストを解析してその結果を決まったフォーマットで出力するものは全部コンパイラでいいんじゃないかな(vim的には)
- Compiler plugin
- 特定のテキストのコンパイルサイクルを効率よく回す
- :makeprg、:errorformat
- :compilerを使うことで上記二つのオプションを設定する
- :compiler、:c[np]
- デモ
- Skipのspec
- いちいちメッセージ読んでエラーの場所に飛ぶのが面倒
- :compiler rspec
- :make % → 現在のファイルをcompile
- :clist → エラーリスト出る
- Skipのspec
- 何が嬉しいか
- シェルに切り替えとか行番号見るのとか面倒
- Vimだけで完結できる!
- 作り方
- →第二部で
- QuickFixについて
- まとめ
- 便利だから使うといいよ
- なかったら作れや
- 続きは:h
- user_30
- errorformat
rails.vim(ukstudio)
- at rawhide
- rails.vim
- :[RA][ESVT]
- related/alternateなファイルを開く
- ルール覚えられないのであんまり使わない
- :Rmodel/controller/view {name}
- tabで補完できる
- abbr
- RSpecに対応させてみた
- →githubに
-
Project.vim(yoshuki)
all about metarw(ujihisa)
- 前回の復習
- Metarw
-
-
君にも書けるvimプラグイン(kana)
- Hello world
- ファイル構成
- doc/plugin.txt
- plugin/plugin.vim
- :he runtimepath
- sket
- 流れ
- ドキュメントを書く
- プラグイン書く
- 式に改行入れる場合→次の行の行頭に\
- include guard
- ドキュメント指向
- 最初にドキュメント書く
- gitはミスを巻き戻してなかったことにできる
- スコープ
- a:argument
- 可変引数
- function hoge(...)
- let args_count=a:0
- let first_arg=a:1
- let args_as_array=a:000
- function hoge(...)
- 動作確認
- いちいちvim起動めんどう→:so
- それはそれで面倒(変数や関数が定義されてるとか)
- function!
- 関数呼ぶとき
- direct: call func()
- in expression: func()
- Ex command作る
- command! Hello call Hello()
- command! -nargs=* Hello call Hello(<args>)
- →<args>が「そのまま」展開されてしまう
- :Hello ujihisa → call Hello(ujihisa)
- <q-args>というものがある
- 省略すると空文字列が渡る
- <bang>→!が展開される
- とかいろいろ → :h user-commands
- 引数補完メソッドの指定とか
- Key mappings
- autocmdの定義
- autocmd BufEnter * call Hello()
- autocmd <event> <buffer name> <command>
- autocommand group
- augroup MyAutoCmd
- autocmd! //reloadable
- autocmd ...
- augroup END
- augroup MyAutoCmd
- :h autocommand
- :he autocommand-events
- そのた
- :h eval
- :h E121
- autoload
- filetype/syn/indent
- 他言語
- 質疑応答
- 非同期どうするよ
- MTは鬼門です
- 別プロセスでなんかやらせてあとで使うとかなら
- バックグラウンドのタスクが終了したらコールバックしたりとかは無理
- 雛形どこにあるの
- 非同期どうするよ
On Metarw(うじひさ)
- vimrc
- nnoremap ち a
- cnoremap c- CTRL-
- 余談
- metarwでnowa
- metarw#*#complete/read/Writeを実装する
- タグが反映されない→ライブデバッグ
- むずいことは外部コマンドに投げる
- metarwでmixi
-
vimrc解説(kana)
- 戦闘力1285
- " vim: foldmethod=marker
- <ret>と;をいれかえてる
- KeyboardLayoutコマンド
- nnoremap <Plug>(physical-key-;) :
- quickfix関係 q*
- tab関係 <ctrl-t>*
- タブに名前付けられるようにしてる
- タブの位置移動
- タブごとにCD設定可能(そういうスクリプトを書けば)
- スコープt:
- イベントTabEnter
- 日付の挿入
- <space>をどうにかする
- 雑多なコマンド割り当て
- hlsearchきりかえとか
- nmap <ESC> <c-w>
- ひー
- 実際は端末の設定でopt-h ==> <esc>hになるようにしてる
- ウィンドウを別のタブに持っていく
- 質問:バッファを開きまくると番号が増える、どうにかならないのか
- →ならない。「100くらいで気にしてちゃだめですよ」
- fuzzyfinderさんはあまり好きじゃない
- バッファ切り替えインターフェース自作