Emacs 用のコピー・パッケージ fcopy を MELPA に登録した。
fcopy とは?
奇妙なコピーという意味で Funny Copy と名付けた。略して fcopy。
普通のコピーは「コピーする対象」を「コピー」してから「貼り付け場所」に移動して「ペースト」を行なう。
fcopy は手順が逆になる。今、カーソルのある場所が「貼り付け場所」。先に「貼り付け場所」が決まってる。この前提で fcopy コマンドを実行 (M-x fcopy) すると、「コピーする対象」を探す・選択するモード (fcopy-mode) に移行する。「コピーする対象」を選んで RET を押すと、「貼り付け場所」(fcopy を始めた場所) に自動的に戻って「ペースト」が実行される。
対話的に「挿入」を行なう、とも言える。interactive-insert とかに名前を変えようかと思ったけど、ぼくの意識は「挿入」よりも「コピー」なので、fcopy という名前を使い続けてる。
fcopy-mode では、いくつかワンストロークのコマンドも用意している:
- バッファーへの書き込みは禁止され、誤編集ができなくなる
- 代わりに SPACE キーでスクロール、f キーでワード単位の移動、. (ピリオド) でマーク
- ( で括弧単位のコピー (括弧含む)、) で括弧の中身のコピー
- C-g で元の場所に戻って fcopy の終了、q でその場で fcopy の終了
詳しくは、過去記事 clmemo@aka: Fcopy.el ver.6.0 リリース や ataka/fcopy の README をどうぞ。
インストール
Emacs 24 系なら MELPA からインストールできる。
MELPA の準備:
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
M-x package-list-packages でパッケージ一覧を取得して、fcopy を探して RET。Install ボタンの上で RET。これでインストール終了。
適当なキーに割り当てる:
(global-set-key "\C-ck" 'fcopy)
もし古い fcopy.el があるようなら、消除を忘れずに。
過去からの変更点
MELPA に登録したことで、バージョン番号を 7.0 へ上げた。主な変更点は 2 つ。
- fcopy というコマンドを用意した (もう fcopy-mode は直接呼ばない)
- fmodify というペースト直前に編集を行なうコードをなくした
あとがき
fcopy は、今やぼくが Emacs を使う時になくてはならないパッケージになった。今まで、新しい環境に移るたびに fcopy.el をダウンロードしてインストールしていたけれど、Emacs のパッケージ・システムを使えばそんな手間をかける必要もなくなる。
修正も github に push すれば、他の環境にパッケージ・システム経由でアップデートできる。便利になった。自分が一番喜んでいる。
これからは、古い Emacs でも動くようにコードをレガシー対応させるつもり。というのも、以前、リモートでログインした環境に Mule 2 (Emacs 19 相当) しか入ってなくて泣きそうな目にあったから。他のパッケージは最新 Emacs で動けばいいと割り切ってるけど、fcopy だけはどの環境でも動いてくれないとぼくがツラい。緊急性は低いので、ゆっくりやってくつもり。
もちろん、他の機能強化項目があれば手を付ける。
Funny Copy。どうぞ、よろしく。