emacs

virtualenv上のpythonをquickrunで呼ぶ

quickrun 現在のバッファの内容をファイル名に結びついた言語のコマンドで実行してくれる(e.g. foo.pyならpython) https://github.com/syohex/emacs-quickrun motivate pythonを書くときには、virtualenvでプロジェクトごとに環境を分けている。 なので以下…

emacsでJSON Reformat

例えばこういうJSONがあったとして {"profile_use_background_image":true,"protected":false,"profile_banner_url":"https:\/\/si0.twimg.com\/brand_banners\/twitter\/1323368512\/live","default_profile":false,"lang":"en","profile_text_color":"3333…

.emacsを整理するための環境作成

たぶんもっと良いワークフローがあると思う。 経緯 最近、.emacsをメンテしてなかったので陳腐化が激しい。所々直したいところもある。 新しく書き直した方が綺麗になるだろうと思うけれど、書き直しが終わるか分からない。なので以下の内容が可能な環境を作…

python-ex-util.el機能追加

python-ex-util.elに機能を追加した。以前に追加したものも含めているけれど、追加した機能は以下のとおり (virtualenvの環境も考慮した)flymakeの設定を追加 defaultで機能は無効 moduleをinsertできる関数(anything-insert-module)を追加 testを書き始めた…

chibi-test機能追加

実際に使ってみると、機能が足りないことに気づく。 いくつか機能を追加して、いくつかバグを潰した。些細な変更は省くとして、以下追加した機能 test以外の比較を追加(test-not test-true test-false) 結果表示後、N秒(defaultでは3秒)後に結果表示するバッ…

test用のelisp書いた(chibi-test.el)

すごく単純なテスト用のelisp。特徴は 色がつく セクションがネストできる。(これがしたかった) インストール ここ。 https://github.com/podhmo/chibi-test.el 使い方 こんな感じでテストを書く (require 'chibi-test) (with-chibi-test* ;;section,test, m…

python-ex-util.el

機能追加した。 moduleを選択する際のactionに、web-pageを追加した。 ライブラリのINFO-PKGからweb-pageのurlを抜き出して閲覧 INFO-PKGが見つからなければ、標準ライブラリとみなし、http://docs.python.org/library/.htmlを閲覧 anythingの情報源にpython…

python-ex-util.el書いた。

emacsでpythonのコードを書いている時に便利になるんじゃないかなと思うような機能が入っている。 具体的な機能 現在開いているバッファのコードを実行(python-ex-util:eval-buffer-with-current-python) 現在importしているmoduleへ飛ぶ(python-ex-util:any…

anything-vcs-project.elというelispを書いた。

https://github.com/podhmo/anything-vcs-project.el これ何? バージョン管理システム(git,hg)などで管理されているファイルをanythingからアクセスするためのelisp。 (以降バージョン管理システム=VCS) 実際の動作。 現在開いているバッファのディレクトリ…

ちっぽけな名前空間を作るマクロを作成

elispに名前空間を作る機能がないので、毎回同じような関数を違うprefixで定義しなければならなくてすごく面倒。 というか、関数の名前が長くなりがち。面倒。 なのでwith-prefixというマクロを作った。すごく、強引だけどdefmacro!が認められるのだとしたら…

django-kyr-tag-mode.elを作成した。

詳しくはリンク先のコメント https://gist.github.com/903244#comments

python用のemacsの設定

飽きた。https://gist.github.com/878193 git clone git://gist.github.com/878193.git gist-878193 cd gist-878193 make install 試してみたいときは emacs --load emacs.el -q #で起動してみれば良い

python-modeの使い方メモ

独自の設定を積み重ねても仕方がないので、python-modeの機能の使い方をメモする。 (この記事はpython-modeを起動してC-c ?で見ることができるヘルプを元にして作られてます) python-modeの提供する機能 syntax-highlight python-shellとの通信 コードのイン…

現在のバッファのスクリプトを実行(をvirtualenvにも対応させてみた)

環境変数のWORKON_HOMEに依存しているので、virtualenvwrapper向けかも。 発端 compile関数を通じてコマンドを実行すると、エラー発生時に発生源に飛べるのでうれしい。発生したエラー箇所から利用しているライブラリの中に飛ぶ際、既存のpythonを使う(/usr/…

作ってはどこかへいってしまう関数。

(defun hatena (beg end) (interactive "r") (save-excursion (goto-char end) (insert "|python|<\n") (goto-char beg) (insert ">||\n")))

emacsでロード時にも現在のディレクトリを元にパスを設定する。

通常、emacsが立ち上がっているとき、現在開いているバッファのディレクトリの値が欲しければ、`default-directory`を使えば良い。 (insert default-directory);; -> /home/podmo/up/ バッファ上で直接`eval-buffer`をした場合には問題ないが、`load`を利用…

import文からファイルに飛びたい。

探せばもっと良いものがあるのだろうけれど、とりあえず欲しくなったので書いた。 emacs-lispの正規表現に先読みは無かったかな?(正規表現に一部気になる嫌なところがある) (まだ、手元の環境にとても依存しているかも。動かないかも) ;; (defmacro pyt…

memo:matchした文字列の内容を返すre-search-forward

(defun match-data-to-string-list (data) (let (begs ends) (while data (push (pop data) begs) (push (pop data) ends)) (loop for beg in begs for end in ends for i from 0 to (length begs) if (and beg end) collect (list i (buffer-substring-no-p…

anything-hp-project.el

作った。まだ、途中だけれど個人的に常用できる程度には動く。 機能 mercurialのプロジェクト内のファイルをanythingで選択して開く。 (追加されるファイルや、更新されたファイルの候補を開くことはまだできていない((mercurial勉強中です><))) code

shell-modeからfind-file(ugly)

M-x shellで立ち上げたバッファ上でC-x C-fしたときに、バッファ上のシェルのcwdをデフォルト値として扱いたい。中で"pwd"を呼んでそれを取り出すようにした。結果が帰ってくるまでpollするというdirty-hack。

とてもliteなpython用のemacsの設定

前書き(飛ばし読み推奨) 最近、ようやく、pythonで小さなコードを書くようになってきた。そして少し考え方が変わってきた。以前は、repl*1との連携を重要視してきたのだけれど、日常的なコードを書くのなら、もっと手軽な環境で十分なような気がしている。re…

toggle-file-mode.el

toggle-file 現在のバッファのファイル名に対応付けられた名前のファイルを開くためのMinor-mode。 例えば、memo.txtに清書。memo.tmp.txtに下書きというようにして、清書と下書きの間を行ったり来たりできます。 foo.txt <-toggle-> foo.tmp.txt ;;(default…

sphinxで個人的なメモを取る際のemacsの設定

(昨日はwindowsなのに今回はunixの話です) sphinxをemacs上で使う際にしておいた方が良さそうだと感じた設定のめもだいたい以下のような内容が含まれてます。 全角空白がウザい "make html"を手軽に 出来上がったhtmlを手軽に閲覧 指定した箇所に空白3つ前置…

whileでループを回すのは苦手です。

elispを読んでいるときに、whileがある箇所に辿り着くと頭が「うー」ってなります。何か読み辛いんですよ。 単純なループだったらdolist 構造的なループだったらloopマクロ を使って欲しいななんて思ったりします。loopマクロと言っても、全部の機能を使う必…

anything-git-project

gitで管理しているプロジェクト内のファイルを移動するanything。 全部、毎回更新しているので重たいかもしれません。git rev-parseでプロジェクトのルートを取るのが何かうまくいかなかったのでelispで.gitを探すようにしました。 inspired http://d.hatena…

haskellの環境を構築(ubuntu10.10)

はじめに ubuntu上でhaskellの環境を構築します。 エディタにはemacsを使います。*1 install haskell 最近のhaskellはghcを直接インストールするのではなく、haskell platformを利用すると良いそうです。 Download Haskellhaskell platformで何が入るのでし…

pythonのドキュメントをinfo形式でみよう。

wget http://dl.dropbox.com/u/1276730/python.info sudo install-info python.info sudo ginstall-info --dir-file=/usr/share/info/dir --info-file=python.info sphinx-infoというプロジェクトもあるみたい。 http://bitbucket.org/jonwaltman/sphinx-inf…

fletで関数を横取りする

この記事はEmacs Advent Calenderの4日目です。はじめてのadvent calenderで何を書けば良いか考えてたのですが、emacs(emacs lisp)ならでは*1機能を紹介することにします。 dynamic scope / lexical scope 最近使われる言語*2の多くがlexical scopeを採用し…

コマンドの実行履歴をanythingで選んでコピーする。

呼び出した後に、C-SPCで幾つかmarkしておいて"kill-new (marked canidates)"を選ぶと複数行を一気にコピーできて便利です。 code (defun anything-select-from-zsh-history () (interactive) (let1 source '((name . "zsh history") (init . (lambda () (le…

コマンドの非同期呼び出しshell-command->string/async

python-ex.elを作成中。 自分の好みに合ったpythonの環境を提供するためのelisp。まだまだ開発途中。 その中で、非同期に外部プロセスを呼び出す方法が便利そうなので紹介します。 同期的な呼び出し コマンドの出力結果を文字列として欲しい場合には、よくsh…