2006-08-01
おれおれ perl レベル
今日で3ぐらい上がったな。ロマリア大陸に行けそうな勢いだ!
enumerator
さいこー
require 'enumerator'
p [1, 1, 1].enum_with_index.map {|e, index| e + index }
#=> [1, 2, 3]
某社
えええええ、あのひともあのひとも行くのか!アジャイルアジャイル!
pe 書いてると
yield というか、イテレータは偉大だなぁ、とか思う。使い回そうとして yield の代わりにサブルーチンリファレンスとかめどいを。。
今日の perl
for my $i @ary {
}
が何でエラーるかわからなかったyp!
css で変数を使う
ERb に喰わせて保存時 hook ればいけね、と思ったので昼休みにやってみた。できた。ERb の syntax が高級すぎてめどい、とかあるけど。
ダサイところが今のところ拡張子 .css が決めうちなのでコンパイラ通す前のテンプレート css が同一階層ディレクトリに残ってしまう。
~/.vim/plugin/css_pre_compile.vim
if v:version < 700 || (exists('g:loaded_css_pre_compile') && g:loaded_css_pre_compile || &cp)
finish
endif
let g:loaded_css_pre_compile = 1
if !exists('g:css_pre_compile_ruby')
let g:css_pre_compile_ruby = '/usr/bin/env ruby'
endif
if !exists('g:css_pre_compile_name')
" example *.pre.css
let g:css_pre_compile_name = 'pre'
endif
function! s:CssPreCompile()
let filename = expand('%:p')
let compiled_filename = substitute(filename, '\.' . g:css_pre_compile_name . '\.css$', '.css', '')
call system(g:css_pre_compile_ruby . ' -r erb -e "puts ERB.new(IO.read(%Q{' . filename . '})).result" > ' . compiled_filename)
endfunction
exe 'autocmd BufWritePost *.' . g:css_pre_compile_name . '.css call CssPreCompile()'
で、デフォルトだと *.pre.css を保存すると ERb が走って *.css ができあがる。ただエラー周り何にも行ってないので、ERb の syntax error がおきると css が真っ白になる、けどまぁ。
foo.pre.css
<%
line = '3px solid red'
%>
pre {
border: <%= line %>;
}
保存後、foo.css
pre {
border: 3px solid red;
}
みたいな。
Aptana
毎度 Eclipce 系のインテリジェンスな補完はすげーと思うわけで。vim じゃないエディタ部なので使えないんだけど。vim は補完表示のウィンドウが 7 になって改善されたとはいえ、まだまだ、例えばドキュメントの一部を表示するときなんかはバッファ分割しないといけないわけで。
誰がため
でも、僕は、他の人の役に立つためとかにプログラムを書いてることは絶対にないな
自分のために書いたプログラムが他人にも役に立つという文化が。自分も世界が良くなるからプログラム書く、というより自分が興味がある、使いやすくなるから書くというときだけだなぁ、書くのは。あ、でも書籍系はちがうかー。
出社
出社と書くのを忘れる…。
ヒアドキュメント
http://pc8.2ch.net/test/read.cgi/unix/1008558940/794/
うひゃー。↑より転載。
function! g:GetHere()
redir => str
silent function g:Here
redir END
let lines = split(str, '\n')[1:-2] " 前後のゴミ(関数宣言)を削除
let lines = map(lines, 'v:val[3:]') " 行番号を削除
return join(lines, "\n")
endfunction
function! g:Here()
ねんがんの ヒアドキュメント をてにいれたぞ
endfunction
let a = g:GetHere()
function! g:Here()
これは
ヒアドキュメントです
ウヒョヒョ
endfunction
let b = g:GetHere()
おうがすと
oh