理系学生日記

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

忍者TOOLS

emacs

Cask から el-get に移行した

重い腰をあげて、Emacs の elisp 管理を Cask から el-get に移行しました。 移行の背景 el-get への移行 移行の背景 このあいだ久しぶりに Windows PC を買って、現在進行形で環境設定を行っています。 そこで引っかかったのが Emacs の設定移行でした。 も…

go-modeでgodef-jumpした後、jump元に戻りたい

Emacs で go-mode を使っているとき、godef-jump でカーソル直下のシンボルの定義場所にジャンプすることができます。 一方で、そういえばジャンプ元に戻りたいんだけど…っていうときに、どうやって戻れば良いんだろっていうときに悩んでしまったのですが、 …

git-grep を Emacs で呼び出す helm-git-grep

git grep を Emacs から起動できたら捗るだろうなぁと思い立ってちょっと調べてみたら、そのものズバリの拡張である helm-git-grep が存在していました。 これを導入すると、Emacs から git grep を呼び出せるようになり、 helm インタフェースで使用し、イ…

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

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

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 を作ってみました。これによって、ソースを読みつつ気になったモジュールがあると、そのモジュールのソースもシームレスに覗くことができるようになりました。 動機 最近ヒマな…