Code Archive Skip to content Google About Google Privacy Terms
eijiro.el を読んでいて,条件分岐で case を使ってなかったなーと気づいたので,調べました。cl拡張です。地味なエントリーですみません。 (setq x 1) (cond ((= x 1) '1) ((= x 2) '2) (t '3)) ;;=>1 (setq x 1) (case x (1 '1) (2 '2) (otherwise '3)) ;(t '3)) でもよいが otherwise が慣習? ;;=>1 次の例では,いっそう case の方が読みやすいです。 (setq x 5) (cond ((= x 1) 'a) ((or (= x 2) (= x 3)) 'b) ((or (= x 4) (= x 5) (= x 6)) 'c) (t '3)) ;;=>c (setq x 5) (case x (1 'a) ((2 3) 'b) ((4 5 6) 'c) ;
下のEmacs Lispを書いたときに学んだメモ. Emacsのカーソルを激しく点滅させるEmacs Lisp - hitode909のダイアリー こういう認識をしている,というだけで,間違ってるかもしれないけど,初学者なので,あまり気にしない. いろいろと間違っているので,気をつけてください. 関数の定義 (defun myfunc () "This is my function." (message "my function was called")) これで定義して (myfunc) で呼べる. (defun myfunc () "This is my function." (interactive) (message "my function was called")) こうすると,M-x myfuncでも呼べる.対話式に使いたいときはinteractiveをつける. (defun
■ [ruby][asakusa.rb] asakusa.rb 39回目 今日は参加者がかなり多くて、それぞれが黙々と作業をする感じ。オレがやったこと。 Pivotal Tracker の Webhook とか gem とかをググるお仕事 CGI で Webhook を受け取るにはどうすりゃいいの的な Hiki の Rack 対応について角谷さんに講義してもらう tDiary の Rack 対応をどこまでやったか思い出す tDiary の Rack 対応をどうやって進めていくかねな打ち合わせ 10分でわかる Sinatra 勉強会 ここまでやって時間切れ。 今日は自己紹介タイムをやるタイミングも無いまま時間が過ぎていったんだけど、次回からは松田さんがいつもやっていた最初の段取り的な何かと自己紹介だけはやった方がいいかもしれない。 ■ [rails][cucumber][ruby][emac
JavaScript の奇妙な記法 最近の JavaScript (Firefox 3.5 以降) では, 色々と奇妙な記法が可能となっている. 例えば, 次のようなもの. let obj = {a: 10, b: 20}; let {a: a, b: b} = obj; // 分割代入の一種 let {a, b} = obj; // 上の省略記法 let [a, b] = [1, 2]; といった分割代入をご存知の方は多いのではないかと思う. 上記の記法はそれの一種とされていて, オブジェクトから特定プロパティの値を持ってくるときに有用. コードゴルフをたしなむ方々や, 某邪悪なアドオンのプラグインを書かれている方々の間では, 空気のような存在となっているらしい. 自分はこの記法を数ヶ月ほど前に知り, それからずっとこの書き方に憧れては, とある理由の為に使うことができずもどかしい思いを
DarkRoom とはフルスクリーンでただ文章を書くことのみに集中させるというシンプルなエディタです。 しかしこれが言うのとやるのとでは全然違います。最近のPCは画面も大きくなり、横長になり、様々なウィジットをデスクトップにちりばめ、タスクトレイにいろんアイコンが並んでいる。気がつくと情報過多なデスクトップになっているのです。その事に気づかされました。 でまあ、当然これをEmacsでもできないかとなと思い、やってみました。 以下の Emacs lisp を darkroom.el という名前で load path の通った場所に保存してください。 次に ~/.emacs に、 (require 'darkroom) (global-set-key [f11] 'darkroom-mode) と追記すればOKです。 後は F11 キーを押せばフルスクリーンでDarkRoomモードになります。
基礎文法最速マスターブームにのっかってみる。Ruby基礎文法最速マスターをだいたいEmacs Lisp(elisp)に置き換えてみる。 Emacs LispはEmacsで使われているLisp方言のひとつだ。他の言語をある程度知っている人はこれを読めばEmacs Lispの基礎をマスターしてEmacs Lispを書くことができるようになるかもしれない。無保証ではあるが。 ある程度はCommon Lispにも応用できると思うよ。 更新情報 [2010/02/03] 注釈の誤りを修正。 let*について加筆。 基礎 対話的にEmacs Lisp式を評価する Emacsを起動したときに生成されている、スクラッチバッファ(*scratch*)を使うと、Emacs Lispの式を簡単に評価することができる。M-Tabで補完できるぞ。 式を書いたらC-jを押すと、式の値が出てくるぞ。 (+ 1 3) 4
Google 検索をするとき、「あ」とか打ったら、「あまぞん.com」とか色々補完候補がでてくるアレを elisp で取得してみよう、と。 ただそれだけです。はい。 下記のような関数をでっちあげてみました。url-http 関連と json.el を使ってます。両者共、Emacs23 ならば標準であります。 特に何かで応用して使おうとか考えてなかったので、そのままカレントバッファに取得した候補を insert してしまいます。 # とりあえず候補を取ってみようという漠然とした目的があって作っただけなので(^_^; (require 'url-http) (require 'json) (defun my-google-suggest-get-candidates (input) (let* ((url (concat "http://clients1.google.co.jp/comple
Emacs Lisp の習得を目指す誰かの参考になるかもしれないので、僕なりの解答を書いておきます。 アルゴリズムの実装 繰り返しと仕事は分離したいので、まず仕事の部分を定義します。 (defun fizzbuzz (num) (cond ((= (% num 15) 0) "FizzBuzz") ((= (% num 3) 0) "Fizz") ((= (% num 5) 0) "Buzz") (t num))) (fizzbuzz 1) ;; => 1 (fizzbuzz 3) ;; => "Fizz" (fizzbuzz 5) ;; => "Buzz" (fizzbuzz 15) ;; => "FizzBuzz" whileループ Emacs Lisp で一番現実的なのは、while 分による繰り返しです。 (defun fizzbuzz1 (limit) (let ((i 1) r
微妙に政治的な理由によりauto-complete 1.0を今日リリースしました。次のURLから入手できます。 http://cx4a.org/pub/auto-complete-1.0.tar.bz2 開発リポジトリからv1.0タグをチェックアウトするのもありです。 $ git clone git://github.com/m2ym/auto-complete.git $ cd auto-complete $ git checkout v1.0次のコマンドでインストールできます。 $ emacs -L . -batch -f batch-byte-compile *.el $ cp *.el *.elc ~/.emacs.d/バイトコンパイルしなくても動きますが、その場合は(require 'cl)されている必要があります。 記念的リリースなのでこれといった新機能はありません。安定して動
人生初めての萌え神社メイドカフェ体験で、「なむなむ、にゃんにゃん、ラブ込め〜」という呪文(唱えた人の味覚を鋭敏にし、ケーキの味を引き立たせる効果があるらしいです)をテレビ取材で唱えさせられそうになったので、丁重に断りました。今年1年の中でも3本の指に入るほどの真面目に人と話した場面だったのではないかと思います。 そんな事があったのが、six days ago! agoではありません、IMAKADOです。 さて、皆さんはプログラム中に = を書くとき、両端にスペースを入れているでしょうか? 私は、入れています。入れないより入れた方が、プログラムがずっと読みやすくなるからです。 ですが、前後にスペースを入れない時と比べて、2回タイプ数が増えてしまうという問題があります。 そういった問題を解決する smartchr.el というemacs拡張をリリースしました。 smartchr.elを使う事で
数日前からauto-complete.elを使い出している。知らない人のために説明しておくと、auto-complete.elというのはカーソル位置にポップアップで補完候補を出してくれるEmacs用のライブラリだ。auto-complete.elという名前だけど、カーソル位置にポップアップが出てくるというのが非常に重要だと思っている。 今仕事で書いているのは主にpythonとperlのコードなのでオムニ補完(文脈を見て補完してくれる)はできないんだけど、長めのメソッド名などをサクッと補完できると、それだけで結構いい感じだ。 Rubyの場合はauto-complete-ruby.elを使うことでrcodetoolsを使ったオムニ補完ができるのだが、これを動かすのに結構ハマったのでメモを残しておく。rcodetoolsはgemで普通にインストールできる。 gem install rcodeto
Outputzためしてるなう。 Ubiquityの入力は捕捉されないっぽいなー。対応難しいかなー。 Emacsのマイナーモード widen window mode というものを書きました。 これはなに? Emacsで画面を2分割や3分割して作業をしている人は多いと思うのですが、ディスプレイが小さい場合に1つのバッファが表示される領域(Emacsの用語でwindowという)が小さくなってしまい、作業しづらくてイライラする!ということはないでしょうか。 そんなイライラを解決するのが、widen window mode です。 widen window mode を使うと、フォーカスのある window のサイズが自動的に大きくなります。 とりあえずデモを見てもらえば、何が起きるのか一目瞭然かとおもいます。 インストール方法 CodeRepos に最新版をupしておきました。 download
id:antipop さんの outputz.el 。id:hayamiz さんの設定例を参考に以下のように設定してみました。 Outputz のグラフではホスト名が先頭に来るので、メジャーモード(C++なのかSchemeなのか)がそこに来るように変更しました。 ;; Outputz (require 'outputz) (setq outputz-key "xxxxxxxxxxxx") (setq outputz-uri "http://www.monaos.org/outputz/") (global-outputz-mode t) ;; Hey, Scheme! (add-to-list 'outputz-modes 'scheme-mode) (defun outputz-percent-encode (str &optional coding-system) (if (or (n
id:antipop さん ++ EmacsからOutputzに文字数を投げる - Kentaro Kuribayashi's blog 気になったところがあったので、いくつか修正しました。CodeReposなのでそのままコミットしてもよかったけど、とりあえず diff をおいておきます。 http://hayamin.com/upload/outputz.diff.el 変更した点は以下のとおり。 outputz-mode をカスタム変数に このてのユーザーがいじりたい変数は、カスタム変数にしておくのがよさげですね。 M-x customize-variable で変更できるようになります。 url.el の mailcap 問題 url.el が依存している gnus/mailcap.el は、flim の mailcap.el と名前がかぶっているので、load-pathによっては
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く