理系学生日記

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

忍者TOOLS

emacs

Macを切り替えたら exec-path-from-shellで環境変数が引き継がれなくなる

ずっと MacBook Air で日常を暮らしてきて、やっぱりデカいディスプレイで暮らしたいなぁということで、昔つかってた iMac に乗り変えました。 そこで困ったのが、Emacs で環境変数が引き継がれてこないということでした。 Emacs では、exec-path-from-shell…

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…