EmacsでRubyの開発環境を整えた
突然Rubyが書きたくなったので、EmacsでRubyの開発環境を整えた。elispのインストールは全てel-getを使った。
環境
ruby-mode
標準で入っていたのを使う。あとGemfileをruby-modeで開くように設定。
(add-to-list 'auto-mode-alist '("Gemfile$" . ruby-mode))
inf-ruby.el
Emacsからirbを使えるようにする。
inf-ruby-keysがinf-ruby-setup-keybindingsにリネームされていたので注意。
後半部分はrbenvでインストールしたrubyに対応させるためのPATHの設定。
(autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process") (autoload 'inf-ruby-setup-keybindings "inf-ruby" "Set local key defs for inf-ruby in ruby-mode") (add-hook 'ruby-mode-hook '(lambda () (inf-ruby-setup-keybindings))) (setenv "PATH" (concat (getenv "HOME") "/.rbenv/shims:" (getenv "HOME") "/.rbenv/bin:" (getenv "PATH"))) (setq exec-path (cons (concat (getenv "HOME") "/.rbenv/shims") (cons (concat (getenv "HOME") "/.rbenv/bin") exec-path)))
ruby-end.el
endを自動で保管してくれる。特に設定なし。
rsense
オムニ補完をできるようにする。auto-completeの情報源として使う。
まずはrsenseの起動に必要なJREをインストール。
$ sudo apt-get install openjdk-7-jre
デフォルトのrecipeだとうまくいかなかったので、自分でrecipeを書いてインストール。
recipe
(:name rsense :description "RSense client for Emacs" :website "http://cx4a.org/software/rsense/index.html" :type http-tar :options ("xf") :url "http://cx4a.org/pub/rsense/rsense-0.3.tar.bz2" :load-path ("etc") :build `(("ruby etc/config.rb > ~/.rsense")) :post-init (setq rsense-home (expand-file-name ".")) :features "rsense")
設定
(add-hook 'ruby-mode-hook '(lambda () (add-to-list 'ac-sources 'ac-source-rsense)))
ユーザーマニュアルに載っている設定が古いのか、ac-source-rsense-constantはdeprecatedであり、ac-source-rsense-methodはac-source-rsenseのエイリアスだった。なので、情報源に追加するのはac-source-rsenseだけで大丈夫だと思う。
Windows7 64bit環境でLogicool F710のドライバをインストールできないのが解消した
- 出版社/メーカー: ロジクール
- 発売日: 2010/10/22
- メディア: Personal Computers
- 購入: 1人 クリック: 9回
- この商品を含むブログ (3件) を見る
ゲームパッドが欲しかったのでLogicoolのF710を買ったが、付属のCDだけではドライバがインストールできなかった。
どうやらドライバの不具合らしく、Xbox360のワイヤレスコントローラのドライバを少し修正して流用するとようやくドライバをインストールできた。
インストール方法
1. Xbox 360 Accessories Software 64-bit for Windows 7をダウンロードしてインストールする。
http://www.microsoft.com/hardware/en-us/d/xbox-360-controller-for-windows
2. F710のドライバをダウンロードしてインストールする。付属のCDからではなく、ウェブから最新版をダウンロードしたほうが良さそう。
http://www.logicool.co.jp/ja-jp/support/wireless-gamepad-f710?crid=411&osid=14&bit=64
インストール途中のキャリブレーションとテストでコントローラーが検出されないが、無視してそのまま進んでインストールを完了させる。
3. デバイスマネージャを開くと、正しくドライバがインストールされていないデバイスがある。
そのデバイスを右クリックして[プロパティ]を開き、[詳細]タブでデバイスIDを確認する。
4. C:\Program Files\Microsoft Xbox 360 Accessories\Xusb21.infをエディタで開いて編集する。
まず、[MSFT.NTx86.6.0], [MSFT.NTamd64.6.0], [MSFT.NTx86], [MSFT.NTamd64]の欄の末尾に以下を追記する。ただしデバイスIDは、先ほど確認した自分のデバイスのものに置き換える必要がある。
僕の環境ではそれぞれ元のファイルの行数で、65, 72, 79, 86行目に追記した。
%XUSB21.F710%=CC_Install, USB\VID_046D&PID_C22F&REV_0306 %XUSB21.F710%=CC_Install, USB\VID_046D&PID_C22F
それから、ファイルの末尾に以下を追記する。
XUSB21.F710 = "Logitech Wireless Gamepad F710"
5. デバイスマネージャで先ほどのデバイスを右クリックして[ドライバー ソフトウェアの更新]を開く。
[コンピュータを参照する]を選び、検索する場所に C:\Program Files\Microsoft Xbox 360 Accessories を選択し、最後まで進む。
Emacsで編集中のファイルのディレクトリをtmuxの新しいウィンドウで開く
前回に引き続きターミナルとEmacs間の連携の話。
今回はEmacsで編集中のファイルのディレクトリを、ターミナル(tmux)の新しいウィンドウで開く。
設定
(defun open-current-directory-in-tmux-new-window () "カレントディレクトリをtmuxの新しいwindowで開く." (interactive) (let* ((dir (if buffer-file-name (file-name-directory buffer-file-name) (expand-file-name "~/"))) (cmd (concat "tmux new-window \"cd " dir "; exec $SHELL\""))) (cond ((eq (shell-command cmd) 0) (message "Open directory %s in tmux new window." dir)) (t (message "Failed to create new window in tmux."))))) (global-set-key (kbd "C-x C-t") 'open-current-directory-in-tmux-new-window)
これでtmuxを起動した状態で、Emacs上からC-x C-tすると、tmuxの新しいウィンドウに編集中のファイルのディレクトリが開けるようになった。
emacsclientを使ってターミナルから既に起動中のEmacsでファイルを開く
起動時に必要ならinit.elをバイトコンパイルする
.emacs.d/をGitHubで管理していると、ある環境での更新を別の環境に適用するのに、git pullしてからバイトコンパイルしないといけないがめんどくさい。
なので、Emacs起動時にinit.elをバイトコンパイルする必要がある場合は、バイトコンパイルするようにした。
(add-hook 'after-init-hook '(lambda () (let* ((el (expand-file-name "init.el" user-emacs-directory)) (elc (concat el "c"))) (when (file-newer-than-file-p el elc) (byte-compile-file el)))))
color-theme-railscastsをEmacs24に対応させた
Emacs 24以上を使うなら color-themeではなく、Emacsの themeフレームワークを使おう - Life is very short
いつも使っているcolor-theme-railscastsというEmacsのカラーテーマを、Emacs24のthemeフレームワークに対応させてみた。
itiut/railscasts-theme · GitHub
Ubuntu12.10のLibreOffice Calcでグローバルメニューが表示されない
Ubuntu日本語フォーラム / LibreOfficeのメニュー不具合
既存の.odsファイルをLibreOffice Calcで開いたときにグローバルメニューが表示されなくて困ったが、とりあえずの対処療法を見つけた。
環境
Ubuntu 12.10 (GNU/Linux 3.5.0-18-generic x86_64)
LibreOffice Calc 3.6.2.2
対処療法
1. 既存のファイルを開く
2. Ctrl+N を押して新規作成する
3. 新たに出現したウィンドウを閉じずに、先ほど開いたファイルを閉じて再度開き直す