ESSのauto-completeを試す

(add-to-list 'load-path "~/projects/emacs-kozo2/popup-el/")
(add-to-list 'load-path "~/projects/emacs-kozo2/auto-complete/")
(require 'auto-complete-config)
(ac-config-default)
(global-auto-composition-mode 1)
(add-to-list 'ac-dictionary-directories "~/projects/emacs-kozo2/auto-complete/dict/")
(setq ac-use-menu-map t)

(add-to-list 'load-path "~/projects/emacs-kozo2/ESS/lisp/")
(require 'ess-site)
(setq ess-use-auto-complete t)
(define-key ac-completing-map (kbd "M-h") 'ac-quick-help)
(define-key ac-completing-map (kbd "M-n") nil)
(define-key ac-completing-map (kbd "M-p") nil)
(define-key ac-completing-map (kbd "M-,") 'ac-next)
(define-key ac-completing-map (kbd "M-k") 'ac-previous)

遅いとは感じなかった。
快適すぎて死ぬ

f:id:kozo2:20120414050114p:plain

Sphinx で Github pages する (sphinx-to-github の submodule ぶんどりから html を吐いて push するまで)

タイトル通りのことをする。

  1. アカウント名.github.com という名前のリポジトリを作る
  2. それcloneする
  3. cd アカウント名.github.com
  4. git submodule add git://github.com/michaeljones/sphinx-to-github
  5. いっぺんとりあえず git commit -m "added sphinx-to-github as submodule" && git push する
  6. sphinx-quickstart (全部適当にenter、なんかいれなきゃなんないのは適当に書いてenter)
  7. rm -rf _*
  8. conf.py の中を html_static_path = ['static'] と変更 アンド extensions = [ "sphinxtogithub" ] と変更 アンド 末尾にでも sphinx_to_github = True; sphinx_to_github_verbose = True と行追加
  9. Makefileの中を BUILDDIR = . と変更 アンド htmlターゲットの末尾の/htmlを削って ...$(BUILDDIR)で改行するように変更
  10. PYTHONPATH=./sphinx-to-github/sphinxtogithub make html

これでリポジトリのトップ下にhtmlが吐かれるんで全部pushする必要はないかもしれんが

git add -A && git commit -m "first commit" -a && git push

とするとなんかよーわからんが

http://kozo2.github.com/

となる。
以上

過去のDebian勉強会の配布資料を自分でbuildするには

Debian勉強会では、勉強会を行う前に発表内容をまとめた配布資料pdfを作成しています。
これまでの配布資料pdfは下記の方法で作成できます。

sudo aptitude install git make ptex-bin okumura-clsfiles texlive-latex-extra lv

git clone git://git.debian.org/git/tokyodebian/monthly-report.git

cd monthly-report

cp git-pre-commit.sh .git/hooks/pre-commit

make all

配布資料のgitリポジトリはcloneだけであればどなたでも可能です。

以上

bundle.el で Emacs でもぶんどる (Emacs Advent Calendar 31日目)

Emacs Advent Calendar の31日目です。

本来は26日目担当だったんですが、体を壊して最後に回してもらいました。

gitで管理されているelispをinstallするためのutilityとして書いたbundle.elを紹介します。

 

はじめに

bundle.elはvundle.vim, neobundle.vimEmacs版です。

Emacsにはauto-install.elやpackage.elといったelisp managerがあるのですが、githubなどにあるelispをvundleやneobundleのように扱いたかったので書きました。

 

機能

bundle.elはgithubやrepo.or.czなどのgit repositoryにあるelispを取得し、取得したelispへのload-pathを通します。

svn, hg, bzr repositoryはまだsupportしていません。

uninstall, update 機能はまだありません。

 

インストール

  1. Emacsからgitを使いますのでまずgitをインストールしてください。
  2. どこでもいいので git clone git://github.com/kozo2/emacs-bundle.git とコマンド入力しbundle.elがあるrepositoryをcloneしてください。bundle.elはid:kiwanamiさん作のdeferred.elに依存しています。すでにdeferred.elをEmacsで使えるように設定されている場合はstep3,4,5を飛ばしてstep6に進んでください。そうでなければstep3に進んでください。
  3. cd emacs-bundleとコマンド入力しcloneしたrepository内に移動してください。
  4. git submodule init && git submodule update とコマンド入力し依存elispのdeferred.elのrepositoryのcloneを取得してください。
  5. .emacs で (add-to-list 'load-path "~/projects/emacs-bundle/emacs-deferred/") のようにstep4で取得したdeferred.elのrepositoryにpathを通してください。
  6. .emacs で (load "~/projects/emacs-bundle/bundle.el") のように2でcloneしたrepository中のbundle.elをloadする設定を書いてください。
 

使い方

M-x bundle-install-git とコマンド入力した後、installするelispのgit repositoryのurlを聞かれますので git://github.com/m2ym/auto-complete のように入力してください。

deferred.elを用いて非同期でgit cloneを行い、cloneしたrepositoryをload-pathに追加します。

load-pathの追加が終わると finished install from ... のようにコマンドラインにmessageが表示されます。

後は、Emacsをrestartせずに使いたければ、M-x load-library としてinstallしたelisp名を入力するなり、Emacsをrestart後も使いたければ、.emacsに(require 'installしたelisp名) とするなりしてください。

 

git で clone する url の例

  • git://repo.or.cz/anything-config
  • git://github.com/kiwanami/emacs-window-layout
  • git://github.com/kiwanami/emacs-window-manager
  • git://github.com/capitaomorte/yasnippet
  • git://github.com/hayamiz/twittering-mode
  • git://github.com/magit/magit

 

謝辞

id:kiwanami さん deferred.el の使い方などについて教えていただきました。

id:syohex さん lexical-let* を使った改良を行ってくださいました。