2020年7月6日月曜日

テキストエディタMeryでEmacsキーバインド

アドオンの開発は、Adobe Bracketsを使用するようになりましたが、ちょっとしたメモなどには、サクッと起動できるMeryを使用しています。

Bracketsは、先日、Emacsキーバインドを導入+改造しましたが、Meryもマクロを作ればできるようなのでやってみました。最低限これだけあればというものは用意できて、なかなかいい感じになったかなと思います。

ここに公開しますので、もし必要な方がいましたら、ご自由にお使いください。

動作確認は、Mery Ver 3.0.4でしています。

マークを実現するために、「Document.Tag」プロパティを使用しています。これは、Ver 3.0.0で追加されたものなので、リリース版(Ver 2.6.7)では動作しないのでご注意ください。Ver 3.0.4以降での使用をおすすめします。

■ダウンロード:
Mery 3.0.4

Emacsキーバインド用マクロ


Emacsキーバインド用マクロ

作成したマクロは以下です。マクロをMeryに読み込んで、キーを割り当ててください。キーアサイン例には、私がしたキーアサインを書いています。C-x C-sなどの2ストロークのキーバインドは、Meryの仕組み上、難しそうなので見送りました。
v1.1で一部の2ストロークキーに対応しました。「テキストエディタMeryでEmacsキーバインド (2)」もご確認ください。

マクロ
動作
キーアサイン例
beginning-of-line.js
行頭にカーソルを移動
C-a
end-of-line.js
行末にカーソルを移動
C-e
forward-char.js
一文字右にカーソルを移動
C-f
backward-char.js
一文字左にカーソルを移動
C-b
next-line.js
次の行にカーソルを移動
C-n
previous-line.js
前の行にカーソルを移動
C-p
kill-line.js
カーソル位置から行末までをカット
C-k
delete-char.js
カーソル右を一文字削除
C-d
delete-backward-char.js
カーソル左を一文字削除
C-h
set-mark-command.js
カーソル位置をマーク
C-SPACE
kill-region.js
マークからカーソル位置までをカット。範囲選択している場合は、その部分をカット。
C-w
kill-ring-save.js
マークからカーソル位置までをコピー。範囲選択している場合は、その部分をコピー。
Alt-w
beginning-of-buffer.js
バッファ(現在のタブ)の先頭にカーソルを移動
Alt-<
(Alt-Shift-,)
end-of-buffer.js
バッファ(現在のタブ)の末尾にカーソルを移動
Alt->
(Alt-Shift-.)
yank.js
ペースト
C-y
undo.js
アンドゥ
C-/

yank.jsやundo.jsなどは、Meryの既存のコマンド(C-v, C-z)のキーアサインを置き換えてもいいのですが、それだともとのアサインがつぶされてしまうので、もとのアサインも使えるようにマクロを用意しました。(C-vでもC-yでもペーストできる)


設定の仕方

まず、ダウンロードしたmery-emacs.zipを解凍して、適当なディレクトリに置いてください。私はMeryのインストールフォルダにある「Macros」フォルダに置きました。

次に、Meryを立ち上げ、マクロ→カスタマイズを選択します。すると、以下のダイアログが表示されます。
(すでにマクロが読み込まれている表示になっていますが、実際には、この段階ではデフォルトのマクロしか表示されません)


ダイアログが開いたら、追加ボタンを押し、必要なマクロファイルをすべて追加してください。上記のように、マクロが表示されたら、OKを押してダイアログを閉じます。

なお、各マクロのチェックボックスをチェックすると、マクロメニューに追加され、メニューから呼び出せるようになります。今回は、ショートカットキーで使うので、ここはチェックしなくてもよいです。「イベントで実行」も同様に、チェック不要です。

マクロが登録できたら、各マクロにショートカットキーを割り当てていきます。ツール→オプションを選択してください。オプションダイアログが表示されるので、左側で「キーボード」を選択し、カテゴリで「マクロ」を選択します。すると、以下のように、先ほど追加したマクロが表示されると思います。


コマンド欄でキーアサインを設定したマクロを選択した後、新しいキー欄にカーソルを持っていきます。ここで、C-pなどの割り当てたいキーを押してください。すると、押したキーが表示されるので、問題がなければ、割り当てを押してください。

これで、キーアサインがされたことになるので、ほかのマクロも同様にキーを割り当ててください。

現在の割り当て欄に何か表示された場合は、すでにこのキーアサインが使用されています。マクロに割り当てると、元のキーアサインは使えなくなります。必要に応じて、別のキーを割り当てるなどしてください。私は、それほど使用頻度の高いものではなかったので、全部つぶしてしまいました。


注意事項

お約束ですが、このマクロを使用して何か問題が起きても責任はとれないので、ご理解ください。また、私が使用するのに必要な機能を実装したので、厳密にはEmacsの動作と異なる部分があるかもしれません。

0 件のコメント:

人気の投稿(過去7日間)