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

理系学生日記

おまえはいつまで学生気分なのか

忍者TOOLS

Emacsの最大化/全画面化が圧倒的簡単な時代に

Emacs を最大化/全画面化するのって、かつては結構な elisp を書かなくてはいけなかったような覚えがあります (単純に知らなかっただけかも) が、 今はなんと、以下のような 1 行だけ書いてれば良くなりました。 ; 最大化 <=> 元に戻す (toggle-frame-maximi…

gitリポジトリの中のファイルをhelmインタフェースで検索する

Emacs バッファの中で、他のファイルに検索をかけて、検索結果一覧のバッファから直接ファイルの内容を更新するというタイプの拡張というのがいくつかあって、moccur-edit.el だったり、wrep.el だったりです。 しかし、こういうときの検索あるいは編集する…

helm-find-files でタブ補完を効かせる

前から helm のミニバッファ上で Tab 補完が利かないのが何とかならんもんかと思ってた。 Emacs での補完の考え方と helm の補完の考え方は別にあって、helm を使う場合はミニバッファ上で補完をさせるのは邪道みたいなかんじになってる。 Emacs' default mi…

Chrome上のテキスト編集でEmacsを使用したい

というわけで Chrome に移行したんですが、テキストフィールドに文章を入力するのに Emacs が使えないのは能率を著しく落とすので何とかならんものかと探していたら、そのものズバリの拡張として Edit with Emacs なる拡張を発見した。 どうも Chrome からは…

EmacsのNeoTreeが非常に使いやすい件

2015年のEmacs - たけぞう瀕死ブログを読んで neotree 知ったんだけど、neotree めっちゃ良かった。 neotree って何 まぁまずはこれを見てくれや。EmacsWiki: Neo Tree via kwout上のキャプチャで分かるように、neotree は Emacs 上でディレクトリツリーを表…

helmで "Not a Tramp file name: /To create the database, run the following command:"

helm-for-files 使ってると "Not a Tramp file name: /To create the database, run the following command:" とかいうスタックトレースを伴うエラーが出てムムムーーーとなってしまう状況に陥りました。かなしいですね。 helm-for-files のドキュメントを読…

Cask とは何であるのか、および init.el が非常にシンプルになった件

.emacs のモダン化の一環として、依存パッケージの管理を Cask 化しました。 このエントリでは、 Cask とは何か インストールおよび依存関係の記述 Cask のユースケースとそれに対するコマンド あたりを書いていきたいと思います。現在の init.el は以下のよ…

emacs.d のモダン化への取り組み

Emacs、ぼくの知識は 2010 年くらいから止まってて完全に老害と化してたんだけど、この間ふと思い付きで MBP をクリーンインストールしたったのに合わせて、Emacs のモダン化に取り組みはじめました。Emacsテクニックバイブル ?作業効率をカイゼンする200の…

smartparens.el での括弧処理

Emacs での括弧関係ソリューションとしては smartparens.el がモダンという噂を聞いて、こういうのは慣れなので、とりあえず使ってみることにしました。慣れなければそのまま使わなくなるだけだと思ってましたが、使って損になるタイプの elisp ではなかった…

Windows 用 Emacs と cygwin の間での HOME 環境変数の共存

久しぶりに Windows 上でマジメに Emacs を入れようと思ったら、いつの間にか meadow の開発が行われていないようだったので -Windows の Emacs 入れた。cygwin も入れた。Windows 上で cygwin を使う際は、HOME 環境変数に /home/[user name] を設定するの…

package.el にパッケージを install されているかの述語があるのか

ないないと思ってたらあった。 (defun package-installed-p (package &optional min-version) "Return true if PACKAGE, of MIN-VERSION or newer, is installed. MIN-VERSION should be a version list." (unless package--initialized (error "package.el …

exec-path-from-shell による Emacs とシェルの変数共有

exec-path-from-shell、思った以上に便利だった。package.el 使ってたら、M-x package-install exec-path-from-shell でインストールできる。 これ使うことで、シェルに設定される環境変数が、Emacs 側でも参照できるようになる。 purcell/exec-path-from-sh…

simple-hatena-mode で HTML テンプレートが自動挿入される

ストレス発散のため暗黙裏に iMac 購入しメインマシンとなっていたのですが、Emacs をセットアップして simple-hatena-mode でエントリを書こうとすると、なぜか HTML のテンプレートが自動挿入されて逐一消去を余儀なくされるという憂き目にあっていました…

はてなダイアリーライターを使っている人間が PC を入れ替えた後にエントリをポストしようとすると過去の全エントリがポストされる問題

~/.hatena/[hatena id]/diary/ に touch.txt をつくるんだ。とにかく! touch ~/.hatena/kiririmode/diary/touch.txt 背景 この間 iMac 買ったんです iMac。 このブログのエントリ、git で管理してるから、iMac 側で git clone したんです、git clone。 でさ…

init-loader.el で特定環境用に設定ファイルを分ける

emacs の設定ファイル、1 ファイルだけに書いてるとどうしても長くなるし ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; キーバインド (global-set-key ....) (global-set-key ....) (global-set-key ....) ;;;;;;;;;;;;;;;;;;;;;;;;;;…

yasnippet で "Error in post-command-hook (yas/global-mode-check-buffers) ..."

yasnippet を elpa でアップデートしてたら、 (yas-global-mode 1) を eval した後で "Error in post-command-hook (yas/global-mode-check-buffers) ..." とか出た。 出るだけならまだ良いんだけど、何やっても、save-buffer-kill-terminal すらエラーにな…

Emacs 24 導入について

ずっと Carbon Emacs (22) つかってて別に不満もなかったんだけど、brew で調べたらいつのまにか Emacs 24.2 まで出てたから brew install して切り替えた。ELPA とか標準搭載されてて、モジュール管理がずいぶん楽になったかんじがする。 ELPA でインストー…

perlbrew環境でcperl-perldocをひく

perlbrew といえば自分の $HOME にローカルな Perl 環境を複数構築できるとツールで、最近の Perl の人々はこれを使うか自分でソースから $HOME とかにビルドするかしてると思います。これによってシステムワイドな perl を使わなくて済みますし、当然ながら…

Yank するときに上書きする設定なんだっけ

kill-ring に何か入っている状態で、transient-mark-mode が ON の状態。 このとき、マークを有効にしている状態で Yank すると、マークをしている領域が kill-ring の内容で上書きされるようにする設定がなんだったか完全にわすれたので、だれかおしえてく…

Emacs との Clipboard 共有

Mac の Clipboard と Emacs の kill-ring を互いに共有したい。 これを実現するには、 Emacs で yank するタイミングで Mac の clipboard にテキストを入れるフック Mac の Clipboard にコピーするタイミングで Mac の kill-ring にテキストを入れるフック …

perlbrew を使用したときの Emacs 設定

perlbrew を使用したときなどは、システム標準の perl ではなく、自身で使用を選択した perl が使用されます。 これは perldoc なんかも同様で、例えばぼくの perldoc は以下にパスが通っています。 $ which perldoc /Users/kiririmode/perl5/perlbrew/bin/p…

モジュール名からモジュールのソースを開く elisp

前に作ったものの改変版。ミニバッファからモジュール名を指定する。 (defun find-perl-module-source (module) (interactive "MModule name: ") (internal-find-perl-module-source module)) (defun internal-find-perl-module-source (module) (if module …

GNU Emacs 拡張ガイド

下記エントリで紹介されている内容に触発されて、GNU Emacs 拡張ガイド (絶賛絶版中) を Amazon のマーケットプレースで購入し、チマチマと読んでおりました。 Gnu Emacs 拡張ガイド: Emacs Lispプログラミング まとめ - goinger的日記 GNU Emacs拡張ガイド―…

simple-hatena-mode で編集中のエントリをブラウザで表示する

blog のエントリを書くのに Web のインタフェース経由でイチイチ書いていくのはメンドいので、simple-hatena-mode.el を使ってます。simple-hatena-mode を使えば、エントリの作成・編集・アップロードまでが Emacs で可能になります。 でも、アップロードし…

モジュール名からモジュールのソースファイルをシームレスに開く elisp Ver.2

モジュール名からモジュールのソースファイルをシームレスに開く elisp - 理系学生日記で多少便利にはなったんだけど、以下の点に不満があったりしました。 getenv で PERL5LIB 環境変数の値が取得できない場合がある*1 perldoc でエラーが発生した場合に、…

モジュール名からモジュールのソースファイルをシームレスに開く elisp

タイトルの通り、モジュール名を読んでモジュールのソースファイルを開く elisp を作ってみました。これによって、ソースを読みつつ気になったモジュールがあると、そのモジュールのソースもシームレスに覗くことができるようになりました。 動機 最近ヒマな…

Anything を使ったときに大文字が入力できなくなる

Anything 使っていると、anything 関連機能において "英大文字で入力ができなくなる" という事象にみまわれてました。調べるのメンドいからずっと放置してたんだけど、今日ちょっと調べてみた。 困ること 例えば、anything-find-file を使うときに、"Test.tx…

Emacs で英和辞書ひくのがこれほど便利だとは

Emacs で辞書をひくというのは、これまでもいくつか方法がありました。しかし、だいたいは辞書を自分で用意しないといけなくてメンドかったり、設定メンドかったり、いろいろとメンドいという問題がありました。人はメンドいことが嫌いですから、利便をもと…

Cocoa Emacs で ddskk を使っているとワーニングが出てしまう件

数日前に Carbon Emacs から Cocoa Emacs に変えたのだけれど、変えて以後、起動する度に以下のようなワーニングが吐かれるようになってしまいました。 Warning: `last-command-char' is an obsolete variable (as of Emacs at least 19.34); use `last-comm…

follow-mode

Emacs の info 読んでたら、follow-mode というマイナーモードがあることを知りました。これがなかなか、ノート PC のみでプログラムをいじるような環境しかない人にはちょうど良いモードだと思います。 follow-mode といってもなかなか名前からは想像しにく…

downcase-region

lowercase-region だったハズと覚え間違えててハマってた。

ポイント付近に記述されているファイルを開く関数作った

ぼくは emacs でメモをとるとき「この情報はこのテキストファイルに書いてあるよ」ってことを示すために,こんな風に書くことがあります. ほげほげ File: ./memo.txtポイントが "./memo.txt" の上にあるときとか,サッと ./memo.txt を開きたいなーとか思っ…

Mac における Java 開発の問題点

Carbon Emacs と Eclipse のアイコンが似ていて,Command + Tab を押したときに分かりにくい.

句読点の数え上げ

whileを使って、リージョン内の句読点、ピリオド、カンマ、セミコロン、コロン、感嘆符、疑問符を数える関数を書いてみよ。また、再帰を使って書いてみよ。 while 版.非常に手続き型っぽいコードです. (defun count-specialchars-region (beginning end) (…

re-search-forward の練習問題

いつの間にやら 11 章に突入していたのでした. 連続した2つ以上の空行に一致する正規表現を探査する関数を書いてみよ。 問題の意味がよくわからんけど,こういうことかなと思う. (defun search-successive-blank-lines () (interactive) (if (re-search-fo…

探索の練習問題

文字列を探す対話的関数を書いてみよ。文字列を探しあてた場合には、その直後にポイントを移動してメッセージ「Found!」を表示する (defun test-search (word) (interactive "ssearch-for: ") (when (search-forward word nil t) (message "Found!"))) searc…

ナロイングの練習問題

そういや,個人的にはナロイングって使わないな. バッファの後半にナロイングしていて最初の行を参照できないような場合であっても、カレントバッファの最初の60文字を表示する関数を書いてみよ。 (defun first-60-characters () (interactive) (save-excur…

Emacs Lisp プログラミングの 5 章に入った

演習問題の難易度は 4 章とあまり変わってないような気がするなー. 省略できる引数に指定した数がfill-columnの値に比べて大きいか小さいかをメッセージに表示する対話的関数を書いてみよ。ただし、関数に引数を渡されなかった場合のデフォルトは56とする。…

バッファが既存かどうか

emacs lisp あんまり書けない人間なんだけど,Emacs Lisp プログラミング: があまりに分かりやすすぎてコーヒー吹いた.もちろんですけどまだ 4 章までしか行ってないし,これから難しくなって挫折していく可能性はある.4 章の練習問題, バッファが既存か…

tramp の multihop で sudo,su

emacs 使ってて便利なのが tramp ですね. 何がエラいかというと,tramp を使ってるとローカルで起動している emacs の中で,リモートホストのファイルを編集できる. 例えば,find-file (C-x C-f) で /ssh:kiririmode@desktiop:~/.bashrc とか指定してやる…

grep-find を今知った

ビックリしてほしくないですけど,今までぼくは grep-find なるものを知らなかった!! なにコレクソ便利じゃんとか思って興奮したので,今日はこの興奮をぜひとも皆さまにおつたえしたいとおもいます. 使い方 M-x grep-find とか押す. おやおや,見慣れたコ…

simple-hatena-modeで空ファイルをセーブしてアップロードしまったら,それ消せないの?

simple-hatena-modeを使っているんですけど,simple-hatena-go-forwardとかを使うと,とりあえずバッファが開くじゃないですか.例えば2008-02-29.txtとか. で,それを誤ってセーブしちゃうじゃないですか.スペース一個だけある状態とかで. で,その状態…

Macにskk入れてみた

id:syou6162さんがSKKを使い始めたそうなのでした。 2008-01-06 - Seeking for my unique color. そういえばゆーすけもSKKがないともう無理とかいっていたし、それを言い始めると階下の研究室なんかは全員が(反強制的に)SKKの大ファンですから、これはもうそ…

reftexで式のラベルを数字以外に

yatexを使って論文を書いてる方は、yatexと一緒にreftexを使うことが多いかと思います。 reftexはラベルとか引用とか、そういうのをより便利に、より快適にemacsから使えるようにするパッケージで、ぼくもずっと使ってた。 例えばreftex-labelは、現在のポイ…

gnuplot-mode

久しぶりにgnuplot-mode使って、あれ、gnuplot-modeこんなに使い勝手よかったっけ?とか思ったよ。 最近シミュレーションログから1タッチでグラフ生成までできるように、 ログファイルからデータを入力 データを解析 解析データをgnuplotにパイプで流し込み …