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. 新たに出現したウィンドウを閉じずに、先ほど開いたファイルを閉じて再度開き直す
JavaScriptとCanvasで画像処理してみた
- 出版社/メーカー: CGーARTS協会
- 発売日: 2006/03/01
- メディア: 単行本
- 購入: 13人 クリック: 142回
- この商品を含むブログ (14件) を見る
この本を参考にしつつ、JavaScriptとCanvasで画像処理をしてみた。
ついでにNode.js + Expressを触ってみたりもした。
下のリンクから飛べます。
http://about-itiut.dotcloud.com/js-image-processing
input type="range" に対応してるブラウザ(Chromeとか)じゃないとうまく表示されない。
そして少し重いかも。
input要素のvalue属性の数値の扱いで詰まった
<input type="range" value="1" />
var input = document.getElementsByTagName('input')[0]; input.value; // 数値?
input要素のvalueを取得して使うときに、input.valueを数値だと思い込んでたら、なんかうまくいない場所があった。
実は数値じゃなくて文字列だった。
typeof input.value; // "string"
というわけで、Number()やperseInt()で数値に型変換すればよかった。
typeof Number(input.value); // "number" typeof parseInt(input.value); // "number"