タグ

ブックマーク / mattn.kaoriya.net (7)

  • Big Sky :: Ruby の Array#<< は Array#push よりも速いか

    巷の噂で Ruby の Array#<< が Array#push よりも速いと聞いたので調べてみた。まずはベンチマークを取ってみた。 require 'benchmark' Benchmark.bm 10 do |r| r.report "push" do 8000000.times do; [].push(1); end end r.report "<<" do 8000000.times do; [] <<1; end end end 結果は以下の通り。 user     system      total        real push         1.570000   0.000000   1.570000 (  1.579687) <<           1.280000   0.000000   1.280000 (  1.288951) 確かに Array#<< の

    Big Sky :: Ruby の Array#<< は Array#push よりも速いか
    bigchu
    bigchu 2017/02/12
    複数時 push
  • Big Sky :: プログラミング言語の作り方(2)

    Big Sky :: プログラミング言語の作り方 Big Sky :: プログラミング言語の作り方(3) Big Sky :: プログラミング言語の作り方(4) Big Sky :: プログラミング言語の作り方(5) この前の記事がなかなか人気があったので、続きを書いてみます。 Big Sky :: プログラミング言語の作り方 githubtrending を見てたら面白い物を見つけた。 orangeduck/BuildYourOwnLisp - GitHub Learn C and build your own pr... http://mattn.kaoriya.net/software/build_your_own_programming_language.htm 前回の記事では単なる四則演算しか出来ないし、「どこがプログラミング言語やねん」と言われかねないのでもう少しやってみ

    Big Sky :: プログラミング言語の作り方(2)
    bigchu
    bigchu 2014/04/14
    : 続き、言語をつくる試み
  • Big Sky :: おっぱいしか見えないVim

    Patch 7.3.461 が取り込まれて InsertCharPre が使えるレベルになりました。 これでようやく「おっぱい」しか入力出来ないVimが作れます。 scriptencoding utf-8 let s:oppai_a = split('おっぱい', '\zs') let s:oppai_n = 0 function! s:oppai() let r = s:oppai_a[s:oppai_n] let s:oppai_n = (s:oppai_n + 1) % len(s:oppai_a) return r endfunction autocmd InsertCharPre <buffer> let v:char = s:oppai()

    Big Sky :: おっぱいしか見えないVim
    bigchu
    bigchu 2013/10/09
    : ( ゚∀゚)o彡゚おっぱい!おっぱい!
  • Big Sky :: zen-coding for vim を pure vimscript だけで書いてみた。

    私も結構長くvimを使ってきましたが、実はsnippet系やsorround系のプラグインは殆ど使っていません。理由は入力の規則が多様すぎて覚えられないのと、それくらい手で入力出来るんじゃないか...と思っていたのが理由でもあります。 sorround.vimなんかは何度か常用をチャレンジしてみましたが、結局諦めました。 先日、zen-codingを見つけ、「へー便利そうだなぁ」と思ったと同時にこのくらいならvimscript(pure vimscript)だけで書けるな...と思ったので書いてみました。 と言ってもEmacsへの移植なんかと同様に「Expand Abbreviation」だけです。 正直言うとzen-codingのプロジェクトページにvimがラインナップされていなかったのがキッカケだったりもしますが...。ただ、後から知ったのですがsnipMateという物でzen-cod

    Big Sky :: zen-coding for vim を pure vimscript だけで書いてみた。
  • Big Sky :: zen-codingの殆どの機能をzencoding.vimに取り込んだ。

    全国1億8千万人のzen-codingファンの皆様、如何お過ごしでしょうか。 先日の記事でzen-codingをpure vimscriptに移植した「zencoding.vim」をご紹介させて頂きました。 あの時は略語の展開(Expand Abbreviation)しか機能がなく物足りなかったかもしれません。まぁ殆どの移植品はExpand Abbreviationしか無いのですが。 zen-codingには他どんな機能があるかというと、実はまだ便利な機能があったりします。 オフィシャルのサイトによると Expand Abbreviation Wrap with Abbreviation Balance Tag Inward/Outward Go to Next/Previous Edit Point Update Image Size Merge Lines Remove Tag Spl

    Big Sky :: zen-codingの殆どの機能をzencoding.vimに取り込んだ。
    bigchu
    bigchu 2010/03/11
    : zen-coding
  • Big Sky :: 意外と知られていないvimのtips(複数のバッファから検索結果一覧を作成する)

    vimを使っていて開いているバッファ全てからあるキーワードを検索したい場合、「vimgrep」コマンドを使っています。開いているファイルの拡張子を指定して :vimgrep /sometext/ *.c *.h と実行したり、実際開いているファイル名を羅列したりする事があります。検索結果の一覧もクイックフィックス「clist」で確認出来ます。 でもこれだと保存していないと結果に現れませんし、幾ら拡張子で絞っても余計なファイルがマッチしてしまう可能性があります。 今日のtipsはvim-dev MLに流れたスレッドからご紹介 「vimgrep」を実行するとクイックフィックスが作成されますが、このクイックフィックスに検索結果を追加する「vimgrepadd」というコマンドがあります。 これを全てのバッファに対して実行するように「bufdo」コマンドを絡めます。 :bufdo vimgrepad

    Big Sky :: 意外と知られていないvimのtips(複数のバッファから検索結果一覧を作成する)
    bigchu
    bigchu 2009/02/26
    : grep/vimgrep, bufdo vimgrepaddでok
  • Big Sky :: vimperatorが最強になった日

    これすごいわ。 wildoptions=autoとcomplete=lが凄い件 - Dis Communication - 符号無し vimperator1.2pre 2008-06-19以降で実装されてるwildoptions=autoとcomplete=lがlifechangingだったので紹介しておきますね。 何が凄いって :set complete=l が凄い。「たかがtab押さなくても良くなっただけだよね」と思うでしょうが、使ってみたら無茶苦茶便利。 vimperator使いだと、おそらくURLを開くのに :open http://... とか「<c-l>」してアドレスバーにフォーカス合わしたりしてるかと思いますが、firefox3で登場したアドレスバーの便利機能(おせっかい機能とも言われてるらしい)、「AweSomeBar」 が :open で使えるのです。例えば :open

    Big Sky :: vimperatorが最強になった日
    bigchu
    bigchu 2008/06/24
    : set completeがいいらしいのだが、、検証してみるか
  • 1