VSCode 用のキーの設定を行う拡張機能です。
Configuration parameter | Description |
---|---|
vscode_target | VSCode 用のキーバインドを利用するアプリケーションソフトを指定する |
vscode_prefix_key | 置き換えするプレフィックスキーの組み合わせ(VSCode のキー、Fakeymacs のキー)を指定する(複数指定可) |
use_ctrl_atmark_for_mark | 日本語キーボードを利用する際、VSCode で C-@ をマーク用のキーとして使うかどうかを指定する |
use_direct_input_in_vscode_terminal | VSCode の Terminal内 で 4つのキー(C-k、C-r、C-s、C-y)のダイレクト入力機能を使うかどうかを指定する |
esc_mode_in_keyboard_quit | keyboard_quit 関数コール時の Esc キーの発行方法を指定する |
※ vscode_target 変数の初期値には、ブラウザのアプリケーションソフトも複数指定しています。 これは、ブラウザで github1s.com にアクセスしたときに VSCode 用のキーバインドを利用できる ようにするためです。github1s.com については、次の記事を参考としてください。
※ vscode_prefix_key 変数は、VSCode のプレフィックスキーを使う際、後に入力した文字が全角文字で 入力されることがある問題を対策するために設けた設定です。
※ use_ctrl_atmark_for_mark 変数は、VSCode で C-@ を Toggle Terminal 用のキーとして使えるように するために設けた設定です。 初期値は False としており、C-@ を Toggle Terminal 用のキーとして使えるようにしています。 True に設定した場合でも Toggle Terminal 用のキーとして C-<半角/全角> が使えます。
※ use_direct_input_in_vscode_terminal 変数は初期値を False(使わない)としており、 仕様を理解した方のみ使う機能としています。use_direct_input_in_vscode_terminal 変数を True に した際の仕様については、以降の説明を参照してください。
※ esc_mode_in_keyboard_quit 変数の設定値には、次のいずれかの値を指定できます。
- 1:Esc キーを常に発行する
- 2:C-g を2回連続して押下した場合に Esc キーを発行する
設定値 2 の利用は、VSCode で Jupyter Notebook を使う場合などを想定しています。 設定値 1 の場合でも、C-A-g キーにより Esc キーを発行しない keyboard_quit を利用できます。
※ esc_mode_in_keyboard_quit 変数の設定は、vscode_target 変数で指定する全てのアプリケーション ソフトに影響します。vscode_target 変数にブラウザアプリを指定している場合には、そこにも影響 しますので、ご留意ください。
VSCode’s prefix key | Fakeymacs’s prefix key | Description |
---|---|---|
C-k | C-A-k | |
vscode_prefix_key[n][0] の設定値 | vscode_prefix_key[n][1] の設定値 |
※ Fakeymacs のプレフィックスキーを利用することにより、プレフィックスキーの後に入力するキーが 全角文字で入力されることが無くなります。
Keybind | Function | VSCode Command | Description |
---|---|---|---|
Ctl-x C-f | find_file | File: Open File… | Fakeymacs 標準機能(参考記載) |
Ctl-x C-d | find_directory | File: Open Folder… | |
Ctl-x C-r | recentf | File: Open Recent… | |
Ctl-x C-l | locate | Go to File… |
Keybind | Function | VSCode Command | Description |
---|---|---|---|
M-g p | previous_error | Go to Previous Problem in Files (Error, Warning, Info) | |
M-g M-p | previous_error | Go to Previous Problem in Files (Error, Warning, Info) | |
M-g n | next_error | Go to Next Problem in Files (Error, Warning, Info) | |
M-g M-n | next_error | Go to Next Problem in Files (Error, Warning, Info) | |
Ctl-x ` | next_error | Go to Next Problem in Files (Error, Warning, Info) | |
A-p | self_insert_command(“C-Up”) | - | キーバインドの置き換え |
A-n | self_insert_command(“C-Down”) | - | キーバインドの置き換え |
Keybind | Function | VSCode Command | Description |
---|---|---|---|
Ctl-x k | kill_buffer | View: Close Editor | github1s でなければ、A-k も利用可能 |
Ctl-x b | switch_to_buffer | View: Quick Open Privious Recently Used Editor in Group | |
Ctl-x C-b | list_buffers | View: Show All Editors By Most Recently Used |
Keybind | Function | VSCode Command | Description |
---|---|---|---|
Ctl-x 0 | delete_group | View: Close All Editors in Group | |
Ctl-x 1 | delete_other_groups | View: Close Editors in Other Groups | |
Ctl-x 2 | split_editor_below | View: Split Editor Orthogonal | |
Ctl-x 3 | split_editor_right | View: Split Editor | |
Ctl-x 4 | rotate_layout | Toggle Vertical/Horizontal Editor Layout | |
Ctl-x o | other_group | View: Navigate Between Editor Groups | |
C-<数字キー> | switch_focus(<数字キーの値>) | View: Focus Side Bar or n-th Editor Group | |
C-A-<数字キー> | switch_focus(<数字キーの値>) | View: Focus Side Bar or n-th Editor Group |
※ C-<数字キー> は、use_ctrl_digit_key_for_digit_argument 変数が False(初期値)の場合に機能します。 True の場合(C-<数字キー> は数引数の指定用として使われる)には、代わりに C-A-<数字キー> が機能する ようにしています。
Keybind | Function | VSCode Command or Command ID | Description |
---|---|---|---|
C-A-p | mark_previous_line | cursorColumnSelectUp | |
C-A-n | mark_next_line | cursorColumnSelectDown | |
C-A-b | mark_backward_char | cursorColumnSelectLeft or cursorLeftSelect | |
C-A-f | mark_forward_char | cursorColumnSelectRight or cursorRightSelect | |
C-A-S-b | mark_backward_word | cursorWordLeftSelect | |
C-A-S-f | mark_forward_word | cursorWordRightSelect | |
C-A-a | mark_beginning_of_line | cursorHomeSelect | |
C-A-e | mark_end_of_line | cursorEndSelect | |
C-A-d | mark_next_like_this | Add Selection To Next Find Match | |
C-A-S-d | mark_all_like_this | Select All Occurrences of Find Match | |
C-A-s | skip_to_next_like_this | Move Last Selection To Next Find Match | |
C-A-S-s | skip_to_previous_like_this | Move Last Selection To Previous Find Match | 多くは C-A-u で代用可 |
C-A-x | expand_region | Expand Selection | |
C-A-S-x | shrink_region | Shrink Selection | 多くは C-A-u で代用可 |
C-A-u | cursor_undo | Cursor Undo | |
C-A-r | cursor_redo | Cursor Redo | |
C-A-g | keyboard_quit2 | - | Esc キーを発行しない keyboard_quit |
※ マルチカーソルを維持したまま選択したリージョンを解除するには、Esc キーを発行しない keyboard_quit(C-A-g)を利用してください。(esc_mode_in_keyboard_quit 変数が 2 の場合は、 連続入力しない C-g を利用することもできます。)
※ 「矩形選択 / マルチカーソル」の機能については、次のページを参考としてください。
- https://www.atmarkit.co.jp/ait/articles/1805/11/news022.html
- https://code.visualstudio.com/docs/editor/codebasics#_column-box-selection
- https://code.visualstudio.com/docs/editor/codebasics#_multiple-selections-multicursor
※ 次の VSCode の Extension をインストールすると、この「矩形選択 / マルチカーソル」の機能が より有用なものとなります。
- https://marketplace.visualstudio.com/items?itemName=dbankier.vscode-quick-select
- https://marketplace.visualstudio.com/items?itemName=tomoki1207.vscode-input-sequence
- https://marketplace.visualstudio.com/items?itemName=Asuka.insertnumbers
キーバインドの設定は次の拡張機能の中で行っています。
Keybind | Function | VSCode Command | Description |
---|---|---|---|
C-~ (C-S-`) | create_terminal | View: Toggle Terminal -like | US Keyboard の場合 |
C-` | toggle_terminal | Terminal: Create New Integrated Terminal | US Keyboard の場合 |
Keybind | Function | VSCode Command | Description |
---|---|---|---|
C-` (C-S-@) | create_terminal | View: Toggle Terminal -like | JIS Keyboard の場合 |
C-@ | toggle_terminal | Terminal: Create New Integrated Terminal | JIS Keyboard の場合 |
C-S-<半角/全角> | create_terminal | View: Toggle Terminal -like | JIS Keyboard の場合 |
C-<半角/全角> | toggle_terminal | Terminal: Create New Integrated Terminal | JIS Keyboard の場合 |
※ C-@ は、use_ctrl_atmark_for_mark が False の場合に機能します。
※ use_direct_input_in_vscode_terminal 変数を True にしている場合には、上記のいずれかのキーを押下して ターミナルに移行することで、4つのキー(C-k、C-r、C-s、C-y)のダイレクト入力ができるようになります。 use_direct_input_in_vscode_terminal 変数が False(初期値)の場合でも、side_of_ctrl_key 変数で設定した 側でない Ctrl キーを使うか C-q を前置することで、4つのキーのダイレクト入力を行うことができます。
※ ターミナルで C-k を利用できるようにするには、VSCode の 設定で terminal.integrated.allowChords を false にする必要があります。
※ ターミナルで C-s を利用できるようにするには、bash で stty stop undef の設定をする必要があります。 この設定をしないでこのキーを押下すると stop から戻れなくなりますのでご注意ください。
※ use_direct_input_in_vscode_terminal 変数を True にしている場合に Terminal から抜ける場合は、 次のキーを利用するようにしてください。先に説明した4つのキーが VSCode のショートカットキーとして 認識されるように戻ります。
Keybind | Function | VSCode Command | Description |
---|---|---|---|
C-` | toggle_terminal | Terminal: Create New Integrated Terminal | US Keyboard の場合 |
C-@ | toggle_terminal | Terminal: Create New Integrated Terminal | JIS Keyboard の場合 |
C-<半角/全角> | toggle_terminal | Terminal: Create New Integrated Terminal | JIS Keyboard の場合 |
Ctl-x o | other_group | Navigate Between Editor Groups | |
C-<数字キー> | switch_focus(<数字キーの値>) | Focus Side Bar or n-th Editor Group | |
C-A-<数字キー> | switch_focus(<数字キーの値>) | Focus Side Bar or n-th Editor Group |
※ マウスのクリックでカーソル位置の変更を行うと、この状態の認識に齟齬が発生することがあります。 その場合は、上記のいずれかのキーを押下することにより、Fakeymacs に現在の状態を再認識させるように してください。
Keybind | Function | VSCode Command | Description |
---|---|---|---|
M-x | execute_extended_command | Show All Commands | |
M-; | comment_dwim | Toggle Line Comment | |
C-’ | trigger_suggest | Trigger Suggest | US Keyboard の場合 |
C-: | trigger_suggest | Trigger Suggest | JIS Keyboard の場合 |
※ Meta(M-)で Esc を利用したい場合には、use_esc_as_meta 変数を True にしてください。 True にした場合に Esc を入力するには、Esc を二回押下してください。
※ IntelliSense の機能については、次のページを参考としてください。
VSCode のコマンドを実行する関数を返す。
この関数を使うことにより、ショートカットキーが割り当てられていない VSCode のコマンドでも、 Fakeymacs から実行できるようにしています。
def vscodeExecuteCommand(command):
Parameter | Description |
---|---|
command | VSCode の Command Palette で実行するコマンドの文字列(短縮形の場合も有り) |
- 引数で指定したコマンドを実行する関数
● 本フォルダにある _config_personal.py を config_personal.py というファイル名にすることで 機能拡張ファイルとして機能します。vscode_key Extension の機能を拡張する際にご利用ください。
● side_of_ctrl_key 変数で設定した側でない Ctrl キーを使う、C-q を前置する、vscode_prefix_key で指定した Fakeymacs 用のプレフィックスキーを使うことで、VSCode 本来のショートカットキーを 入力することもできます。VSCode のショートカットキーは、次のページで詳しく紹介されています。
● vscodeExecuteCommand 関数内では日本語入力モードの切り替えを行っているのですが、Google 日本語入力を利用して入力モードのポップアップを表示する設定にしている場合、このポップアップが 何度も表示される症状が発生するようです。このため、ポップアップを非表示にする設定にしてご利用 ください。
● ブラウザで github1s.com を指定した際に開く VSCode の画面では、M-k や Ctl-x k で 発行している C-F4 がブラウザ側でキャッチされ、ブラウザのタブを閉じようとしてしまいます。 このため、vscode_target 変数に指定したブラウザで github1s.com を開いて Ctl-x k を実行した 場合には、コマンドパレットで View: Close Editor を実行するようにし、VSCode の機能が働くように しています。 M-k は 従来どおり C-F4 を発行するのみの機能としていますので、github1s.com を利用する場合 には、M-k と Ctl-x k を使い分けるようにしてください。 (この対応により、ブラウザで github1s.com を開いていない場合に Ctl-x k を発行すると、 おかしな動き(F1 の実行により、ヘルプの画面が表示される)となります。ご留意ください。)
● ブラウザで github1s.com を指定した際に開く VSCode の画面では、Ctl-x b で発行している C-Tab がブラウザ側でキャッチされ、ブラウザのタブを切り替えてしまいます。 このため、vscode_target 変数に指定したブラウザで github1s.com を開いて Ctl-x b を実行した 場合には、コマンドパレットで View: Quick Open Privious Recently Used Editor in Group を 実行するようにし、VSCode の機能が働くようにしています。 C-Tab は 従来どおりブラウザで機能しますので、github1s.com を利用する場合には、C-Tab と Ctl-x b を使い分けるようにしてください。 (この対応により、ブラウザで github1s.com を開いていない場合に Ctl-x b を発行すると、 おかしな動き(F1 の実行により、ヘルプの画面が表示される)となります。ご留意ください。)
● proxy サーバ配下の環境にある PC で Remote-WSL を使った場合、WSL に接続するまでに時間が 掛かる問題が発生していました。次のページで紹介してある設定を行ったところ改善しましたので、 紹介しておきます。