Skip to content

Latest commit

 

History

History
 
 

vscode_key

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Fakeymacs extension

■ VSCode 用のキーの設定を行う

VSCode 用のキーの設定を行う拡張機能です。

コンフィグレーションパラメータ

Configuration parameterDescription
vscode_targetVSCode 用のキーバインドを利用するアプリケーションソフトを指定する
vscode_prefix_key置き換えするプレフィックスキーの組み合わせ(VSCode のキー、Fakeymacs のキー)を指定する(複数指定可)
use_ctrl_atmark_for_mark日本語キーボードを利用する際、VSCode で C-@ をマーク用のキーとして使うかどうかを指定する
use_direct_input_in_vscode_terminalVSCode の Terminal内 で 4つのキー(C-k、C-r、C-s、C-y)のダイレクト入力機能を使うかどうかを指定する
esc_mode_in_keyboard_quitkeyboard_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 用プレフィックスキーの置き換え設定

VSCode’s prefix keyFakeymacs’s prefix keyDescription
C-kC-A-k
vscode_prefix_key[n][0] の設定値vscode_prefix_key[n][1] の設定値

※ Fakeymacs のプレフィックスキーを利用することにより、プレフィックスキーの後に入力するキーが 全角文字で入力されることが無くなります。

● 「ファイル操作」のキー設定

KeybindFunctionVSCode CommandDescription
Ctl-x C-ffind_fileFile: Open File…Fakeymacs 標準機能(参考記載)
Ctl-x C-dfind_directoryFile: Open Folder…
Ctl-x C-rrecentfFile: Open Recent…
Ctl-x C-llocateGo to File…

● 「カーソル移動」のキー設定

KeybindFunctionVSCode CommandDescription
M-g pprevious_errorGo to Previous Problem in Files (Error, Warning, Info)
M-g M-pprevious_errorGo to Previous Problem in Files (Error, Warning, Info)
M-g nnext_errorGo to Next Problem in Files (Error, Warning, Info)
M-g M-nnext_errorGo to Next Problem in Files (Error, Warning, Info)
Ctl-x `next_errorGo to Next Problem in Files (Error, Warning, Info)
A-pself_insert_command(“C-Up”)-キーバインドの置き換え
A-nself_insert_command(“C-Down”)-キーバインドの置き換え

● 「バッファ / ウィンドウ操作」のキー設定

KeybindFunctionVSCode CommandDescription
Ctl-x kkill_bufferView: Close Editorgithub1s でなければ、A-k も利用可能
Ctl-x bswitch_to_bufferView: Quick Open Privious Recently Used Editor in Group
Ctl-x C-blist_buffersView: Show All Editors By Most Recently Used

● 「エディタ操作」のキー設定

KeybindFunctionVSCode CommandDescription
Ctl-x 0delete_groupView: Close All Editors in Group
Ctl-x 1delete_other_groupsView: Close Editors in Other Groups
Ctl-x 2split_editor_belowView: Split Editor Orthogonal
Ctl-x 3split_editor_rightView: Split Editor
Ctl-x 4rotate_layoutToggle Vertical/Horizontal Editor Layout
Ctl-x oother_groupView: 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-<数字キー> が機能する ようにしています。

● 「矩形選択 / マルチカーソル」のキー設定

KeybindFunctionVSCode Command or Command IDDescription
C-A-pmark_previous_linecursorColumnSelectUp
C-A-nmark_next_linecursorColumnSelectDown
C-A-bmark_backward_charcursorColumnSelectLeft or cursorLeftSelect
C-A-fmark_forward_charcursorColumnSelectRight or cursorRightSelect
C-A-S-bmark_backward_wordcursorWordLeftSelect
C-A-S-fmark_forward_wordcursorWordRightSelect
C-A-amark_beginning_of_linecursorHomeSelect
C-A-emark_end_of_linecursorEndSelect
C-A-dmark_next_like_thisAdd Selection To Next Find Match
C-A-S-dmark_all_like_thisSelect All Occurrences of Find Match
C-A-sskip_to_next_like_thisMove Last Selection To Next Find Match
C-A-S-sskip_to_previous_like_thisMove Last Selection To Previous Find Match多くは C-A-u で代用可
C-A-xexpand_regionExpand Selection
C-A-S-xshrink_regionShrink Selection多くは C-A-u で代用可
C-A-ucursor_undoCursor Undo
C-A-rcursor_redoCursor Redo
C-A-gkeyboard_quit2-Esc キーを発行しない keyboard_quit

※ マルチカーソルを維持したまま選択したリージョンを解除するには、Esc キーを発行しない keyboard_quit(C-A-g)を利用してください。(esc_mode_in_keyboard_quit 変数が 2 の場合は、 連続入力しない C-g を利用することもできます。)

※ 「矩形選択 / マルチカーソル」の機能については、次のページを参考としてください。

※ 次の VSCode の Extension をインストールすると、この「矩形選択 / マルチカーソル」の機能が より有用なものとなります。

キーバインドの設定は次の拡張機能の中で行っています。

●「ターミナル操作」のキー設定

KeybindFunctionVSCode CommandDescription
C-~ (C-S-`)create_terminalView: Toggle Terminal -likeUS Keyboard の場合
C-`toggle_terminalTerminal: Create New Integrated TerminalUS Keyboard の場合
KeybindFunctionVSCode CommandDescription
C-` (C-S-@)create_terminalView: Toggle Terminal -likeJIS Keyboard の場合
C-@toggle_terminalTerminal: Create New Integrated TerminalJIS Keyboard の場合
C-S-<半角/全角>create_terminalView: Toggle Terminal -likeJIS Keyboard の場合
C-<半角/全角>toggle_terminalTerminal: Create New Integrated TerminalJIS 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 のショートカットキーとして 認識されるように戻ります。

KeybindFunctionVSCode CommandDescription
C-`toggle_terminalTerminal: Create New Integrated TerminalUS Keyboard の場合
C-@toggle_terminalTerminal: Create New Integrated TerminalJIS Keyboard の場合
C-<半角/全角>toggle_terminalTerminal: Create New Integrated TerminalJIS Keyboard の場合
Ctl-x oother_groupNavigate 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 に現在の状態を再認識させるように してください。

● 「その他」のキー設定

KeybindFunctionVSCode CommandDescription
M-xexecute_extended_commandShow All Commands
M-;comment_dwimToggle Line Comment
C-’trigger_suggestTrigger SuggestUS Keyboard の場合
C-:trigger_suggestTrigger SuggestJIS Keyboard の場合

※ Meta(M-)で Esc を利用したい場合には、use_esc_as_meta 変数を True にしてください。 True にした場合に Esc を入力するには、Esc を二回押下してください。

※ IntelliSense の機能については、次のページを参考としてください。

関数(Functions)

■ vscodeExecuteCommand

VSCode のコマンドを実行する関数を返す。

この関数を使うことにより、ショートカットキーが割り当てられていない VSCode のコマンドでも、 Fakeymacs から実行できるようにしています。

Function
def vscodeExecuteCommand(command):
Parameters
ParameterDescription
commandVSCode の Command Palette で実行するコマンドの文字列(短縮形の場合も有り)
Returns
  • 引数で指定したコマンドを実行する関数

留意事項

● 本フォルダにある _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 に接続するまでに時間が 掛かる問題が発生していました。次のページで紹介してある設定を行ったところ改善しましたので、 紹介しておきます。