$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

emacs

emacsの例外処理を使ってdirex-project.elを便利にする

以前direx.elでgitプロジェクトのディレクトリツリーを表示する、またはdirex-project.elの紹介 - $shibayu36->blog;でemacsの例外処理の方法がよくわからないと書いたら、Emacs Lispで例外処理 - Life is very shortで例外処理の方法を教えてもらったので、…

emacs内でgit grepする方法

コードを書いているとプロジェクト内のコードを参考にしたかったり、一括で置換したかったりします。そんな時emacs内でgrepを使うのですが、プロジェクトがそれなりに大きくなると非常に遅くなります。gitのプロジェクトであれば、gitであればgit grepを使え…

emacsで、インストールしているperl moduleのソースを一瞬で表示する

emacsでperlのコードを呼んでいると、このモジュールの中身どうなってるんだっけって思って調べることがよくあります。そんな時、perldoc -mをemacs上で呼ぶと便利です。 emacs上でperldoc -mを使う方法はid:antipopさんがブログに書いていて、EmacsでPerl開…

perlbrew.elの添削を取り込んだ話

id:syohexさんが、perlbrew.elの添削をしてくれていたので、perlbrew.elに取り込んでみました。 勝手に添削 perlbrew.el - Life is very short perlbrew.elの使い方再び perlbrew.elはhttps://github.com/kentaro/perlbrew.el/blob/master/perlbrew.el から…

direx.elでgitプロジェクトのディレクトリツリーを表示する、またはdirex-project.elの紹介

emacsにはdirex.elという非常に便利なdirectory explorerがあります。これによって、ディレクトリのツリー構造が表示され、diredよりも便利にdirectoryを辿ることが出来るようになりました。 しかし、デフォルトでは自分にとってはいろいろと不便なときもあ…

GitHubでの仕事を快適にするコマンドを紹介します

趣味のプログラミングや仕事をgithubを使って行なっていると、「ちょっとこんなかんじの変更してみたんだけど、このcommit見てよ」とか、「このブランチのこのファイルちょっと見てくれない?」みたいなことがよく起こります。そういう時いちいちgithub上の…

emacsの正規表現をもっと便利に使う

emacsで正規表現を使って置換したいみたいな要求はそれなりにあると思いますが、それをやろうとするとemacsの正規表現のバックスラッシュ地獄みたいなものに遭遇することがよくあります。そんな時に使いたいtipsを少しだけ紹介します。 re-builderを使う ema…

Emacs Lispテクニックバイブル読んだ

Emacs Lispテクニックバイブル読み終わった。最近elispいろいろ書いていたので、参考になる部分が多かった。Emacs Lispテクニックバイブル作者: るびきち出版社/メーカー: 技術評論社発売日: 2011/11/26メディア: 単行本(ソフトカバー)購入: 5人 クリック:…

emacsでperlのuse文挿入を簡単に

EmacsでPerlのuse文を挿入 - subpop - subtechのように現在位置のperlモジュールのuseを自動で挿入してくれるものがあるのですが、自動で挿入するとuseを見やすいように整頓もしづらくなるので、ちょっと違うやり方を考えてみました。 やったことは現在位置…

git repositoryじゃない場所でもanything-git-project.elがエラーにならないように

先ほどのanything-git-project.elを少し手直ししてみた - $shibayu36->blog;に引き続きしてみた。けっこうひどいコードになってきてるから、リファクタリングしてもいいかもという気分になってきた。 (defun anything-git-project-is-git-repository () (let…

anything-git-project.elを少し手直ししてみた

id:yaottiさんが作っているanything-git-project.el(プロジェクト内のファイルを絞り込んで操作するanything-git-project.el - yaotti's diary)ですが、gitでproject管理している人にとってはすごく便利です。 ただ、一つだけ不満がありました。 現在のディ…

現在選択しているtextをwrapしてyasnippetを貼り付ける

昨日に引き続きyasnippetの話です。 yasnippet使ってたら選択範囲の周りにyasnippet展開したくなりました。例えばsubtestを現在書かれているコードの周りに囲みたいとかいう時です。 yasnippetにはyas/selected-textという、選択範囲の文字列を取得するコマ…

yasnippetの見直しをした

昔yasnippetすごいなーと思って、少しだけ使っていたのだけれど、なんかうまく使えていないなーと思ったので見直しをした。 設定 これまではyasnippet,anything-c-yasnippetをインストールした - $shibayu36->blog;の時に設定した時のまま(version 0.6.1)だ…

emacsのwindow幅に合わせて、分割数を変える

そろそろEmacsのウィンドウについて一言いっとくか - (rubikitch loves (Emacs Ruby CUI Books))で紹介されているother-window-or-split ですが、非常に便利に使わせてもらっています。ただ、外部ディスプレイに接続した時には縦二分割ではなく、もう少し分…

cua-mode.elが便利という話

矩形編集は何を使ってますか?僕は最近はcua-mode.elを使っています。 cua-modeとは 簡単に言えば矩形編集をインタラクティブに行うことのできるツールです。 emacs標準の矩形編集だと、C-x r tとか使って、文字列を入れて、一気に挿入というふうにしかでき…

emacsでperldocを使うためにperl-completion.elを入れた

anything-docでperldocを引こうとしていたんだけれど、MANPATHとかperlbrewとかの関係でうまく行かなかったので、perl-completion.elを利用して引くようにしてみた。色々補完とかもできるようになったし便利。昔のPCだと少し重くて動かなかったのだけれど、…

emacsでファイル行へのリンクを保存する

僕はコードを書いていると、「このファイルのこの行辺り、こんなことやってるからメモしておきたい」みたいなことがよく起こります。その時、emacsでgrepした時とかに表示されるファイルリンクみたいな感じで、メモしたいと思いました。下のような感じ。 と…

emacsで編集中のファイルをデフォルトブラウザで開く

emacsで編集しているファイルのディレクトリをFinderで開く - $shibayu36->blog;をやってたら、デフォルトブラウザで開くのもできた。適当にhtmlとかuserscriptとか書いてたら便利かもしれない。 default-browser http://www.leancrew.com/all-this/2012/04/…

emacsで編集しているファイルのディレクトリをFinderで開く

なんかいろいろあるかもしれないけど、とりあえずやってみた。 最初に (defun open-current-dir-with-finder () (interactive) (shell-command (concat "open " (file-name-directory (buffer-file-name))))) buffer-file-nameで現在のbufferのfilepathが取…

emacsでいろいろな情報をレジスタに保存する

emacsのwindow分割情報を一時的に保存できないかなーと思って探してたら、レジスタにいろいろな情報を保存できることがわかったのでメモ。 レジスタにwindow分割情報を保存する window-configuration-to-registerという関数でwindow分割情報を保存できます。…

magitのdiffの色変更

最近magit.elを使い始めたんだけど、diffの色が白黒だったので変えれないかなーと思っていたら、deffaceで定義されていたので変えてみた。次の設定を書いておくと追加した行が緑色になる。 (set-face-foreground 'magit-diff-add "green") ちなみにdeffaceは…

anything-gtags.elを導入してみた

id:mechairoiさんがいろいろエントリを書いていたので導入してみた。 このあたりを参考に。 http://d.hatena.ne.jp/mechairoi/20101128/1290940705 http://d.hatena.ne.jp/mechairoi/20101206/1291651821 gtagsがないと言われたときは、gtagsをインストール…

emacsでinit-loaderを導入してみた

これまでは.emacs.d/init.elで自分の分割したinit-*ファイルをロードしていたが、init-loader.el(http://coderepos.org/share/browser/lang/elisp/init-loader/init-loader.el)というのがあったので、こちらを導入してみた。 インストール install-elisp.el…

delete-trailing-whitespaceのセーブ時自動実行をトグルする関数

emacsにはdelete-trailing-whitespaceという関数があって、これを使うと、無駄な空白を除去してくれます。これをbefore-save-hookに登録しておくと非常に便利なのですが、たまに他の人が保存していた無駄な空白を除去しまくってgitのログがひどいことになる…

emacsでwomanを使ってみた

最近まで、womanという存在を知らなかったが、emacsでマニュアルを簡単に見れるということでwomanを使い始めた。これを使い始めたらターミナルでmanを見るのがかなり不便に感じるようになった。 carbon emacsなど最近のemacsは最初からwomanが使える。M-x wo…

emacsにpython環境を入れる

emacsにpymacsを使ってpython環境を入れてみました。そのメモ。 python-modeを導入 まずは、python-modeの導入。http://sourceforge.net/projects/python-mode/からダウンロードしたpython-mode.elをロードパスの通ったディレクトリに入れる。その後、.emacs…

emacsの設定ファイルをバージョン管理してみた

二つ以上のPCでemacsを利用していると、設定ファイルの共有が面倒になってきたので、gitでバージョン管理してみました。 構成 自分の場合は、さくらインターネットを共用リポジトリにしました。また、ローカルの方では、ホームディレクトリにemacs/ディレク…

diredの主要キーバインドメモ

http://www.bookshelf.jp/soft/meadow_25.html#SEC267が参考になったのでメモ。dired での主要なキーバインドdired でのディレクトリ移動,削除などの作業は以下のようにします. nとp:カーソル移動 RET:ファイルを開く. e や f でも OK ^:1 つ上のディレク…