table.el の使い方と org-mode 連携

Emacs には自由に表を書くための機能が標準で付いています。それが table.el です。org-mode にも表を作成する機能が付いていますが、これはあくまでも単純な表作成を行うためのものなので、表計算が行えても、セルが結合した表などは記述することはできませ…

org-mode による論文作成入門

理系の人はそろそろ卒論・修論を執筆する時期ですね。 LaTeX で記述する人も多いと思いますが、 LaTeX は人が書くのにあまり向いていないと思います。 Emacs を使っている人は org-mode で書いたテキストを LaTeX に変換して論文を完成させてみてはいかがで…

org-mode の publishing で特定のディレクトリ上のサイトマップを作成する

org-mode には publishing という機能があります。特定のディレクトリの org ファイル全てに対して変換を行ったり、変換後の HTML ファイルをアップロードするといったことができます。この publishing では、 org-publish-project-alist の設定で :auto-sit…

DDSKK の入力モード切り替えを変換/無変換キーで行う

一度体に馴染んだ操作方法というのは簡単に変えることができないものです。その一つに、 IME の on/off 切り替えを変換/無変換キーで行うというものがあります。変換/無変換キーという何に使えばよいのかよくわからないキーが押しやすいところにあることはパ…

org 文書をはてな記法に変換する ox-hatena.el (旧 org-export-hatena) を作った

Org 8.0 で文書変換のコードが完全に書き換えられ,新しい export 関数を簡単に書けるようになったということなので,試しに org 文書をはてな記法に export する elisp を書いてみました.akisute3/ox-hatena · GitHubインストールしたら org-mode に C-x C…

Emacsを便利に使うための提案(語のkill・マーク編)

前回 に引き続き,今回は語の操作に関する提案である. M-f や M-d などの語の操作は C-f や C-d の1字の操作に対応しているが, C-h が元々ヘルプであったためか,M-h に関しては,大半の人が C-h に設定しているであろう delete-backward-char との対応が…

Emacsを便利に使うための提案(行のcopy・kill編)

Emacs を使用していると,行全体をコピーしたくなることがよくある.そういうときは C-a C-k C-y C-a C-k C-/ C-a C-SPC C-e M-w のどれかで行っているのだが,利用する頻度の割に入力するキーが多くて面倒だ.そこで,行全体をコピーするキーを定義したいと…

DDSKKの日本語入力でC-iをまともに使いたい

DDSKK を使用していて困っていたのが,「かなモード」や「カナモード」のときに transient-mark-mode が有効なときの C-i が indent-resion にならないことだ.TAB キーでは上手くいくのに,C-i だとなぜかリージョン範囲が削除される. define-key などで調…

anything-for-filesにrecentfを全て表示したい

recentf-max-saved-items を変更しても,anything-for-files で表示される recentf が増えないのが嫌だったので anything-c-source-recentf を書き換えた.やることは anything-for-filesでlocateを有効にすると表示直後に移動したカーソルが一番上に戻され…

anything-for-filesでlocateを有効にすると表示直後に移動したカーソルが一番上に戻される問題

locate の表示数が多すぎるのがよくないらしい.ということで .emacs に以下のコードを追加して anything-c-locate で表示される項目数を限定. ;;; anything-locate の表示数を50に限定 (setq anything-c-source-locate `((name . "Locate") (candidates . …

anything-for-filesでlocateが動かない問題について

anything インストール済み Emacs を起動してすぐに anything-for-files を起動しても,locate が動かない.anything-for-files には anything-c-source-locate が含まれているはずなのに……. 原因は,anything-c-locate-command が初期状態では nil になっ…

Emacsの単語をブラウザで検索

Emacs でコードとか読んでると Google で検索したくなることはよくあるので,方法をいろいろ調べてみた. anything-c-source-surfraw 1つが anything-c-source-surfraw.anything をインストールしている Emacs なら,sudo apt-get install surfraw で surfr…

O'ReillyのiPhoneアプリからepubを作成するRubyプログラム

404 Blog Not Found:perl - O'ReillyのiPhoneアプリ本からepubをぶっこぬく をRubyで書いた.ziprubyが必要.Ubuntuで使用したが,ziprubyがあればたぶんWindowsでも動く. akisute3/ipa2epub · GitHub # -*- coding: utf-8 -*- #/usr/bin/env ruby # # O'Re…

elispでprintデバッグ

こんな関数を定義してみるのはどうだろう. ;;; printデバッグ用関数 (defun p (FORMAT-STRING &rest ARGS) (prog1 (apply 'message FORMAT-STRING ARGS) (sit-for 3))) ;;; 例 (setq num 10) (p "num: %d" num) ; => "num: 10" (message "num: %d" num) ; =…

Rubyでハッシュのキーをシンボルに統一する

ハッシュのキーは全てシンボルにしたい派.しかし,YAML を使っていると「key: value」を load したときに {"key"=>"value"} になってしまう.だからといって「:key: value」と書くのも面倒. ということで Hash のキーをシンボルに統一するメソッド symboli…

Rubyで豊富なイテレータ(ブロック付きメソッド)を使用する理由

ary.each do で全てのケースをカバーできるのに、特別な構文をいくつも用意してタイプ量をわずかに減らすことに何の意味があるのでしょうか? というコメントをいただいたので,自分なりの考えを述べたいと思う. 様々なイテレータがある理由,これは一言で…

Emacsで書いたorg文書とToodledoを同期するorg-toodledo

今までTodo管理にToodledoを使っていたが,これをEmacsで管理できないだろうかと思った.でも,Emacsが使えない環境でもTodoの確認をしたり,Toodledoと同期するiPhoneアプリも使い続けたいので,org文書に書いたTodoリストとToodledoのTodoリストを同期でき…

Ubuntu11.10でサスペンドやハイバネートに失敗する問題の解決方法

Ubuntu11.10でサスペンドやハイバネートをすると,画面は真っ暗になるものの電源が落ちずにフリーズ状態になる問題に悩まされた.その応急処置として以下の方法で解決した. dconf-editor をインストール (sudo apt-get install dconf-editor) dconf-editor …

EmacsのC-hをbackspaceとして使用する

Emacs の C-h は初期状態では help となっているが,これを backspace として使用したいと考える人は多いと思う.この方法には,以下の2通りある. global-set-key で C-h に delete-backward-char を割り当てる keyboard-translate を使用して C-h に backs…

アクティブウィンドウをもう1つのディスプレイに移動するRubyプログラム

デュアルディスプレイ環境だと,もう一方のディスプレイにアクティブウィンドウを移動したいことがある.しかし,そのようなショートカットはUbuntu11.10に存在しないため,自分でRubyスクリプトを書いた. 必要なものはxprop,xwininfo,wmctrl,それとRuby…

Javaで配列を標準出力する

Java を書いてるときに String 型の配列を標準出力したいなと思ってググったら、こんなページを上の方に見つけた。 String[] 型の配列を簡単に出力するには - Yahoo!知恵袋 一番簡単な方法は、 for (String str : strAry) { System.out.println(str); } と書…

コードアシストを利用したeclipseプラグインを作りたい人へ

eclipse で便利な機能といえばコードアシスト(コンテンツアシスト)。Ctrl + Space でコードの補完ができるアレだ。これを自作プラグインで拡張したいと思う人も多いだろうが、情報も少なく私自身もかなり苦戦したのでここに説明しておく。 拡張ポイント そも…

JavaでCamelCaseを分割する

CamelCaseを分割する必要が出てきたのでググってみたけど、大文字続きを一つの単語として認識するものが見つからなかったので書いた。 キャメルケースを単語に分割する - うなの日記 を参考。ここの正規表現 String[] strs = str.split( "(?<=[a-z])(?=[A-Z]…

WindowsでEmacsをセットアップ

WindowsのEmacsと言えばMeadowを使ってる人も多いかもしれないけど、MeadowはEmacs22系だから古いんだよね。今はEmacs23.3だから新しい機能を使いたい人には向いてない。そこで今日はWindowsでEmacsを使う方法を紹介。 インストール gnupack Users Guide の…

WindowsでEmacsをセットアップ

WindowsのEmacsと言えばMeadowを使ってる人も多いかもしれないけど、MeadowはEmacs22系だから古いんだよね。今はEmacs23.3だから新しい機能を使いたい人には向いてない。そこで今日はWindowsでEmacsを使う方法を紹介。 インストール gnupack Users Guide の…

emacsで前置引数を活用する

emacsには前置引数でコマンドに定義する機能の幅が広がるのだが以外に知られていない。そこでこの前置引数を利用したelispの関数定義について紹介しようと思う。 まずはemacs上で「C-u 5 a」と入力してみてほしい。「aaaaa」と入力されるはずだ。この5が前置…

subやgsubで括弧とマッチした部分の再利用、および式展開の方法

Rubyで文字列を置換するsub, gsubメソッドだが、元の文字列の一部を使用したいことはよくある。また、置換後の文字列に式展開を行いたいこともあるだろう。その方法が複数あるので紹介したい。 その前に sub, gsub の簡単な説明を String#sub, String#gsub …

正規表現の先読みを解説

正規表現の先読みを最近になって理解したので解説してみる。 正規表現の先読み 正規表現の先読みとは、簡単に言うと「それがあることを保証するがマッチはさせない文字列」である。この、「あることを保証してマッチさせない文字列regexp」はRubyでは「(?=re…

ちょっとわかりにくいけど非常に便利なinjectメソッド

ruby の inject で配列の合計や最小要素を簡単に求められるんだけど、慣れていないと理解しにくい。そこで、できるだけわかりやすく説明したいと思う。 injectの使用例 Ruby初心者が配列の和を求めたいと思ったとき、最初に思いつくのは以下のようなコードだ…

Rubyでコードリーディングをやってみた

「プログラムを書けるようになるためにはプログラムを読まなければならない」とどこかで聞いたので、Rubyのコードを何か読んでみることにした。とりあえず初めてのコードリーディングということで、 Ruby/勉強用のお手本になるソースコード - TOBY SOFT wiki…