Sublime Text 2のWindows版を,ほんの少しだけemacs風にキーカスタマイズする話です.

SublimeText2のキーカスタマイズ

今まで,Windows版の Danaテキストエディタ を,右手をホームポジションからあまり動かさなくてもすむように,少しemacs風にカスタマイズして使っていました.(正確には,X68000のμEmacs風)

要するに,カーソルキーやBackspace,Delキーを押さなくてすむようにしていました.

今回,諸事情によりSublime Text 2を使うことにしたのですが,それでも同じように使えるようにキーをカスタマイズしましたので, その設定を書いてみます.Windows版の想定です.Mac版はある程度デフォルトでそういうキーバインドになっているため,一部は不要だと思います.

※本当にemacs風に使いたい人は,sublemacspro を使うのが良いと思います.このページは,あくまで自分でほんの少しだけカスタマイズしようというレベルの話です.

カーソル移動:上下左右

{ "keys": ["ctrl+f"], "command": "move", "args": {"by": "characters", "forward": true } },
{ "keys": ["ctrl+b"], "command": "move", "args": {"by": "characters", "forward": false } },
{ "keys": ["ctrl+p"], "command": "move", "args": {"by": "lines", "forward": false } },
{ "keys": ["ctrl+n"], "command": "move", "args": {"by": "lines", "forward": true } },
{ "keys": ["shift+ctrl+f"], "command": "move", "args": {"by": "characters", "forward": true, "extend": true} },
{ "keys": ["shift+ctrl+b"], "command": "move", "args": {"by": "characters", "forward": false, "extend": true } },
{ "keys": ["shift+ctrl+p"], "command": "move", "args": {"by": "lines", "forward": false, "extend": true } },
{ "keys": ["shift+ctrl+n"], "command": "move", "args": {"by": "lines", "forward": true, "extend": true } },
shift併用で,選択範囲を指定しながら移動します.

Danaには「範囲選択を開始する」という機能があって,それをキーに割り当てれば良かったのですが,Sublime Text 2ではそれができるかどうかわからなかったので,Shift併用の操作にしています.

カーソル移動:ページ上下

{ "keys": ["ctrl+v"], "command": "move", "args": {"by": "pages", "forward": true } },
{ "keys": ["ctrl+z"], "command": "move", "args": {"by": "pages", "forward": false } },
{ "keys": ["shift+ctrl+v"], "command": "move", "args": {"by": "pages", "forward": true, "extend": true } },
{ "keys": ["shift+ctrl+z"], "command": "move", "args": {"by": "pages", "forward": false, "extend": true } },

カーソル移動:その行の先頭/末尾

{ "keys": ["ctrl+a"], "command": "move_to", "args": {"to": "hardbol", "extend": false} },
{ "keys": ["ctrl+e"], "command": "move_to", "args": {"to": "eol", "extend": false} },
{ "keys": ["shift+ctrl+e"], "command": "move_to", "args": {"to": "eol", "extend": false, "extend": true } },
ctrl+a(その行の先頭位置)は個人的な好みで,bolではなくhardbolにしています.bolはインデントを飛ばした先頭位置ですが,hardbolは0桁目です.

編集

{ "keys": ["ctrl+h"], "command": "left_delete" },
{ "keys": ["ctrl+d"], "command": "right_delete" },
{ "keys": ["ctrl+o"], "command": "insert", "args": {"characters": "\n"} },
{ "keys": ["ctrl+k"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete to Hard EOL.sublime-macro"} },
{ "keys": ["ctrl+u"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete to Hard BOL.sublime-macro"} }
ctrl+oは,現在行に空行を挿入.ctrl+kは,カーソル位置からその行の末尾まで削除.ctrl+uは,カーソル位置からその行の先頭まで削除.

その他

{ "keys": ["alt+u"], "command": "undo" },
{ "keys": ["alt+shift+u"], "command": "redo" },
{ "keys": ["ctrl+y"], "command": "paste" },
{ "keys": ["f5"], "command": "show_panel", "args": {"panel": "find"} },
元々のやりたいこととはあまり関係ないのですが,ctrl+zを使ってしまったのでundoを他のキーに割り当てるなど.

フォント

"font_face": "MS ゴシック",
"font_size": 10.0,
"draw_white_space": "all"
Windows版なので設定.これはSettings-Userに入れます.


© 2024 KMIソフトウェア