はじめに
macOS上では、emacs
のキーバインドが一部利用できて便利です。このキーバインドは大抵のテキストエデットアプリには、対応しているのですが、MicrosoftのOffice系アプリでは、これを使うことができません。うっかり慣れで、Ctrl+Hなどを押してしまうと、他の機能が動いてしまいます。
OfficeでEmacs
macOSで、キーバインドのカスタマイズを行おうと思った際にkarabiner-elements
というアプリが有名です。これを使ってOfficeでemacsを利用できるようにしていきます。
設定は、~/.config/karabiner/assets/complex_modifications/xxxxxx.json
(xは数字)にファイルを作成し、以下のように記述します。尚この設定は、Ctrl+H,B,N,P,E,A,Dをサポートしていますが必要に応じて書き換えてください。
1{
2 "title": "MS-Office de Emacs key",
3 "rules": [
4 {
5 "description": "MS-Office de Emacs key",
6 "manipulators": [
7 {
8 "type": "basic",
9 "from": {
10 "key_code": "b",
11 "modifiers": {
12 "mandatory": [
13 "control"
14 ]
15 }
16 },
17 "to": [
18 {
19 "key_code": "left_arrow"
20 }
21 ],
22 "conditions": [
23 {
24 "type": "frontmost_application_if",
25 "bundle_identifiers": [
26 "^com\\.microsoft\\.Word$",
27 "^com\\.microsoft\\.Excel$",
28 "^com\\.microsoft\\.Powerpoint$"
29 ]
30 }
31 ]
32 },
33 {
34 "type": "basic",
35 "from": {
36 "key_code": "f",
37 "modifiers": {
38 "mandatory": [
39 "control"
40 ]
41 }
42 },
43 "to": [
44 {
45 "key_code": "right_arrow"
46 }
47 ],
48 "conditions": [
49 {
50 "type": "frontmost_application_if",
51 "bundle_identifiers": [
52 "^com\\.microsoft\\.Word$",
53 "^com\\.microsoft\\.Excel$",
54 "^com\\.microsoft\\.Powerpoint$"
55 ]
56 }
57 ]
58 },
59 {
60 "type": "basic",
61 "from": {
62 "key_code": "p",
63 "modifiers": {
64 "mandatory": [
65 "control"
66 ]
67 }
68 },
69 "to": [
70 {
71 "key_code": "up_arrow"
72 }
73 ],
74 "conditions": [
75 {
76 "type": "frontmost_application_if",
77 "bundle_identifiers": [
78 "^com\\.microsoft\\.Word$",
79 "^com\\.microsoft\\.Excel$",
80 "^com\\.microsoft\\.Powerpoint$"
81 ]
82 }
83 ]
84 },
85 {
86 "type": "basic",
87 "from": {
88 "key_code": "n",
89 "modifiers": {
90 "mandatory": [
91 "control"
92 ]
93 }
94 },
95 "to": [
96 {
97 "key_code": "down_arrow"
98 }
99 ],
100 "conditions": [
101 {
102 "type": "frontmost_application_if",
103 "bundle_identifiers": [
104 "^com\\.microsoft\\.Word$",
105 "^com\\.microsoft\\.Excel$",
106 "^com\\.microsoft\\.Powerpoint$"
107 ]
108 }
109 ]
110 },
111 {
112 "type": "basic",
113 "from": {
114 "key_code": "a",
115 "modifiers": {
116 "mandatory": [
117 "control"
118 ]
119 }
120 },
121 "to": [
122 {
123 "key_code": "home"
124 }
125 ],
126 "conditions": [
127 {
128 "type": "frontmost_application_if",
129 "bundle_identifiers": [
130 "^com\\.microsoft\\.Word$",
131 "^com\\.microsoft\\.Excel$",
132 "^com\\.microsoft\\.Powerpoint$"
133 ]
134 }
135 ]
136 },
137 {
138 "type": "basic",
139 "from": {
140 "key_code": "e",
141 "modifiers": {
142 "mandatory": [
143 "control"
144 ]
145 }
146 },
147 "to": [
148 {
149 "key_code": "end"
150 }
151 ],
152 "conditions": [
153 {
154 "type": "frontmost_application_if",
155 "bundle_identifiers": [
156 "^com\\.microsoft\\.Word$",
157 "^com\\.microsoft\\.Excel$",
158 "^com\\.microsoft\\.Powerpoint$"
159 ]
160 }
161 ]
162 },
163 {
164 "type": "basic",
165 "from": {
166 "key_code": "h",
167 "modifiers": {
168 "mandatory": [
169 "control"
170 ]
171 }
172 },
173 "to": [
174 {
175 "key_code": "delete_or_backspace"
176 }
177 ],
178 "conditions": [
179 {
180 "type": "frontmost_application_if",
181 "bundle_identifiers": [
182 "^com\\.microsoft\\.Word$",
183 "^com\\.microsoft\\.Excel$",
184 "^com\\.microsoft\\.Powerpoint$"
185 ]
186 }
187 ]
188 },
189 {
190 "type": "basic",
191 "from": {
192 "key_code": "d",
193 "modifiers": {
194 "mandatory": [
195 "control"
196 ]
197 }
198 },
199 "to": [
200 {
201 "key_code": "delete_forward"
202 }
203 ],
204 "conditions": [
205 {
206 "type": "frontmost_application_if",
207 "bundle_identifiers": [
208 "^com\\.microsoft\\.Word$",
209 "^com\\.microsoft\\.Excel$",
210 "^com\\.microsoft\\.Powerpoint$"
211 ]
212 }
213 ]
214 }
215 ]
216 }
217 ]
218}