vimで実行されたautocmdを知りたい

投稿者 nanki 2008-05-28 19:21:00 GMT

$ vim -V9 filename

とすればいいらしい。

あるいは、

:set verbose=9


RubyでもJavaScriptでも動くコード

投稿者 nanki 2008-04-30 14:19:00 GMT
"#{"/*"}"
  Ruby Code.
__END__
*/
  JavaScipt Code.
"#{"/*"}"
  Ruby Code.
__END__
*/
  JavaScipt Code.

他にもあると思うけど。

こういうのどうやって探したらいいんだろう。

追記:

たった二つから使っていいのかわからないが、polyglotと呼ぶらしい。


Purl 実行環境!

投稿者 nanki 2008-02-23 21:47:00 GMT

shadow

:区切りの逆ポーランド記法言語、purlのランタイムを公開。

http://purl.netswitch.jp/purl/1:load:3:shadow:medium:to.png
上の画像のURLがそのままソースコードになっています。

こちらから画像をアップロードすると、統合開発環境に飛びます。

こんなかんじ

rubyruby

といったことが、URLだけで実現可能。


プログラミング言語 purl を ruby で実装

投稿者 nanki 2008-02-21 01:40:00 GMT

言語処理系を実装するのは、初めて(だと思う)

PostScript などと同じ逆ポーランド風の言語で、画像処理用途。

以下purlのソース。

2:load:dup:2:shadow:swap:composite:geom:1:load:100:100:4:pull:4:pull:crop:swap:composite:to.png

:がリテラルの区切り、その他は数字と演算子。 上のコードでは、2番の画像をロードして、ドロップシャドウしたものに1番の画像を背景として合成している。

ソースコード中に改行は入れられない。何故ならコードはURLの一部だから…

sample


ターミナルで色づけ

投稿者 nanki 2008-02-02 03:37:00 GMT

手軽に使えるフィルタコマンドが欲しかったので、rubyで書いた。

$ gem install term-ansicolor した後、

☶ cat public/javascripts/prototype.js |color red -- function |color yellow -- return | tail

terminal-color-filter

参考:

/lang/ruby/misc/color - CodeRepos::Share - Trac


named routesでtransit_sidが動かない

投稿者 nanki 2008-02-01 11:50:00 GMT

person_urlとかにsession_idがつかないと思ったら、最適化のためのコードが、defaulturloptionsを無視するらしい。

#10925 (Routing optimization, named routes missing default url options) - Rails Trac - Trac


Re: netswitch! | vim/rubyのための部分最適化

投稿者 nanki 2008-01-26 21:39:00 GMT

Re: netswitch! | vim/rubyのための部分最適化

今はこんな風になっている。

function SymbolUnderCursor(tran)
  return synIDattr(synID(line("."),col("."), a:tran),"name")
endfunction

function SmartSemicolon()
  execute "normal a "
  try
    throw SymbolUnderCursor(1)
  catch /rubyString\|rubyRegexp/
    execute "normal r;"
  catch /.*/
    execute "normal xo \<BS>"
  endtry
endfunction

function SmartEnd()
  execute "normal a1"
  try
    throw SymbolUnderCursor(0)
  catch /rubyString\|rubyRegexp\|rubyLocalVariableOrMethod/
    execute "normal xae\<Esc>and"
  catch
    execute "normal xae\<Esc>and\<Enter> \<BS>"
  endtry
endfunction
  
    
function SmartDefine()
  try
    throw SymbolUnderCursor(1)
  catch /rubyDefine/
    execute "normal oe\<Esc>and\<Esc>k"
  catch
  endtry 
endfunction
    
au FileType ruby imap <buffer> begin begin<Enter>
au FileType ruby imap <buffer> end  <Esc>:call SmartEnd()<CR>a
au FileType ruby imap <buffer> then then<Enter>
au FileType ruby imap <buffer> ensure ensure<Enter>
au FileType ruby imap <buffer> else else<Enter>
au FileType ruby imap <buffer> elsif elsif<Enter>
au FileType ruby imap <buffer> ; <Esc>:call SmartSemicolon()<CR>a
au FileType ruby imap <buffer> def def<Esc>:call SmartDefine()<CR>a
追記:
  • rubyRepeat追加

Infinity

投稿者 nanki 2007-08-01 23:05:00 GMT

よいこは真似してはいけない、変数名。

$ irb -Ku

∞ = 1.0 / 0
=> Infinity

(-∞..4).include? 5
=> false

(4..∞).include? 5
=> true

これが普通に動くRubyに感謝。0で割るとInfinityはかなり気持ち悪いけど。

長い名前にすると、..の左側にいるときと右側にいるときのバランスが悪い。
でも、∞は、見た目短いけど、タイプしづらい。ooかな?

Infinity = 1.0 / 0

-Infinity..4.000000
 4.000000..Infinity

これか!

Inf = 1.0 / 0

-Inf..4.0
 4.0..Inf

あるいは、これくらいで手を打つか。


OSC2007Kansai

投稿者 nanki 2007-07-22 07:30:00 GMT

に行ってきました。

今回は、Railsハンズオンセミナーの講師をやったけど、一日目は、プロジェクタへの接続を確認してなくて、みなさまにご迷惑をおかけしました。ごめんなさい。

ちゃんと設定したのに、二日目もやっぱりつながらなくて、okkezさんに迷惑かけました。ごめんなさい。

二日目の懇親会で見た楽器、ウダーがスゴかった。
販売してたら危うく購入するところだったのに。残念。
今後に期待しています。

あと、お子様連れのお子様たちがとってもかわいかったよぅ。子供ほしー。

帰りは、京都駅から四条まで、数人で散歩。
翻訳の仕事をしている外国の方(といってももうほとんど日本の方)も一緒で、東本願寺に掲げてあった看板のコピーをだしに、面白い話が色々聞けた。

OSCの内容の話が無い!

参考:


Rails開発用便利スクリプト

投稿者 nanki 2007-06-18 17:01:00 GMT
#!/usr/bin/env ruby

EDITOR = ENV['EDITOR'] || 'vim'

files = `find . -type f ! -path './tmp/*' ! -path './log/*' ! -path '*/.svn/*' #{ARGV.map{|v| "#{/^-/ === v ? '!' : ''} -path '*#{v.gsub(/^-/, '')}*' "}.join}`
system("#{EDITOR} #{files.split.join(' ')}")
puts files

というスクリプトをvifという名前でコマンドにしておいて、$ vif .jsでJavaScriptファイルを全て開いたり、$ vif controller -testとかで、テストを除くコントローラ関係のファイルをすべて開いたり。

EclipseのGoToFileみたい。