コードを読むってすごく大変。他人の作ったコードならもっと大変。なのに仕様書が無かったりする。 「コードしか無いならそこから仕様書を作れ。今後はその仕様書を参考にしろ。」というのはわかるが、しょっちゅうコードが変更されるので、仕様書よりも先に…
まず、先に言っておくと自分はど素人である。 仕事しているが、設計とかよくわかっていない。でも、設計って何なのかな?と思った場合、自分ならこう思うことをまとめてみた。 設計とは 設計というのは、自分がどういう考えを用いてプログラムを作るのかを、…
問題 正規表現について、 hoge = 64; の64のみ取り出したい場合の置換の正規表現として、 検索用語: .*(\d*).* 置換後: $1と指定し、置換したが、64のみ取り出すことができない。 原因 初心者が陥りやすそうなミスだが 検索用語: .*(\d*).*では、先頭の.*…
とある日、query-replace-regexpで、「,」を「\n」に置換したくなった。しかし、置換する文字に\nを指定しても、そのまま"\n"と置換されてしまう。そこで、調べたところ、 Query replace regexp hoge with : C-qC-jと入力すれば改行が置換される。似たような…
誤って、*scratch*バッファをkillしてしまった場合は、 C-x b *scratch*で復活させる事ができる。
cygwinの設定ファイル .bash_rc # base-files version 3.9-3 # To up the latest recommended .bashrc content, # look in /etc/defaults/etc/skel/.bashrc # Modifying/skel/.bashrc directly will prevent # setup from updating it. # The copy in your h…
コードを読むことが多いので、grepとfind-tagのジャンプ先を読み取り専用にする。 ;; 読み取り専用にする関数 (defun file-read-only-hook () (toggle-read-only 1)) ;; grepのジャンプ先を読み取り専用にする。 ;; 正確には、next-error後に、読み取り専用…
関数の挙動を変更するのにdefadviceが便利 GNU Emacs Lispリファレンスマニュアル: 16. Emacs Lisp関数のアドバイス = (car emacs-advent-calendar-2010) ;=>defadvice - ぺっくブログミラー@peccul (defun foo (x) (+ x 1)) (defadvice foo (before my-f…
index Emacs org-modeを使ってみる: (5) TODOリスト - 屯遁のパズルとプログラミングの日記
consはドット対というリストを作るものである。ドット対とは( 値 . 参照先 )で成り立つリストである。 仮に( a . b )というドット対があった場合、aが値でbが参照先となる。 以下に例を示す。 (cons 'a 'b) ;; ( a . b ) ① (cons 'a '(b c)) ;; (a b c) ② (c…
ドット対とリストがどのような物か consセル、ドット対、リスト - バリケンのRuby日記 - Rubyist Lisp 一夜漬け -- 2.リスト を読んだ。 なんとなくわかった気がする。 /* ドット対 */ struct LIST { int data; struct LIST* next; }; が↑で、リストはこれに…
cygwinで大量のファイルをリネームしたいなーと思い、 UNIXコマンドを調べていると、大量にリネームするコマンドは無いらしい。 (Linuxなら、renameコマンドがある。) しかし、下記のようにすれば可能 $ for i in * > do > name=`echo $i | cut -c5-10` # フ…
cygwinでWindowsプログラムを実行するのにやたらと苦労した。 以下が実行するスクリプト passwd="hogehoge" lhaplus="/cygdrive/c/Program Files/Lhaplus/Lhaplus.exe" cygstart "$lhaplus" /c:zip /p:$passwd /o:./ ./"hoge.txt" #←$lhaplusを""で囲むのを…
emacsの正規表現では、{}のシンタックスが無い。つまり、 {m} : m回にマッチ {m,} : m回以上にマッチ {m , n} : m回以上n回以下にマッチが無い。 これは不便だ。
zipでパスワードをかける場合、 zip -e hoge.zip hoge.txt #プロンプトでパスワード聞かれる zip -P hoge hoge.zip hoge.txt #hogeというパスワードで圧縮する となる。 unzipでパスワード解凍する場合 unzip hoge.zip #プロンプトでパス聞かれる unzip -P h…
emacsのバッファの最後に移動するには (goto-char (point-max)) (end-of-buffer) があるが、Lispプログラム内では (goto-char (point-max)) を使用しないとならないらしい。end-of-bufferでは警告が出る。GNU Emacs Lispリファレンスマニュアル: 29. バッフ…
emacsで日付計算するときに必要になりそうだったのでメモ (setq time (decode-time (current-time))) ;; timeに現在時刻をデコードしてセット (setf (elt time 3) (+ (elt time 3) 1)) ;; 日付を明日にする (decode-time (apply 'encode-time time)) ;; 明日…
よく忘れるemacsキーバインドまとめ ファイル操作: C-l : カーソルを真ん中に持ってくる(再描画) C-o : 空行を挿入 C-u C-s : isearch 正規表現検索 C-x C-r : 読み込み専用で開く C-x C-w : 名前をつけて保存 M-% : 置換 C-M-v : 別のバッファをスクロール…
cua-modeでC-c(コピー)やC-v(貼りつけ)を禁止するには (cua-mode t) ;; C-cやC-vの乗っ取りを阻止 (setq cua-enable-cua-keys nil) を追加する リージョン選択(松山智大) — ありえるえりあ
emacsにはimenuというバッファ内のみ検索できるタグジャンプ機能がある。 M-x imenuで、ミニバッファに飛びたい関数先を入力。補完も可能 Software Design連載記事「Emacsのトラノマキ」の原稿 — ありえるえりあ
以下のようなシェルスクリプトがあったとする #! /bin/bash IsNull () { # 引数の個数チェック if [ $# -ne 3 ] ; then echo 引数足りん exit 2 fi # 引数が空ならエラー if [ -z $1 ] ; then echo $2 exit $3 fi } IsNull $1 引数がありません 1 # ※1 上記…
改行したときに自動でインデント (global-set-key "\C-m" 'newline-and-indent) 新規のバッファを作る C-x b buffer RET bufferという名前のバッファを選択または作成する (switch-to-buffer)。 C-x 4 b buffer RET 同様だが、別のウィンドウでbufferを選…
結局以下のように落ち着いた。Mac版 #! /bin/sh fpath=${1:-~/日報/} #日報のファイルパス cd $fpath format_date=${2:-"%Y_%m_%d"} #日付フォーマット today=`date +"${format_date}"`".txt" #今日の日付 例:2011_02_28 previous_day=`ls -t *.txt | head -…
emacsのshell-modeで文字化けし、今までeshellを使用していたが、eshellではcygwinの関係でシェルスクリプトが実行できないため、shellの文字化けを修正することにした。以下を.emacsに追加することで修正できる。 ;; shellの文字化けを回避 (add-hook 'shel…
emacsで選択範囲をコメントアウトするには M-x comment-region を実行します。 いちいちM-xするのもめんどくさいので (global-set-key "\C-c\C-c" 'comment-region) を.emacsに追加すると C-c C-cで選択範囲をコメントアウトできるようになります。(追記あり…
問題 emacsでanythingを使用するときに reference to free variable `org-directory が出ることがある。(ていうか出る) 原因 anything-config.elのorg-directoryという変数が宣言される前に参照されるという警告らしい。 対策 対策としては、これを参照し…
http://d.hatena.ne.jp/yanma_4/20080319/1205857151 上記で簡単に作れる。 自分は日付だけでいいので下記のようにしてる ;; 時間挿入 (defun my-get-date-gen (form) (insert (format-time-string form))) (defun my-get-date() (interactive) (my-get-date…
emacsでrequireしたときにエラーが出ることがある。 そのような場合は、requireするファイル(hoge.el)に (provide 'hoge) を記述する必要がある。
emacsで自動保存するには Emacsでファイルの自動保存 (auto-save-buffers) からauto-save-buffers.elを追加すればよい。しかし、注意点があり、保存される際はutf-8が選択されており、utf-8以外のファイルの場合、保存する度に保存する文字コードを聞いてく…
矩形選択って正直読めないよねそんな事よりemacsで矩形選択がすごい簡単にできるのを発見しました。 その名はcua-mode。 Carbon Emacsには標準で入ってた。早速使ってみたが使い方は簡単。 M-x cua-mode を実行してC-を押すだけ。後は使っていくうちに便利さ…