elispで作ってみました。
emacsの編集画面でワンライナーを実行し結果が下の行に張り付きます。
lisp-interaction-modeの機能劣化版みたいなものです。
できることは2つ
- ワンライナー(1行コード)
- マルチラインライナー(複数行コード)
できることその1:ワンライナー
コードを書く
編集画面(current-buffer)にprint "Hello World !"
M-x itaqunai-exec
とする
行は移動せずそのまま下の行に結果が表示される!
"Hello World !"
できることその2:複数行指定
コードを書く
編集画面(current-buffer)にstr="Hello World !" print str
Markset
C-Space
で指定部分を選択する(markset start) str="Hello World !" print str (markset end)
M-x itaqunai-exec
とする下の行に結果が表示される!
"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
phpif{ }
おわり
これで、開発からblog更新まで捗ること間違いなし!
コメントする