;;; Code: | |
;(require ') | |
;; consts, vars, etc... | |
(defconst s "hello!") | |
;; internal functions | |
(defun get-string () | |
(concat s "\n")) | |
;; command | |
(defun test-insert-greeting () | |
(interactive) | |
(insert (get-string))) | |
;; major-mode definition | |
(defun test-mode () | |
"Test Mode" | |
(interactive) | |
(kill-all-local-variables) | |
(setq mode-name "Test") | |
(setq major-mode 'test-mode) | |
;; keymap | |
(setq test-mode-map (make-keymap)) | |
(define-key test-mode-map "h" 'test-insert-greeting) | |
(use-local-map test-mode-map) | |
;; hooks | |
(run-hooks 'test-mode-hook)) | |
(provide 'test-mode) | |
;;; test-mode.el ends here |
2013/01/26
メジャーモードのひな形
2013/01/25
まず退屈にならなければならない
昔読んでいた「Oh!X」という雑誌で誰かが言った言葉を思い出す。
ここでいう「退屈」は
あー、めっちゃヒマー。しにそー
みたいなのではなくて
ムムム、ヒマになってしまった。しゃーない、なんかするか
というニュアンス。
つまり、ある日突然訪れる自由時間。これをなにか面白いことに使いたい。コードを書いたり、何かを設計したり。
でも現実は、なんとなくダラダラ過ごしてしまうということも多い。 時間がないからできないんじゃなくて、単にノリが足りないからやる気が起きない。そんだけ。
これを回避するには、普段とりあえず忙しくしとくだけでいいらしい。
くだらないことでもなんでもいい。単純作業でも会議でも無意味な授業でも風呂掃除でもなんでも。その仕事自体の価値なんてどうでもいい。 仕事中の「ノリ」を維持できることならなんでも。で、そいつらをさっさとやっつけて退屈になる。それこそが目的。
早い話しが、プチプチ(梱包材)だ。やがて確実に来る自由時間までのスキマを埋めてくれることに価値がある。
もし、ヒマで死にそうなら、たぶん梱包材が足りてない。そんなときは、何かしょうもない仕事を人からもらったほうがいい。でないと、せっかくの退屈を楽しいことに使えなくなる。
逆に、忙しすぎて退屈が来ないなら、たぶん真剣にやりすぎている。目に入るものすべてを愚直にやろうとするのは無謀なことだ。退屈という時間は、たぶんすごくデリケートで、梱包材を詰めすぎると傷んでしまう。
なにか面白いことをするには、まず退屈にならなければならない。そしてそのためには「とりあえず」忙しくしておくことが大切なんだと。
そう考えると、一見意味がなさそうなものでも役に立ちそうに思えてくるから不思議なもんだ。
ほんじゃ、今日もとりあえず仕事しときますかw
Emacs24がレキシカルスコープだったとは…
なにげに、めっさわかりやすい説明があった。
Emacs Lisp における Lexical binding
「なんでいまさら?」って気がしないでもないけど、xyzzyから何か持ってくるときに楽かもしれない。
2013/01/24
Octopress こと始め
とりあえず忘れそうなことだけ。
日常的なこと
記事を書いて、
$rake new_post["title"]
$open source/_posts/2013-01-24-title.markdown
ローカルでプレビューして確認。
$rake generate
$rake preview
--> http://localhost:4000
ほんで、デプロイ。
$rake gen_deploy
たまにはソース一式のコミットしとくと(ブランチはsourceに切り替え)
$git add .
$git commit -m 'commit message'
$git push origin source (初回)
or
$git push
その他
- 設定を変えるには
octopress/_config.yml
を変更。 - スタイル変えるときは
octopress/sass/custom/
配下をいじる。フォントの大きさとかは_styles.scss
を変更。
参考になりそうなサイト
まだよくわからんす。
2013/01/23
Emacsで開いているファイルをFinderで開く
(defun open-finder-1 (dir file) | |
(let ((script | |
(if file | |
(concat | |
"tell application \"Finder\"\n" | |
" set frontmost to true\n" | |
" make new Finder window to (POSIX file \"" dir "\")\n" | |
" select file \"" file "\"\n" | |
"end tell\n") | |
(concat | |
"tell application \"Finder\"\n" | |
" set frontmost to true\n" | |
" make new Finder window to {path to desktop folder}\n" | |
"end tell\n")))) | |
(start-process "osascript-getinfo" nil "osascript" "-e" script))) | |
(defun open-finder () | |
(interactive) | |
(let ((path (buffer-file-name)) | |
dir file) | |
(when path | |
(setq dir (file-name-directory path)) | |
(setq file (file-name-nondirectory path))) | |
(open-finder-1 dir file))) | |
(defalias 'e 'open-finder) |
なんで M-x f じゃなくて e なのかというと(ry
Mac で "defaults write ほげ" とかするときの、plistをすべて表示する
Mac で設定値をコマンドラインで書き込むときに
$defaults write ほげ
とかします。
このときの「ほげ」がわからんので全部表示するのをpythonで作りました。
# Represent all {key=value} pairs in your Mac when you using domains "defaults write FOOOOO". | |
# | |
# usage: $default_all_print.py | less | |
from commands import getoutput | |
for d in getoutput('defaults domains').split(', '): | |
print d + ' ' + getoutput('defaults read ' + d) | |
$python default_all_print.py | less
とかして使います。
なんせキーだろうが値だろうが、全部出るので検索するのに便利かも。