タグ

ブックマーク / rubikitch.hatenadiary.org (16)

  • 次世代auto-complete.elを読んでみる - ’(rubikitch wanna be (a . lisper))

    テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました — ありえるえりあ 情報源による拡張が可能な auto-complete 0.1.0 をリリースしました — ありえるえりあ←[2008/12/01]追記 今、auto-complete.elがアツい。現在、開発版として新機能が塔載されつつある。安定版はEmacsWikiにある。 M-x install-elisp http://www.cx4a.org/pub/auto-complete.el 2008-11-19版のコードを読んでみよう。 まずは流し読みしてみる 前々から気になっているけど、(eval-when-compile (require 'cl)) でCommon Lispマクロを使ったほうがかっこいいと思う。while/push/setq/nreverseでループを回すのが

    次世代auto-complete.elを読んでみる - ’(rubikitch wanna be (a . lisper))
    elim
    elim 2008/11/24
  • oddmuse.elとmailcap.elの問題 - http://rubikitch.com/に移転しました

    http://d.hatena.ne.jp/khiker/20080123/oddmuse M-x oddmuse-edit としても, mailcap-parse-mailcaps がねえよと怒られてしまう. ちょっとソースを追ってみたら、oddmuse.el内部で使われているurl.elの問題だとわかった。 色々ググったりして調べた結果, 判明したのが, elispライブラリの flim に同名のパッケージ があるため, Emacs組み込みのmailcap.el(../emacs/バージョン/lisp/mailcap.el.gz)より先にそっちを読み 込んでいてエラーになっている, という感じみたい. いわゆるロードパス問題か…やはりライブラリがうまく動かない場合はロードパス問題を疑わないといけないな。言語を問わずよくある問題だ。 「M-x list-load-path-shadows

    oddmuse.elとmailcap.elの問題 - http://rubikitch.com/に移転しました
    elim
    elim 2008/11/21
    list-load-path-shadows
  • Ctrl+中指か薬指を使うキー操作が多いEmacsで指の負担を軽くする方法 - http://rubikitch.com/に移転しました

    http://d.hatena.ne.jp/kotorikotoriko/20081103/1225687600 Emacsを使っていると、Ctrlを押しながらうんぬんというのがとても多い。だから指が疲れてしまうという話をよく聞く。俺は10年以上使っているのだが、幸い今のところ指が疲れるということはない。というか、逆に左手小指が異常に鍛えられている気すらする。これはさておき、俺は俺なりに指の負担を軽減する方策を取っている。 skk + スティッキーシフト SKKを使っているとどうしてもShiftを押しまくることになる。これはスティッキーシフトでShiftを押さないようにしている。CamelCaseな変数名を使うJavaプログラマにもおすすめかも。 SKK + スティッキーシフト = 最強 - http://rubikitch.com/に移転しました view-modeを活用する あとは、極

    Ctrl+中指か薬指を使うキー操作が多いEmacsで指の負担を軽くする方法 - http://rubikitch.com/に移転しました
    elim
    elim 2008/11/04
    ふむー。
  • EmacsのM-x shellでzshを使う設定 - ’(rubikitch wanna be (a . lisper))

    .zshrcの設定内容によっては、EmacsのM-x shellでは動作しなくなる。それは、zleをいじっているから。だけど、zshでもEmacsの中で動かす方法はある。以下の行を.zshrcに入れるだけでよい。 [[ $EMACS = t ]] && unsetopt zle この設定は環境変数 EMACS が t であるならば zle を使わなくするという意味。で、環境変数 EMACS は誰が設定しているかというと comint.el の comint-exec-1 だ。以下の部分で環境変数を設定している。 (let ((process-environment (nconc ;; If using termcap, we specify `emacs' as the terminal type ;; because that lets us specify a width. ;; If

    EmacsのM-x shellでzshを使う設定 - ’(rubikitch wanna be (a . lisper))
    elim
    elim 2008/11/03
  • emacsからgoogle code searchを引く - http://rubikitch.com/に移転しました

    プログラミング中に関数・メソッド・変数等の具体的な使い方がわからなくなったら、とりあえずgoogle code searchを引くとよい。そこで、emacsの中で現在のメジャーモードに合わせた言語でgoogle code searchを引くEmacs Lispをでっちあげた。要emacs-w3m。 M-x gcode でクエリを入力すると、別ウィンドウに検索結果が出てくるぞ。 (setq google-code-search-languages '(;; 機械生成のため、すごいてきとー 要修正 (actionscript-mode . "actionscript") (ada-mode . "ada") (applescript-mode . "applescript") (asp-mode . "asp") (assembly-mode . "assembly") (autoconf-m

    emacsからgoogle code searchを引く - http://rubikitch.com/に移転しました
    elim
    elim 2008/09/27
    さっそく .emacs.d に追加 && git commit && git push
  • anything.elとプラグイン等をリリース - ’(rubikitch wanna be (a . lisper))

    次世代anything.elとプラグインをリリース!候補選択は是非anythingを - http://rubikitch.com/に移転しましたから更新しました。 anything.elのリリースノートは http://d.hatena.ne.jp/rubikitch/searchdiary?word=%2a%5banything%2drelease%5d から辿れます。 anything.el M-x install-elisp http://www.emacswiki.org/cgi-bin/wiki/download/anything.el anything-current-buffer-is-modifiedの実装にバグがあったので修正。 anything-read-string-modeはanything-complete.elに移動。 anything-after-persi

    anything.elとプラグイン等をリリース - ’(rubikitch wanna be (a . lisper))
  • [anything][anything-release][emacs]次世代anything.elとプラグインをリリース!候補選択は是非anythingを

    お待たせしました。メンテナになって初のanything.elをリリースします。オリジナル版を使いやすくするために超強化しました。 [2008/08/26]例を追記しました。 次世代anything.elの開発方針 しっかりテストする 使いやすいユーザーインターフェース オリジナル情報源を書きやすくする Emacs Lispプログラムに組み込みやすくする プラグインによる拡張性を高める 旧バージョンとの互換性を維持 特徴 anything-sources(情報源)に使える属性を増やした ユニットテスト(el-expectations)で堅牢になった 情報源の属性を動的に設定できるようになった(プラグイン) anythingを終了せずにアクションを実行(persistent-action)できる 直前のanythingの画面を復活できる(anything-resume) アクションから候補選択

    [anything][anything-release][emacs]次世代anything.elとプラグインをリリース!候補選択は是非anythingを
    elim
    elim 2008/08/25
  • anything.elのメンテナになりました - http://rubikitch.com/に移転しました

    この度anything.elのメンテナになりました。原作者がコードを書く暇もないほど多忙なため、僕が開発を引き継ぐことになりました。 anything.elを一言で言うとEmacsで動くQuickSilverです。 今後の予定として、俺設定のうち安定しているコードを取り込もうと思います。 anything起動時のカレントバッファ anything-current-buffer の新設。需要が大ありなのに取り込まれてないのが不思議。 anything.elを終了せずにアクションを実行する機能(persistent action:チラ見)。 膨大なanything.elの設定を公開! - http://rubikitch.com/に移転しましたのうちのinvariantキーワード。バッファが変更されていない場合は候補のキャッシュを使うことで高速化を図る。 anythingの隣のウィンドウのスク

    anything.elのメンテナになりました - http://rubikitch.com/に移転しました
    elim
    elim 2008/07/29
    rubikitch++
  • ブロックのdo〜endは制御構造に、{}は式に - http://rubikitch.com/に移転しました

    { } と do end の違い - gan2 の Ruby 勉強日記 require 'benchmark' puts Benchmark::CAPTION puts Benchmark.measure { a = [1, 2, 3] a.replace [4, 5, 6] } このように { } を使うのは OK なのに { } を do end に変えると require 'benchmark' puts Benchmark::CAPTION puts Benchmark.measure do a = [1, 2, 3] a.replace [4, 5, 6] end `measure': no block given (LocalJumpError) ってエラーが出る。 そう、ふたつのブロック構文{}とdo〜endの優先順位の違い。 「puts Benchmark.measure

    ブロックのdo〜endは制御構造に、{}は式に - http://rubikitch.com/に移転しました
    elim
    elim 2008/06/13
    "ふたつのブロック構文{}とdo〜endの優先順位の違い。"
  • そこでStructですよ - http://rubikitch.com/に移転しました

    「怠慢はプログラマの美徳」というけれど - kなんとかの日記 俺がJavaに萌えない理由を100%代弁してくれている。それはさておき、 data = [ {'name'=>'Foo', 'age'=>20, 'email'=>'foo@mail.com'}, {'name'=>'Bar', 'age'=>21, 'email'=>'bar@mail.net'}, {'name'=>'Baz', 'age'=>22, 'email'=>'baz@mail.org'}, ] うむ、たしかに冗長だ… だけど3つくらいならそのまま書くかもしれない。多くなると俺は「怠惰」だからmapとStruct使う。 require 'pp' [ ['Foo', 20, 'foo@mail.com'], ['Bar', 21, 'bar@mail.net'], ['Baz', 22, 'baz@mail.org'

    そこでStructですよ - http://rubikitch.com/に移転しました
  • Ruby 1.8.7で使えるようになったRuby 1.9のメソッドたち - ’(rubikitch wanna be (a . lisper))

    Ruby 1.8.7ではRuby 1.9からのbackportがとても多い。つまり、Ruby 1.9のあのメソッドがRuby 1.8でも使えるようになったということだ!! これがすごいという機能がもりだくさん、ちょっと大人になったRuby 1.8をお楽しみに。 Enumeratorは組み込みになり、eachなどのイテレータメソッドはブロックをつけないとEnumerable::Enumeratorを返すようになった。おかげでブロック付きメソッドの柔軟性が飛躍的にアップ! expectationsテスティングフレームワークによるテストで書いているので「gem install expectations」してから実行してみよう。手軽にユニットテストが書けるからおすすめ。書式は…見ればわかるよねw ChangeLogで現在からRuby 1.8.6リリースまでを読んだので、ほとんどカバーしていると思わ

    Ruby 1.8.7で使えるようになったRuby 1.9のメソッドたち - ’(rubikitch wanna be (a . lisper))
    elim
    elim 2008/05/09
  • yasnippet.elとskkとの相性問題を回避 - http://rubikitch.com/に移転しました

    yasnippetとskkの相性が悪いかも - http://rubikitch.com/に移転しました 遅れ馳せながらyasnippetの導入を真剣に考えた。おすすめ通り、yas/trigger-keyを space にしといた。しかし、yasnippetとskkは相性が悪く、spaceをおしてもスペースが入力できない。 とりあえず↓のコードでskk-j-modeなときはyas/minor-modeを切ることで回避。 (yas/initialize) (defadvice skk-j-mode-on (after yasnippet activate) (yas/minor-mode-off)) (defadvice skk-latin-mode-on (after yasnippet activate) (yas/minor-mode-on)) ;; [2008/05/15] 追記。

    yasnippet.elとskkとの相性問題を回避 - http://rubikitch.com/に移転しました
    elim
    elim 2008/04/20
    rubikitch++ るびきちさんにはいつも助けられてます
  • .emacsの過去の設定を残す方法 - http://rubikitch.com/に移転しました

    inhibit-startup-screen - とりあえず暇だったし何となくはじめたブログ たぶん過去のコードをコメントアウトで残してるのもその原因. 俺も過去のコードは残している。RCSでバージョン管理しているけど、手軽に戻せるのが便利。そのせいで.emacsの総行数がやばいことになってはいるw ちなみに、コメントアウトせずにS式のquoteをするのが手っ取り早い。 '(defun hoge () ... ) 追記 font-lockに対応してみた。こんなのを入れてみればfont-lockに対応する。 (defun elisp-font-lock-top-quote (limit) (when (re-search-forward "^' *(" limit t) (forward-char -1) (set-match-data (list (point) (progn (forwa

    .emacsの過去の設定を残す方法 - http://rubikitch.com/に移転しました
    elim
    elim 2008/04/13
    "コメントアウトせずにS式のquoteをするのが手っ取り早い" あー、なるほど。
  • Emacsは生き続けるさ - http://rubikitch.com/に移転しました

    サンがJava FXの実例をデモ − @IT あえて釣られてみる。 Emacsは消滅すべきとは思わないな。すべての面でEmacsより優れた次世代テキストエディタはでてないんじゃないか。統合開発環境は好きな人は好きだろうけど、統合開発環境で通常のテキストファイルの編集は快適にできるのか?よくわからんけど。 Emacsはたしかに古い。だが慣れ親しんだ環境は捨てられない。Emacsを12年も使っていたらもう手の延長線上にある。膨大なelispと.emacsの蓄積がある。今更他のエディタには乗り換えられない。新しいものは歴史がないからノウハウがたまっていない。Emacsでできたことができないなんてことはザラだろ。だいたい乗り換えるとしたら、エディタの習得コスト、設定言語の習得コスト、設定の手間とかで何ヶ月かかると思ってんの。 ムーアの法則が15回も適用できる今だからこそ亀のように遅いelispでも

    Emacsは生き続けるさ - http://rubikitch.com/に移転しました
    elim
    elim 2008/04/07
    "ムーアの法則が15回も適用できる今だからこそ亀のように遅いelispでもある程度富豪的なことができるんだよね。"
  • LingrのEmacsインターフェースってないのかな? - http://rubikitch.com/に移転しました

    lingr.elとかlingr-mode.elをぐぐってもなかったorz チャットはやっぱりEmacsでやりたい。w3mじゃLingrできなかったのであるといいな。誰か作っている人がいたら教えてほしい。世界中のだれかさんが作ってそうなんだけどなぁ。 追記 情報ありがとうございます。試してみます。

    LingrのEmacsインターフェースってないのかな? - http://rubikitch.com/に移転しました
  • 保存時に自動でRuby 1.9のmagic commentをつける〜Ruby 1.8ユーザーも用意を - http://rubikitch.com/に移転しました

    Ruby 1.9で実行するスクリプトに日語を書く場合、スクリプトの文字コードを表すmagic commentは事実上必須となる。しかし、いちいち手で書くのは面倒臭い。Emacsは編集中のバッファの文字コードを知っているんだから、Emacsに書かせればいい。誰かがやってそうな気がするけど、見つからなかったので速攻で書いた。 別の文字コードで保存した場合には、magic commentも追随する。narrowingにも対応している。 Ruby 1.8を使っている人も将来Ruby 1.9に移行することになるので今のうちにやっておくといい。Ruby 1.8ではmagic commentは無視されるだけなのでつけていても問題ない。 (defun ruby-insert-magic-comment-if-needed () "バッファのcoding-systemをもとにmagic commentをつ

    保存時に自動でRuby 1.9のmagic commentをつける〜Ruby 1.8ユーザーも用意を - http://rubikitch.com/に移転しました
    elim
    elim 2008/03/07
  • 1