タグ

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

  • LLDiverのエディタ対決に Emacs代表として参加しました. - Shohei Yoshida's Diary

    http://ll.jus.or.jp/2014/ エディタ対決に Emacs代表として参加してきました. ネガティブな発言が多めで、もっとポジティブなことを言うべき だったと反省しています. ごめんなさい. 資料 5分弱でということだったのでほとんど内容はありません. 以下脳内シミュレーションで話の内容を考えていたけど話さなかった ことや当日うまく話せなかったことについて. 拡張言語 Emacs Lisp 括弧だらけで, 機能的にも貧弱な言語ですが, 好きです. というか書くのが楽. 楽というのは論理的な意味でなく物理的な意味でです. 括弧が多いことなんて 慣れればどうにでもなります. 逆に物理的に書くのが大変と思うのは, pythonとか CoffeeScriptのようなインデントに意味がある言語. 自動インデントができない のが辛すぎる. パッケージ管理 package.elはとりあ

    LLDiverのエディタ対決に Emacs代表として参加しました. - Shohei Yoshida's Diary
  • シェルスクリプトを公開するとき, コマンド前にバックスラッシュをつけるべき - Shohei Yoshida's Diary

    oh-my-zsh の環境で、peco-select-history が動かない - Qiita 追記 2014年 7月 7日 シェルスクリプトと書いてしまい漠然すぎましたが, ここで述べている ことが問題になるのは, .bashrc, .zshrcに関数, alias設定等がコピー される場合や, sourceコマンドでファイルを読み込む場合です. non-interactiveに実行されるシェルスクリプトについては特に 問題ないです. 問題点 そうしないと, 公開されたコマンドを自分の環境に導入した場合, aliasにより正しく動かなく場合があるためです. aliasをつけがちな コマンド(ls, grep等)がシェルスクリプトに含まれていると 特に問題が起こる可能性が高くなります. 例 pecoを使って カレントディレクトリのファイルをページャで開く 例を考えてみましょう. 単純に考

    シェルスクリプトを公開するとき, コマンド前にバックスラッシュをつけるべき - Shohei Yoshida's Diary
  • package.elから Caskに切り替えました - Shohei Yoshida's Diary

    emacs の lisp 管理に cask つかいはじめた。これだよー 2014-04-24 11:55:48 via web 私もしばらく前に Caskに切り替えたのでそのメモ. Caskを使う利点 (あまりいないだろうけど)Emacsのバージョンごとにパッケージを管理できる Gitで管理されていれば, MELPAに登録されていなくてもインストールできる 0.6から Gitのタグ, コミット IDの指定ができるようになり, バージョンの固定化が可能に. 自分の環境をファイルに落とし込める インストール % curl -fsSkL https://raw.github.com/cask/cask/master/go | pythonMacユーザの人は homebrewで入れれるみたいです. % brew install cask Caskのアップデート まだ開発中で問題修正も稀にあるので,

    package.elから Caskに切り替えました - Shohei Yoshida's Diary
  • free-keys 空いているキーバインドを教えてくれる拡張 - Shohei Yoshida's Diary

    Emacsを使っている人の中にはキーが足りないと感じている人が 多いことでしょう. 割り当てられるキー自体はいろいろありますが, デフォルトで何か割り当たっているということも多々あります. それを上書きしてしまうのもありですが, 完全に空いているキーと いうのも活用したいものです. free-keysはそういうときに便利なツールで, 空いているキーを 教えてくれます. 注意 GUI向けしか考慮していないのか, CUI環境としてはキーシーケンスと して認識されないものも空いているキーとして表示されてしまいます. ターミナルエミュレータ等の設定を変えてできないことはないですが, どの環境でもできるというわけではありませんので, 'emacs -nw'で 起動している方は注意が必要です. リポジトリ https://github.com/Fuco1/free-keys インストール MELPAか

    free-keys 空いているキーバインドを教えてくれる拡張 - Shohei Yoshida's Diary
  • package.elを使う場合の設定ファイルの書き方 - Shohei Yoshida's Diary

    init-loader.el と package.el を導入して快適 Emacs ライフ - Qiita に影響されて書きます。 package.elの設定ははじめの方に書く ;; Emacs package system (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/")) (package-initialize) package.elを使っているような人であれば、上記のような設定がどこかしらに あると思うのですが、これは初めの方に書くべきです。具体的には早い段階で package-initializeを呼ぶべきだからです。 package.elはパッケージ管理だけのツールではない package.elを使ってパッケージをインストールした場

    package.elを使う場合の設定ファイルの書き方 - Shohei Yoshida's Diary
  • git-messenger.elを書いてみました - Shohei Yoshida's Diary

    TokyoVim #14 に参加して git-messenger.vim を作ってみた - sorry, uninuplemented: の Emacs版です。まだその行のコミットログをポップアップする 機能しかありません。 リポジトリ https://github.com/syohex/emacs-git-messenger コード popup.elが必要になりますので、利用する際は前もってインストールして おいてください。 ;;; git-messenger.el --- Port of gitmessenger.vim ;; Copyright (C) 2013 by Syohei YOSHIDA ;; Author: Syohei YOSHIDA <syohex@gmail.com> ;; URL: ;; Version: 0.01 ;; Package-Requires: ((p

    git-messenger.elを書いてみました - Shohei Yoshida's Diary
  • コンテキストスイッチの回数を調べる - Shohei Yoshida's Diary

    Starletのヘッダとボディを合わせて出力する閾値を変更してみる - Hateburo: kazeburo hatenablog この手の記事の話でコンテキストスイッチについて出てくることが あるけど、あまり数値が併記されているものがないように思えます。 その手のプロの人が言っているので、確かな情報だと思うのですが、 やはり数字を一緒に載せていただけるとより真実味が増すと思います。 プロセスのコンテキストスイッチ回数の確認方法(Linux) procfsから確認することができます % cat /proc/{目的のプロセスのPID}/status | grep ctxt voluntary_ctxt_switches: 145031 nonvoluntary_ctxt_switches: 13452自発的(voluntary)なコンテキストスイッチは、sched_yieldを呼び出した場合

    コンテキストスイッチの回数を調べる - Shohei Yoshida's Diary
  • 自動で revertしたとき、そのことを通知する - Shohei Yoshida's Diary

    Git で branch 切り替えた時とかに emacs で開いてるファイルの buffer を更新 - yoshiori.github.io の id:tomoyaさんのはてブコメントで、通知する方法は、っていうのが あったのでそれについて、revertが行われるときの hook pointとしては before-revert-hookっていうのと after-revert-hookというのが使えます。 今回は完了してからでいいので、after-revert-hookを使えばよいでしょう。 Linux環境なら以下のようにすれば通知できます。hook関数なので引数を 受け取れないですが、buffer-file-nameとしておけば、ファイル名が 取得できると思います。 (require 'notifications) (defun my/after-revert-hook () (noti

    自動で revertしたとき、そのことを通知する - Shohei Yoshida's Diary
  • 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
  • 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
  • Emacsで Perlのひな形を挿入する - Shohei Yoshida's Diary

    Big Sky :: ファイルタイプ別にテンプレートを選べるsonictemplate-vim書いた Emacsだと、yasnippetを使えば同様のことができます。Vimでも yasnippetが あるらしいので、それでできないのかなとも思ったんだけど、使い勝手が 違うのかな? .pmならこれ、.plならこれと一択の場合は auto-insertを使う手もあるので、 その場合はこちらに詳しく記されています。 スクリプト用のスニペット #name : Perl script template # -- #!perl use strict; use warnings; $0 モジュール用のスニペット #name : Perl Package Template # -- package ${1:`(yas/perl-package-name)`}; use strict; use warnin

    Emacsで Perlのひな形を挿入する - Shohei Yoshida's Diary
  • Testgen補足 - Shohei Yoshida's Diary

    YAPC::Asia Tokyo 2011 2日目レポート[随時更新]:YAPC::Asia Tokyo 2011 スペシャルレポート|gihyo.jp … 技術評論社 @__papix__さんが YAPC::Asia 2011で発表した Testgenの補足について. コードは個人的にちょこちょこいじってましたが, 自分のプロダクトではないので 紹介は控えてましたけど, 公になったので書くことにしました. コンパイラのテストとは テストが重要なのは当然なのですが, コンパイラのテストは特に重要です. コンパイラにバグがあると, ソースコードが間違っているのか, コンパイラが 誤っているかがわからなくなり, 開発どころではないからです. 小さなアプリケーションならまだいいんですけど, カーネルをコンパイルする ということになるともう絶望です. なので完璧とはいきませんが, 標準的な最適化オ

    Testgen補足 - Shohei Yoshida's Diary
  • Devel::NYTProfからコールグラフを生成する - Shohei Yoshida's Diary

    ソースコードを追っかけるときにコールグラフが分かっていると便利です。 時間が十分あるのであれば、自分でじっくり追いかけるというのもありかと 思うんですけど、事前にコールフローが分かっている方が、確実に追いかけることができます。 以前作成した Google URL Shortener APIを使う - syohex’s diary のコールグラフを見てみようと思います。 準備 KCachegrindをインストールします。Qtが使われているので、Ubuntuなんかの GNOMEが使用されているディストリだと大量のライブラリが入りますけど、 そこは我慢ということでインストールしてください。 % sudo aptitude install kcachegrind当たり前ですが、Devel::NYTProfもインストールします。 % cpanm Devel::NYTProf プロファイル結果の出力

    Devel::NYTProfからコールグラフを生成する - Shohei Yoshida's Diary
  • 1