読者です 読者をやめる 読者になる 読者になる

clear-hook

動機 再起動なしで hook の設定をやり直したい コード (defun clear-hook (hook) (interactive (list (completing-read "hook name: " obarray (lambda (v) (string-suffix-p "-hook" (symbol-name v))) t))) (setf (car (read-from-string hook)) nil)) 使…

latex-typeset.el というのを書いた

ずいぶん前に以下の記事を書いた。 YaTeX でタイプセットからプレビューまで一括して行う 日本の LaTeX の総本山からリンクしていただいていたのですが、ひどいコードでシェルコマンドをつないだだけのものでした。 やっつけ仕事の割りにそれなりに役には立…

maxima の履歴を helm で呼び出す

maxima.el には maxima-save-input-history という変数があり (setf maxima-save-input-history t)と設定しておけば、デフォルトでは "~/.maxima_history" にセッション終了時に入力を保存してくれる。 ただしセッション中には comint-history-isearch-backw…

ファイルの内容をリストで返す

emacs はエディターなのでバッファにファイルを開いて編集する関数が多いですがスクリプトを書くにはファイルを行単位でリストに入れたいことも多いので以下のような関数があると便利です。カーソル行を文字列として取得する (defun line-string () (buffer-…

行数を数える

リージョンの行数を数える count-lines を少し拡張して、バッファとファイルに対して使えるようにしておく。 (defun count-lines-buffer (&optional buf) (let* ((curbuf (current-buffer)) (target (if buf buf curbuf))) (set-buffer target) (prog1 (coun…

emacs の auto-save ファイルの処分

hoge~ ファイルを一箇所に集めて定期的に処分したい.hoge~ ファイルを一箇所に集める設定 場所は "~/.emacs.d/Trash" とする. (defvar *trash-dir* (expand-file-name "~/.emacs.d/Trash")) (setf backup-directory-alist (cons (cons ".*" *trash-dir*) bac…

company-mode の backend を書く

一番シンプルなものはこういう感じになる. (require 'cl-lib) (defvar company-example-source '("newton" "gauss" "euler" "cauchy")) (defun company-example (command &optional arg &rest ignored) (interactive (list 'interactive)) (cl-case command …

dired でマークを反転する

t でマークを反転できる例えば No1.c No1.h No1 No2.c No2.h No2 ...のようにソースと実行ファイルが大量に並んでいるとして実行ファイルだけにマークをつけたい。 正規表現でマークする % m で実行ファイルのみにマークするのは難しい。(自分にとっての話…

emacs の特殊文字の入力についてメモ

参考1 How to enter Greek characters in Emacs - Stack Overflow 参考2 How to input special character, such as Celsius symbol, and common greek letters? - Emacs Stack Exchange詳細は参考サイトを参照。以下 M-x set-input-method のかわりに C-x …

emacs 上の gdb

emacs 上ではほとんどマウスを触らないが改心してデバッグの時には使うことにした。ツールバーが必要なのでこんな設定をしておく。 (add-hook 'gud-mode-hook (lambda () ;; (menu-bar-mode 1) ;; メニューバーも必要なら (tool-bar-mode 1) (setf gdb-many-…

edebug のキー設定

emacs 24.5 で従来の edebug のキーが効かなくなってしまったので定義する。 従来の設定はどこにいってしまったのだろう。全部というわけではなく「やさしい Emacs-Lisp 講座」に載っているものだけです。 (require 'cl-lib) (defun edebug-make-key-list (l…

etags のタグファイル作成 2

ずいぶん前に記事を書いたが長い割に大したことがなかったので改めて書くことに. 昔の記事 : etags のタグファイル作成 - TIPS 下層のディレクトリに渡って再帰的にタグを作るには zsh や eshell なら etags **/*.[hc]とするのが簡単(これは C の場合). もし…

kill-word+

(defun kill-word+ (arg) (interactive "p") (if (looking-at "\\W") (kill-word arg) (beginning-of-thing 'word) (kill-word arg))) (global-set-key (kbd "M-d") 'kill-word+)

cocoa emacs で list-colors-display の色数が少ない件

どうも x-colors という変数が定義されている common-win.el というファイルがちゃんと読み込まれていないらしい。参考 http://debbugs.gnu.org/db/10/10551.html M-x describe-variable RET x-colors RETで help buffer から x-colors の定義部分にジャンプ…

mew + ssl のための作業

参考 http://d.hatena.ne.jp/sleepy_yoshi/20080223/p1openssl と stunnel はインストール済みとする。mew の info には証明書を ~/.certs 以下に置けばいいとあるが、どれを置けばいいのかわからない。 参考サイトによると debian の ca-certificates パッ…

emacs で mp3 を聞く(シンプルなmpg123-mode)

下のほうの表示の問題は解決したので github に直したものを置いておきました。 GitHub - ryo1miya/mpg123-simple: a simple interface to mpg123追記 よそ様に同タイトルの記事があったのでタイトル変更しました 追記 helm 用のソースも追加しましたちょっ…

slime の履歴を anything で呼び出す

candidate-transformer というのを知らなかったので以下のページが参考になりました 参考 2009-10-16 - 武蔵の日記これを .emacs.el に貼付け (defun anything-slime () (interactive) (anything (list anything-slime-history anything-c-source-recentf an…

org-mode でメモをとる

org-mode は多機能で情報も多々あるので調べると迷ってしまう 同様の記事も多々あるが、ここではごく簡単に org-mode のファイルへのリンク機能を利用する話 例としてコードリーディングで使ってみるまず org-store-link をグローバルキーとしておく(必須で…

スクラッチバッファで小さなプログラムを走らせる

emacs のスクラッチバッファを関数電卓として使うのは前に書きました。関数電卓 - Tips一時ファイルを作るほどでもないような計算とかプログラムというのはわりとあって、ちょっとした関数を定義してループで回して数字が欲しいとか、正規表現がうまくいって…

YaTeX でタイプセットからプレビューまで一括して行う

この記事は推奨しません。書きなおしたものをどうぞ。latex-typeset.el というのを書いた - TIPS関数 yatex-typeset-and-preview のなかの platex コマンドや dvi ファイルを変換する dvipdfmx などは違うコマンドを使いたい場合は適宜修正のこと。キーバイ…

cc-mode のインデント調整

最近ご無沙汰なので一つc,c++のインデントで for (i=0;i<10;i++) { }とか、インライン関数の class hoge { hoge() { } };となるのを for (i=0;i<10;i++) { }のように変更する設定 (setcdr (assoc 'inline-open c-offsets-alist) 0) (setcdr (assoc 'substate…

関数電卓

スクラッチバッファで使う関数電卓。数式の直後で Ctrl+Ret で評価する。rubyに依存している。 (defun my-calc (expr) (interactive (list (buffer-substring-no-properties (line-beginning-position) (line-end-position)))) (newline) (insert (shell-com…

eshell の履歴を自動保存するアドバイス

先日 eshell + anything な記事を書いた。eshell で使う anything.el のソース - Tips ところが気分良く使っていたら Emacs が突然落ちてそのセッションの履歴が全部吹っ飛んでしまった。これはかなり痛いので履歴の自動保存をすべきでした。 (defadvice esh…

eshell で使う anything.el のソース

検索してみたら意外にも見つからなかったので自分で書いてみた。ディレクトリとコマンドの履歴を *eshell* バッファで anything から呼び出すためのソース。自分で使ってみた感じでは cd はかなり便利。Emacsを終了しても履歴も残るし。一方 zsh から anythi…

etags のタグファイル作成

追記 こちらの記事のほうをオススメします : etags のタグファイル作成 2 - TIPSetags の TAGS ファイルを下層のディレクトリにわたって作る。 .emacs.el あるいは .emacs.d/init.el などに以下を記述。 (defvar etags-mode-extension-alist '((c-mode . "\\…

Emacsでカーソル前の単語を連続的に大文字化する

プログラムを書いているとグローバル変数やマクロなどは大文字で入力することが多いですが、長ったらしい名前にすることも多いので打つのが苦痛になることがあります。解決法としては小文字で打ってしまって M--3 M-u のように負の prefix argument をつけて…

org-mode で twitter を読む

Emacsユーザーでツイッターのアカウントを持っている人なら Twittering Mode というのがあるようなのでそちらを使うほうが良いでしょう。私はツイッターのアカウントを持っていないのでgoogle readerでrssを拾って読んでいるのですが、更新されるのがやや遅…

Cocoa(Carbon) EmacsからFirefoxを呼ぶ

MacのCocoa(Carbon) Emacsでカーソル下のURLをFirefoxで開くためには (setq browse-url-firefox-program "/Applications/Firefox.app/Contents/MacOS/firefox-bin")として M-x browse-url-firefoxで良さそうなものですが、すでにFirefoxが立ち上がっている状…

EmacsのバッファでPerl one-liner を手軽につかう

(defun perl-command (command) (interactive "sInput perl one-liner: ") ;; replace ' with \x27. (when (string-match "'" command) (setq command (replace-regexp-in-string "'" "\\\\x27" command))) (if (and mark-active transient-mark-mode) (if (…