emacsで速攻ワンライナーを動かす itaqunai~いたくない~

| コメント(0) | トラックバック(0)

elispで作ってみました。

emacsの編集画面でワンライナーを実行し結果が下の行に張り付きます。

lisp-interaction-modeの機能劣化版みたいなものです。

できることは2つ

  • ワンライナー(1行コード)
  • マルチラインライナー(複数行コード)

GitHubのページ

できることその1:ワンライナー

  1. コードを書く
    編集画面(current-buffer)に

    print "Hello World !"
    
  2. M-x itaqunai-exec とする
    行は移動せずそのまま

  3. 下の行に結果が表示される!

    "Hello World !"
    

できることその2:複数行指定

  1. コードを書く
    編集画面(current-buffer)に

    str="Hello World !"
    print str
    
  2. MarksetC-Spaceで指定部分を選択する

    (markset start)
    str="Hello World !"
    print str
    (markset end)
    
  3. M-x itaqunai-exec とする

  4. 下の行に結果が表示される!

    "Hello World !"
    

cliで動く各種スクリプト言語で動作します。

  • bash
  • perl
  • php
  • ruby
  • python
  • javascript with node.js
  • markdown

その他、拡張はご自由に!

Installation

1.ロードパスへの設置

https://raw.github.com/mukaer/emacs-hash-lib/master/hash-lib.el
https://raw.github.com/mukaer/emacs-itaqunai/master/itaqunai.el

2..emacsの記載

lisp
 (require 'itaqunai)

 ;各種パスの指定
 (setq itaqunai-config 
   (append-hash itaqunai-config 
       (list-to-hash 
        '(
          ruby-mode '("command" "~/.rbenv/shims/ruby"
              "header_befor_search"  "^[ \t]*\\(require\\)\s \\('\\|\"\\)\\(\\w \\)\\('\\|\"\\)"
              "header"   ""
              "footer"   ""
              )
            php-mode  '("header_befor_search" '("1" "^[ \t]*\\(require\\)\s \\('\\|\"\\)\\(\\w \\)\\('\\|\"\\)"
                           "2" "^[ \t]*\\(include\\)\s \\('\\|\"\\)\\(\\w \\)\\('\\|\"\\)"
                           )
                    )
            )))

 ;一時ファイルの作成場所指定
 (setq itaqunai-tmp-script-file
   "/dev/shm/itaqunai-tmp-script-file")

3.キーバインドの設定(自分C-jに割り当てました。)

lisp
;例 ruby-mode C-j割り当て
 (add-hook 
     'ruby-mode-hook
         '(lambda ()
             (define-key ruby-mode-map (kbd "C-j") 'itaqunai-exec)
     ))

FAQ

  • 無限ループで固まった
    C-gで抜けましょう。

todo

  • 'C-u (universal-argument)' に対応
  • major-mode 化?
  • 変数などを格納した場合保持する?
    その際 print系は削除する。 あとはエラー処理が必要かなぁ・・・
  • ↑の機能で、ブロックなど簡単に取り込めるように?
    rubyだと if end php if{ }

おわり

これで、開発からblog更新まで捗ること間違いなし!

関連記事

トラックバック(0)

トラックバックURL: http://mukaer.com/cgi-bin/mt/mt-tb.cgi/71

コメントする

PR

PR





検索

Loading

メニュー

twitter