by shigemk2

当面は技術的なことしか書かない

2012-04-10から1日間の記事一覧

ウィンドウ構成の保存、復元

1. M-:で(setq wc (current-window-configuration))みたいなのを実行し、構成を保存する 2. M-:(set-window-configuration wc)で、構成を復元できる。P139Emacs Lispテクニックバイブル作者: るびきち出版社/メーカー: 技術評論社発売日: 2011/11/26メディア…

ウィンドウを選択する

;; 一時的にウィンドウを選択し、その後で元のウィンドウに戻す (save-selected-window (switch-to-buffer " test1") (insert "This is a test1") (select-window (split-window-vertically)) (switch-to-buffer " test2") (insert "This is a test2")) P131…

ウィンドウが分割されているかどうかを確かめる

(defun one-window-p-test () (interactive) ;; 分割されているときはnilを返す (message "nomini t:%s nil:%s" (one-window-p t) (one-window-p))) ;; C-x pでone-window-pの挙動を確認できる (global-set-key (kbd "C-x p") 'one-window-p-test) P129Emacs…

ディレクトリとファイルのチェック

(directory-files "~/junk/") ; => ("." ".." "2012") (directory-files "~/junk/" t) ; => フルパス (directory-files "~/junk/" nil "2") ; => ("2012") 正規表現 (directory-files "~/junk/" nil nil t) ; => ("2012" ".." ".") ソート ;; ファイルが存在…

リージョンを括弧で囲む

(defun paren-region (s e) ;; リージョンを括弧で囲む (interactive "r") ;; 空のマーカーを作成し、eをマーカーにセットする (setq e (set-marker (make-marker) e)) (goto-char s) (insert "(") (goto-char e) (insert ")")) P120Emacs Lispテクニックバ…

interactive改

(defun interactive-form-test (str compl num filename buffer y-or-n) (interactive ;; リストの要素はそれぞれの引数に代入し、メッセージを出力する ;; リストを返すフォームを指定する (list (read-string "str: ") (completing-read "compl: " '("foo"…

二択選択

;; y-or-n-pでYesかNoかの選択を迫られる (defun do-you-like-emacs () (interactive) (message "%s" (if (y-or-n-p "あなたはemacsが好きですか?") "そりゃいいことだ" "けっ!"))) P115Emacs Lispテクニックバイブル作者: るびきち出版社/メーカー: 技術評…

バッファ内で正規表現にマッチする行を抜き出す

;; バッファ内で正規表現にマッチする行を抜き出す (defun petit-grep (pattern) (interactive "sPetit grep: ") (save-excursion (goto-char (point-min)) (with-output-to-temp-buffer "*petit-grep*" (while (re-search-forward pattern nil t) (princ (t…

一時的な状態変更

save-excursionを使う。 (defun print-word-at-eol-old () "カーソルを動かさずに、行末の単語を表示する。従来版" (interactive) (let ((orig-pt (point))) ;; 最初のポイントを明示する (end-of-line) (message "%s" (word-at-point)) (goto-char orig-pt)…

バッファに書き込む内容を得る

;; buftest1バッファを作成してThis is a test buffer.をぶちこむ (with-current-buffer (generate-new-buffer "buftest1") (insert "This is a test buffer.\n") (buffer-string) ; => "This is a test buffer.\n" (buffer-substring 1 5) ; => "This" (buf…

バッファローカル変数

バッファローカル変数とは、バッファごとに値がことなる変数である。 バッファ固有の値を格納する場合に使われる。 setqしているのに別のバッファから見たら別の値になっているというのはままある話で、 バッファローカル変数の作り方を覚えておく。 常にバ…