ブックマーク / syohex.hatenablog.com (20)

  • emamuxの補完入力の改善 - Shohei Yoshida's Diary

    http://shibayu36.hatenablog.com/entry/2014/02/10/174424 を見て, そういえば emamuxなる emacsと tmuxの連携ツールを 書いたなぁと思って見返したところ, 補完が completing-readしか できなかったので, ido, helmでも補完できるようにしてみました. リポジトリ https://github.com/syohex/emacs-emamux 設定 emamux:completing-read-typeを 'normal, 'ido, 'helmで 補完スタイルを切り替えることができます. helmの場合は以下のように なります. (custom-set-variables '(emamux:completing-read-type 'helm)) idoについては, emamuxをロードしたときに,

    emamuxの補完入力の改善 - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2014/04/19
    Check out "emamuxの補完入力の改善" (via @pocket)
  • rebuild.fmの Emacsクライアントを書きました - Shohei Yoshida's Diary

    http://rebuild.fm/ rebuild.fmの Emacsクライアントを書いてみました. 最近はメンテナンスばっかりやっていたので, 新規にスクラッチから 何か書いてみたかったというのが主な動機です. リポジトリ https://github.com/syohex/emacs-rebuildfm 機能 helm interfaceで podcastの一覧を表示して, 選択した podcastを 再生するというものです. その他コマンドに pause, resume, stopする というものがあります. イメージ アクション podcastの再生 その回のページへのジャンプ persistent action その回の概要を表示します. (上記のイメージのような感じです) 依存 helm cl-lib libxml(libxmlを有効にして Emacsをコンパイルしておく必要

    rebuild.fmの Emacsクライアントを書きました - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2014/04/19
    Check out "rebuild.fmの Emacsクライアントを書きました" (via @pocket)
  • Emacs 24.4の show-paren-mode - Shohei Yoshida's Diary

    A peek at Emacs 24.4: Smarter show-paren-mode - Emacs Redux の紹介です. ruby-modeで smart-paren-modeを有効にすると do-end def-end class-end のペアがハイライトされるようになりました. smartparensでは同機能を 実装していますが, 24.4からは素の Emacsだけでこの機能を利用することができます. do end def end class end

    Emacs 24.4の show-paren-mode - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2014/03/03
    Check out "Emacs 24.4の show-paren-mode" (via @pocket)
  • Emacsでの環境変数の設定に exec-path-from-shellを使うようにした - Shohei Yoshida's Diary

    EmacsでPATHの設定が引き継がれない問題をエレガントに解決する - Qiita この手のツールは何個か知っていたんですが、環境変数を一つ取り出す度に シェルを起動しているというものが多くて、利用をためらっていたのですが、 exec-path-from-shellのコードを見たところ、複数指定してもまとめて 値を取ってくれるようなので、いいかなと思って切り替えました。 インストール package.elで MELPAからインストールしてください。 設定 以下のような感じで良いです。PATHが含まれていると、exec-path, eshellの PATHの 設定もあわせて行なってくれます。 ;; load environment variables ;; 追記 GEMに関する環境変数を設定すると rbenv経由で rubyがうまく使えなかったので削除 (let ((envs '("PAT

    Emacsでの環境変数の設定に exec-path-from-shellを使うようにした - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2013/07/20
    Check out "Emacsでの環境変数の設定に exec-path-from-shellを使うようにした"
  • quickrun.elに quickrun-replace-regionを実装しました - Shohei Yoshida's Diary

    Mac を使っているなら必ず使うべき2つの機能 "Automator" と "サービス" - kurainの壺 をパクって実装してみました。 概要 リージョンのコードを実行し、結果を表示するのではなく、リージョンを その結果で置き換えます。Macのようにどんなアプリでも任意に使えるという のはありませんが、Rubyだけでなく、quickrun.elがサポートする(自分で 追加したものも含む)言語で実行できることは利点でしょうか。そういうわけで Rubyわかんねーって人は、C言語で書くこともできます。 イメージ 真似して gifを作ってみました。 注意 日語を使う場合ですが、Ruby 2.0より前の場合明示的に encodingを実装しないと エラーになるので、Automatorの紹介であったやつと同じ例をやるとエラーが返ります。 Ruby 2.0だとデフォルトで utf-8と解釈するので

    quickrun.elに quickrun-replace-regionを実装しました - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2013/02/22
    quickrun.elに quickrun-replace-regionを実装しました - Life is very short
  • emacs-jpはじめます - Shohei Yoshida's Diary

    http://emacs-jp.github.com/ https://github.com/emacs-jp/emacs-jp.github.com Emacsのコミュニティサイトみたいなのがあったらいいよね、って 2年前ぐらいから話していた気がするんですが、全く持って実現に 至れていませんでした。ですが、先週の @myuheさんの 以下の tweetからいろいろ議論が盛り上がり、ようやく行動に 移れたかなという感じになっています。 結局、日Emacserが集える場所とはどこだったのか。 2013-02-12 19:43:47 via twitcle 主な目的 質問、疑問に答える 添削 メンテナンスされていないパッケージを emacs-jp organizationで管理する などです。 こんな人はぜひ わからないことがある こんな拡張ないの ? こんな拡張書いたけど、見て欲しい こ

    qt4cpp
    qt4cpp 2013/02/17
    emacs-jpはじめます - Life is very short
  • vc-modeを使わずに mode-lineにブランチ情報を表示する - Shohei Yoshida's Diary

    以前カーネル開発で vc-modeを onにしたままやっていたら、バックグラウンドで ごにょごにょしすぎて、まともに使えるか!!、ってなってそれ以降ずっと offに していたんですが、さすがにブランチ情報がないと branch切ったときの確認に 手間がかかるなぁってことで、表示するようにしてみました。 CVS, subversionとかもう使わないんで、git対応だけです。 ついでに今リポジトリ内にいない場合もその情報を表示するように しています。 コード ;; Show Git branch information to mode-line (let ((cell (or (memq 'mode-line-position mode-line-format) (memq 'mode-line-buffer-identification mode-line-format))) (newcd

    vc-modeを使わずに mode-lineにブランチ情報を表示する - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2013/02/13
    vc-modeを使わずに mode-lineにブランチ情報を表示する - Life is very short
  • direx.elの設定 - Shohei Yoshida's Diary

    https://github.com/m2ym/direx-el m2ymさんプロダクトの direx.elというイカした diredチックな ツールがあります。機能補充のための pull request(chmod, Elispの load, byte-compile)だけして使っていなかったんですが、そろそろ使おうと いうことで設定してみました。 キーバインドは dired-jumpと同じ "C-x C-j"です。 個人的にまだ完全に diredを置き換えられないので、C-u prefixを つけると dired-jumpを起動するようにしています。あとフレームを 分割しているときに、一番左に popupされるとどのバッファに対して ディレクトリ操作を行ったかがわかりづらくなってしまったので、 分割しているときは、other-windowでなく、同じ windowで表示するようにしてい

    direx.elの設定 - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2013/02/07
    direx.elの設定 - Life is very short
  • import-popwin 各種言語の import文付近を popupする - Shohei Yoshida's Diary

    emacsでperlのuse文挿入を簡単に - $shibayu36->blog; を種々の言語で使えるようにして、自分で hook関数を設定できるように したものです。 リポジトリ https://github.com/syohex/emacs-import-popwin 必要要件 popwin 0.6以降 イメージ C言語だと include文あたりを popupし、Rubyだと import文、Perlだと use, require文あたりを popupします。 以下は Pythonの例ですが、import-popwinを実行することで、最寄りの import, from文近辺を popupしています。 対応言語 c-mode c++-mode perl-mode, cperl-mode ruby-mode python-mode emacs-lisp-mode 設定 (requir

    import-popwin 各種言語の import文付近を popupする - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2013/02/02
    import-popwin 各種言語の import文付近を popupする - Life is very short
  • flymakeの設定する前に flycheckを確認しよう - Shohei Yoshida's Diary

    flycheck/flycheck · GitHub twitterで前に少し書いたのですが、記事にもしておきます。 動的にエラー表示を行なってくれる flymakeはとても便利なんですが、 設定が面倒です。初期関数だったり、エラー出力を解析するための正規表現の 指定やら、苦労したことある人は多いと思います。 そんな人に flycheckはお勧めです。簡単に言うと各言語用の flymakeの設定を まとめてくれているパッケージです。対応言語も多く、設定も簡単なのです。 対応言語 2013年 1月 25日現在以下の言語に対応しています。 CoffeeScript CSS Emacs Lisp Haml HTML Javascript JSON Lua Perl PHP Python Ruby Sass Shell scripts (Bash, Dash and Zsh) TeX/LaTeX

    flymakeの設定する前に flycheckを確認しよう - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2013/01/27
    flymakeの設定する前に flycheckを確認しよう - Life is very short
  • Emacs 24以上を使うなら color-themeではなく、Emacsの themeフレームワークを使おう - Shohei Yoshida's Diary

    color-themeでEmacsの見た目をきれいにする - Qiita Emacs 24以上を使っているという前提があるのですが、独自のテーマを作る場合は color-themeより、Emacs 24から導入された themeフレームワークを使う ことをおすすめです。 機能的には変わらないと思うのですが、color-themeをインストール する必要がないというのがお手軽です。~/.emacs.d以下においておけば、 load-theme関数を使って利用することができます。 サンプル 試しに @kubosho_さんの molokaiを themeフレームワーク版に 書き換えてみました。コードはほとんど同じです。カーソル等のごく一部の パラメータの指定が違うのと、各項目を quoteするぐらいです。 (deftheme molokai "Molokai color theme") (cus

    Emacs 24以上を使うなら color-themeではなく、Emacsの themeフレームワークを使おう - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2012/12/23
    Emacs 24以上を使うなら color-themeではなく、Emacsの themeフレームワークを使おう - Life is very short
  • Emacsでポモドーロテクニック - Shohei Yoshida's Diary

    この記事は Emacs Advent Calender 2012 15日目の記事です。 ポモドーロテクニックとは 時間管理術の一つで、25分に区切って作業を進めていくものです。 参考 Pomodoro Technique - Wikipedia, the free encyclopedia アジャイルな時間管理術 ポモドーロテクニック入門 作者: Staffan Noeteberg,渋川よしき,渋川あき出版社/メーカー: アスキー・メディアワークス発売日: 2010/12/16メディア: 単行(ソフトカバー)購入: 13人 クリック: 330回この商品を含むブログ (57件) を見る Emacsでポモドーロテクニック いくつか実装はありますが、ここは拙作のものを紹介します。 emacs-utils/pomodoro.el at master · syohex/emacs-utils ·

    Emacsでポモドーロテクニック - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2012/12/17
    Emacsでポモドーロテクニック - Life is very short
  • おすすめの helm拡張 - Shohei Yoshida's Diary

    この投稿はEmacs Advent Calendar 2012の 7日目の記事です。 拙作の helmプラグインを紹介しようかと思ったのですが、 そもそも helm(anything)を使っている人がものすごく多いって わけではなさそうなので、おすすめの拡張をいくつか紹介しようと 思います。 事前準備 helmは MELPA, el-get等でインストールできます。 package.elでのインストール方法を事前に示します。 以下の設定を ~/.emacs.d/init.el, ~/.emacs等に追加してください。 (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/")) (package-initialize) 以下のコマンドを実行します。 M

    おすすめの helm拡張 - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2012/12/09
    おすすめの helm拡張 - Life is very short
  • Re: Emacsの多分割されたバッファを1ストロークで上下左右に移動 - Shohei Yoshida's Diary

    Emacsの多分割されたバッファを1ストロークで上下左右に移動 - 会者定離で以降 なぜか最近はてブがついていた記事ですが、移動のキーが Lispプログラミングで 使うキーなので、人によっては辛いのではないかと思います。Emacsだとキーが どうしても不足しがちだと思うんですが、そういうときに便利なのが @myuheさんの smartrepです。keychord的なものも考えられますけど、 連続で使う可能性がある場合は断然 smartrepだと思ってます。 smartrepを使って上のリンク先と同じ事をしようとすると 以下のようになるでしょうか。 (require 'smartrep) (setq windmove-wrap-around t) (windmove-default-keybindings) (defvar my/alt-z-map (make-sparse-keymap)

    Re: Emacsの多分割されたバッファを1ストロークで上下左右に移動 - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2012/11/20
    Re: Emacsの多分割されたバッファを1ストロークで上下左右に移動 - Life is very short
  • websocket.elでマルチバイト文字を扱う時の注意 - Shohei Yoshida's Diary

    追記 修正されたようですので、自分で回避していた方は最新版にアップデートしてください。 websocket.el + Amon2でリアルタイム Markdown Viewer - Life is very short で書いた、websocket.elで使った Realtime markdown viewerで 日を使うとエラーになっていた問題は websocket.elにマルチバイト 文字列をそのまま送っていたことが原因でした。 websocket.elの websocketのフレームに収める部分で利用する unibyte-stringという関数は 0-255の文字コードしか受付ません。 なのでマルチバイト文字列を渡す場合は、それをバイト列にする 必要があります。Perlで言うところの Encode::encodeの処理が 必要になるわけです。 Emacs Lispの場合は encod

    websocket.elでマルチバイト文字を扱う時の注意 - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2012/08/29
    websocket.elでマルチバイト文字を扱う時の注意 - Life is very short
  • Emacs simple hotentry viewer - Shohei Yoshida's Diary

    Emacsの libXMLインタフェース - Life is very short Emacsの libXMLインタフェースを使って簡単なアプリケーションを 作成してみました。外部パッケージで似たようなものはありましたが、 Emacs 24で XMLの操作が簡単に行えるようになって、100行未満で これぐらいのことが実装できるようになりました。 ソース ;;; hotentry.el --- Simple hotentry viewer ;; Copyright (C) 2012 by Syohei YOSHIDA ;; Author: Syohei YOSHIDA <syohex@gmail.com> ;; URL: ;; This program is free software; you can redistribute it and/or modify ;; it under th

    Emacs simple hotentry viewer - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2012/08/11
    Emacs simple hotentry viewer - Life is very short
  • Emacsで人生を振り返る。 - Shohei Yoshida's Diary

    Macのスクリーンショットで1日の作業を記録して動画で振り返り - 西尾泰和のはてなダイアリー に着想を得て、capture-mylife.elというものを作ってみました。 まあ上記のことを実現する Emacsフロントエンドなだけですが・・・。 リポジトリ syohex/emacs-capture-mylife · GitHub 必要なもの キャプチャリング scrot or import(Linux) screencapture(MacOSX) nircmd.exe(Windows) 動画化 avconv or ffmpeg デスクトップ全体のキャプチャリングはすべて対応していますが、 アクティブな Windowのキャプチャリングについては scrotをインストール した Linux環境に限られます。importコマンドや xwdコマンドでも実現 できるはずなのですが、デスクトップ全体だ

    Emacsで人生を振り返る。 - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2012/08/04
    Emacsで人生を振り返る。 - Life is very short
  • mark-multiple.elの mark-more-like-thisの紹介 - Shohei Yoshida's Diary

    mark-multiple.elの mark-more-like-thisを紹介します。 リファクタリングツールで、主に変数名の修正に使えるものです。 expand-region.elを開発している方が作られたもので, expand-region.elと相性が良いです。 リポジトリ magnars/mark-multiple.el · GitHub 設定 (require 'mark-more-like-this) (global-set-key (kbd "C-<") 'mark-previous-like-this) (global-set-key (kbd "C->") 'mark-next-like-this) 使い方 初めにリージョンを選択します。次に mark-previous-like-this, mark-next-like-thisを実行します。これはリージョンと一致する

    mark-multiple.elの mark-more-like-thisの紹介 - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2012/02/13
    mark-multiple.elの mark-more-like-thisの紹介 - Life is very short
  • expand-region.elの紹介 - Shohei Yoshida's Diary

    magnars/expand-region.el · GitHub expand-region.elの紹介。結構便利と思う人が多いんじゃないかなと 勝手に思っています。 追記 まだ大きく変更されていることがあるものなので、定期的にアップデートした方が よいと思います。 気になる方は githubプロジェクトをwatchしておくとよいでしょう。 設定 githubから cloneしてそこに load-pathを設定しておいてください。 ;; expand region (add-to-list 'load-path "~/.emacs.d/expand-region.el") (require 'expand-region) (global-set-key (kbd "C-@") 'er/expand-region) (global-set-key (kbd "C-M-@") 'er/co

    expand-region.elの紹介 - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2012/01/19
    expand-region.elの紹介 - Life is very short
  • test-more.elを書いています - Shohei Yoshida's Diary

    Emacs Lisp版 Test::Moreを書き始めました。 コードの大部分は @nitro_idiotさんのcl-test-moreをベースにしています。 現状はかなり簡素化しています。 Emacsにはテストフレームワークがいくつか存在しているのですが、 しっくりこなかったので普段 Perlで利用するような感じでできたら いいかなと思って書きました。 リポジトリ syohex/emacs-test-more · GitHub 実装済み関数 ok is isnt diag is-print is-error is-type like skip pass fail 定義はすべて test-more:という prefixがついています。 サンプル まだ書きかけなので全然なのですが、以下のように利用します。 cl-test-more風です。 (require 'test-more) (test

    test-more.elを書いています - Shohei Yoshida's Diary
    qt4cpp
    qt4cpp 2012/01/11
    test-more.elを書いています - Life is very short
  • 1