Archive for the 'vi' Category

VimM#3 勉強会にいってきた

今日は秋葉原に VimM#3 の勉強会に行ってきた。
元上司??の同じ職場で働いてる人とあったり、Flash の方での知り合いの同僚の人に
あったりだとかとても楽しいかった。
肝心の勉強会はというと、脱初心者がテーマなのにも関わらず初心者らし〜人はいなかった気がする。
はやく visual mode を卒業せねばと思う次第です。
内容的には取り組み方、マクロ、レジスタ、plugin、text objectなど多岐にわたってて
めっさんこ良かった。なんか分かった気がした。
text object や Control + } とかが衝撃だった。
全員が言ってたのは、それ help に書いてるよ。
つまりは help に全てがかいてあるから調べ方さえみにつけば
意外にスラスラ上達するのやも。
ということで忘れない間にメモメモ。
発表内容
Vimで効率的なテキスト編集 id:ukstudio
エディターはプログラマにとって、武士でいう刀みたいなもんだ。かっこよす。
非効率な作業をみつけ、それを解決する方法を考える(キーマッピング, vim script, macro)、
そして最後にそれを習慣にするとのこと。
最後の習慣にするってのが凄い大事。一気に色々覚えようとしても無理。
日々の鍛錬とはまさにこのこと。
新しいことを覚えて習慣化して次のを覚える。
あとは tips で
検索(*), ファイルの移動(gf), 置換, キーワード補完(control + n, p) の使い方があった。
vimrc を他の人のを読み、誰かに聞き、vim-users.jp で聞けば相当、力がつくとのこと。
マクロ id:taku_o
通称:マクロ厨ことななしの vim 使いさんの発表
最初はマクロの初歩的な使い方からはじまった。
と思いきや、気づけばレジスタの話になっていて
速攻意味不明。。。。。
と思いきや、説明がすごい分かりやすくてとても助かった。
マクロを作るときはレジスタが a-zA-Z0-9 と作れるが
基本が小文字を使うらしい。大文字だと小文字のレジスタが登録されていると追記されるらしい。
0は頻繁にかきかわり、1-9 はレジスタの番号がよくずれるためらしい。

:display <- レジスタの情報を表示して確認できる
Control + r [レジスタ] <- これでレジスタの値を貼付ける

マクロいいとこ

カーソル移動能力を使って編集箇所を簡単に細かくしていできる
頭、使わない。簡単
作って、即使える
何回でも実行できる

駄目なとこ

マクロを登録するコストがかかる
登録済みのマクロのミスを修正しづらい
条件分岐はしない方がいい
処理速度が遅い

むいてるとこ

少し大きめの編集処理
6-10万件
使い捨ての処理
スクリプトを組もうとすうと面倒なもの

他にもテンプレートの修正や、簡単なテストデータの作成にはむいている。
vimgrep, copen, cn これほんと便利。
これが今までしらなかったのが損というくらいのしろもの。
あと、expression レジスタもあった。これは便利!!
んで、改心の出来のマクロが組めたら vimrc に let @[レジスタ] [...]

日曜日, 11 月 23rd, 2008

viでctagsをつかってsparkする件

ctagsが便利そうだったので使ってみることにする。
簡単に説明するとメソッドやクラスから簡単に定義元のソースへ jump できる感じです。
まず default のままだと ctags の language には actionscript がないので追加します。
~/.ctags をつくればいいので下記をコピペします。

–langdef=actionscript
–langmap=actionscript:.as
–regex-actionscript=/^[ \t]*[(private| public|static) ( \t)]*function[ \t]+([A-Za-z0-9_]+)[ \t]*\(/\1/f, function, functions/
–regex-actionscript=/^[ \t]*[(public) ( \t)]*function[ \t]+(set|get) [ \t]+([A-Za-z0-9_]+)[ \t]*\(/\1 \2/p,property, propertis/
–regex-actionscript=/^[ \t]*[(private| public|static) ( \t)]*var[ \t]+([A-Za-z0-9_]+)[ \t]*/\1/v,variable, variables/
–regex-actionscript=/.*\.prototype \.([A-Za-z0-9 ]+)=([ \t]?)function( [ \t]?)*\(/\1/ f,function, functions/
–regex-actionscript=/^[ \t]*class[ \t]+([A-Za-z0-9_]+)[ \t]*/\1/c,class, classes/

あとは簡単。

!/bin/sh
 
echo ‘Generating tags for spark …’
SPARK_DIR=~/repos/svn/spark/as3
ctags -f ~/.vim/tags/actionscript/spark.tags –recurse [...]

木曜日, 9 月 4th, 2008