twoline for Emacs

あー、一瞬でできた。いつもの通り既出かどうかなんてどうでもいい気分です。ていうか結構便利な気がしてきました。

(defun twoline-next ()
  "twoline next"
  (interactive)
  (let (l1b l1e l2b l2e)
    (save-excursion
      (forward-line -1)
      (beginning-of-line)
      (setq l1b (point))
      (end-of-line)
      (setq l1e (point))
      (forward-line -1)
      (beginning-of-line)
      (setq l2b (point))
      (end-of-line)
      (setq l2e (point))
      )
    (call-process "twoline" nil t nil
                  (buffer-substring l2b l2e) (buffer-substring l1b l1e)))
  )
(global-set-key "\C-q\C-i" 'twoline-next)

などと。

次回予告。

  IoObject_addMethod_(self, IOSTRING("fp_add"), IoMicroFunction_fp_add);
  IoObject_addMethod_(self, IOSTRING("fp_sub"), IoMicroFunction_fp_sub);
  IoObject_addMethod_(self, IOSTRING("fp_mul"), IoMicroFunction_fp_mul);
  IoObject_addMethod_(self, IOSTRING("fp_div"), IoMicroFunction_fp_div);
  IoObject_addMethod_(self, IOSTRING("fp_imm"), IoMicroFunction_fp_imm);

例えばこんなデータから、

struct jit_fp *MicroFunction_fp_add(MicroFunction *self, struct jit_fp *r, struct jit_fp *i);

の次の行を生成できると便利では無いでしょうか。

twoline.rb もたぶん少し手が入っています。たぶん引数エラー時に exit をつけただけです。 twoline.rb 見て思ったんですが眠い時に書いたスクリプトとしては異例な小綺麗さでびっくりしました。

twoline

エクセルなんかで、 1, 2 とならんでいるセルを引っ張ると 3, 4, 5... と補われるわけですけど、あれをやろうというおはなしです。

twoline.rb はコマンドラインアプリで、

./twoline.rb hoge1C hoge2D

などとすると hoge3E が出力されるはずの物体です。

bind ^r eval 'stuff "^P^E)^A=(echo ^A^K^P^A=(echo ^E) ^Y^A twoline -t -f -n ^E > /tmp/screen-twoline ^M"' 'stuff "`cat /tmp/screen-twoline`^I"'

追記: いくらか screen script をマシにしました。依然としてリダイレクトはおかしくなる。

bind ^r eval "stuff '^P^E\" ^A\"^A^K^P^A\"^E\" ^Y^A twoline -t -n ^E > /tmp/screen-twoline ^M'" "stuff '`cat /tmp/screen-twoline`^I'"

などと screen & zsh 上で書いてやると、 echo 1, echo 2 を実行した後に ^T^R と押すと echo 3 が現れます。(screen よくわかってないのでまだいくらかヘンです)

こういったものは既にあるのでしょうか。探してみて無さそうだったら emacs からも使ってみることにします。

ちなみに雑な プロモーションムービー

もいっこちなみに

class NumberSequence
  def match(str)
    str =~ /^\d+$/
  end
  def next(str)
    (str.to_i + 1).to_s
  end
end

こういうものを書いてやれば次々にルールを作成することができます。

この世の代表的なプログラミング言語

は以下の十個に決定しました。

Smalltalk, LISP, Java, Prolog, PASCAL, FORTRAN, COBOL, BASIC, LOGO, アセンブリー言語

sumim さんとこの記述 (http://d.hatena.ne.jp/sumim/20040408#p2) について Zinnia さんと探索したところこれだけの言語が広辞苑に載っていたからです。まだあるかもしれません。 C/C++ はダメです。理由はしりません。ちなみに広辞苑のプログラム言語の項には、「フォートラン・C・スモールトーク・リスプなどがある」と書いてあります。

ウィキペディア によると、

Ada, BASIC, C, C++, COBOL, FORTRAN, Java, JavaScript, Perl, Lisp, Pascal, Prolog, Python, 正規表現, HTML等のマークアップ言語も、プログラミング言語の一種に分類される場合がある

私の感覚からすると割に常識的。 C# がいないか。

はてなプログラミング言語 (キーワード)。

C言語, C++, C#, Basic, VB, Delphi, D言語, Fortran, COBOL, HSP, lisp, Java, Javascript, LOGO, Objective-C, Pascal, Perl, Prolog, Python, PHP, ruby, Smalltalk, TTS, 日本語プログラム言語「ひまわり」, Processing

最後の三つが強烈だね。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h