banner
huqingye

huqingye

Helix キーマッピング(転送)

翻訳者注:私が翻訳した Helix Book からの抜粋、全文書は こちら にあります。

LSP としてマークされたマッピングは、このファイルタイプの言語サーバーを必要とします。

TS としてマークされたマッピングは、このファイルタイプの tree-sitter 構文サポートを必要とします。

ノーマルモード#

カーソル移動#

注意:Vim と異なり、fFtT は現在の行に限定されません。

キー説明コマンド
h, Left左に移動move_char_left
j, Down下に移動move_line_down
k, Up上に移動move_line_up
l, Right右に移動move_char_right
w次の単語の先頭に移動move_next_word_start
b前の単語の先頭に移動move_prev_word_start
e次の単語の末尾に移動move_next_word_end
W次の WORD の先頭に移動move_next_long_word_start
B前の WORD の末尾に移動move_prev_long_word_start
E次の WORD の末尾に移動move_next_long_word_end
t次の文字の前に移動find_till_char
f次の文字に移動find_next_char
T前の文字の後に移動till_prev_char
F前の文字に移動find_prev_char
GnGn 行目に移動、n は数字goto_line
Alt-.最後のカーソル移動を繰り返す(ftm など)repeat_last_motion
Home現在の行の先頭に移動goto_line_start
End現在の行の末尾に移動goto_line_end
Ctrl-b, PageUp上にページアップpage_up
Ctrl-f, PageDown下にページダウンpage_down
Ctrl-u上に半ページアップhalf_page_up
Ctrl-d下に半ページダウンhalf_page_down
Ctrl-iジャンプリストの次の項目に移動jump_forward
Ctrl-oジャンプリストの前の項目に移動jump_backward
Ctrl-s現在の選択範囲をジャンプリストに保存save_selection

テキスト修正#

キー説明コマンド
r1 文字に置き換えるreplace
Rコピーしたテキストに置き換えるreplace_with_yanked
~選択したテキストの大文字と小文字を切り替えるswitch_case
`選択したテキストを小文字に設定switch_to_lowercase
Alt-`選択したテキストを大文字に設定switch_to_uppercase
i選択した内容の前に挿入insert_mode
a選択した内容の後に挿入(追加)append_mode
I現在の行の先頭に挿入insert_at_line_start
A現在の行の末尾に挿入insert_at_line_end
o選択した内容の下に新しい行を開始open_below
O選択した内容の上に新しい行を開始open_above
.最後の挿入を繰り返すN/A
u修正を元に戻すundo
U修正をやり直すredo
Alt-u前の履歴に戻るearlier
Alt-U次の履歴に戻るlater
y選択した内容をコピーyank
p選択した内容の後に貼り付けpaste_after
P選択した内容の前に貼り付けpaste_before
" <reg>レジスタを選択してテキストをコピーまたは貼り付けselect_register
>選択した内容をインデントindent
<選択した内容のインデントを解除unindent
=選択した内容をフォーマット(現在はこの機能は無効) (LSP)format_selections
d選択した内容を削除delete_selection
Alt-d選択した内容を削除するが、削除された内容をコピーしないdelete_selection_noyank
c選択した内容を修正(削除して挿入モードに入る)change_selection
Alt-c選択した内容を修正(削除して挿入モードに入る)が、削除された内容をコピーしないchange_selection_noyank
Ctrl-aカーソル下の数字をインクリメントincrement
Ctrl-xカーソル下の数字をデクリメントdecrement
Q選択したレジスタにマクロを録音開始 / 終了(実験機能)record_macro
q選択したレジスタから録音したマクロを再生(実験機能)replay_macro
選択範囲でシェルコマンドを実行#
キー説明コマンド
``各選択内容をパイプに入れ、シェルコマンドの出力でこれらの内容を置き換える
`Alt-`各選択内容をパイプに入れ、シェルコマンドの出力を無視する
!シェルコマンドを実行し、その結果を各選択内容の前に挿入shell_insert_output
Alt-!シェルコマンドを実行し、その結果を各選択内容の後に挿入shell_append_output
$各選択範囲をシェルコマンドにパイプで送信し、コマンドが 0 を返す選択範囲を保持shell_keep_pipe

テキストを選択#

キー説明コマンド
s選択範囲内のすべての正規表現に一致する内容を選択select_regex
S選択範囲内の正規表現に一致しない内容を選択split_selection
Alt-s複数行の選択範囲で各非空行の末尾にカーソルを置くsplit_selection_on_newline
&列に沿って選択範囲を整列(最初に Alt-s を使用)align_selections
_選択範囲から前後の空白を削除して選択を縮小trim_selections
;選択範囲をカーソルまで収縮(複数カーソルの選択範囲をそれぞれのカーソルに折りたたむ)collapse_selection
Alt-;選択範囲のカーソルとアンカーを反転(Vim の o に対応)flip_selections
Alt-:選択範囲を正のテキスト方向に確保(すべての選択範囲カーソルを選択範囲の末尾に配置)ensure_selections_forward
,主選択範囲のみを保持(複数カーソル時は主カーソルに収縮)keep_primary_selection
Alt-,主選択範囲を削除(複数カーソル時は主カーソルを削除)remove_primary_selection
C次の行に選択範囲をコピー(複数カーソル時は下に同じ位置のカーソルを追加)copy_selection_on_next_line
Alt-C前の行に選択範囲をコピー(複数カーソル時は上に同じ位置のカーソルを追加)copy_selection_on_prev_line
(前の選択範囲を主選択範囲として設定(主選択範囲を後ろに移動)rotate_selections_backward
)次の選択範囲を主選択範囲として設定(主選択範囲を前に移動)rotate_selections_forward
Alt-(各選択範囲の内容を次の選択範囲の内容に置き換える(選択範囲の内容を後ろに移動)rotate_selection_contents_backward
Alt-)各選択範囲の内容を前の選択範囲の内容に置き換える(選択範囲の内容を前に移動)rotate_selection_contents_forward
%ファイル全体を選択select_all
x現在の行を選択;選択されている場合は次の行に拡張extend_line_below
X選択範囲を行の境界に拡張し、行単位1extend_to_line_bounds
Alt-x選択範囲を行の境界に拡張し、行単位shrink_to_line_bounds
J選択内で行をスペースで結合join_selections
Alt-J選択内で行を結合するが、接続部分で複数カーソルを使用join_selections_space
K複数選択範囲内で正規表現に一致する選択範囲のみを保持keep_selections
Alt-K複数選択範囲内で正規表現に一致する選択範囲を削除remove_selections
Ctrl-c選択した内容をコメント / コメント解除toggle_comments
Alt-o, Alt-up選択した内容を親構文ノードの上位に拡張 (TS)expand_selection
Alt-i, Alt-down選択した内容を構文ノードに収縮 (TS)shrink_selection
Alt-p, Alt-left構文ツリーの前の同級ノードを選択 (TS)select_prev_sibling
Alt-n, Alt-right構文ツリーの次の同級ノードを選択 (TS)select_next_sibling
╭─────╮                ╭─────╮               ╭─────╮
│text1│ &lt;── backward ──│text0│── forward ──&gt; │text1│
╰─────╯                ╰─────╯               ╰─────╯

╭─────╮
│text1│
╰─────╯

backward:選択範囲を上/後ろ/逆に移動
   |
╭─────╮
│text0│
╰─────╯
   |
forward:選択範囲を下/前に移動

╭─────╮
│text1│
╰─────╯
<div class="hljs-button {2}" data-title="コピー"></div>

テキストを検索#

デフォルトでは、検索コマンドはすべて / レジスタで操作されます。異なるレジスタを操作するには "<char> を使用します。

キー説明コマンド
/テキストを正方向に正規表現検索search
?テキストを逆方向に正規表現検索rsearch
n次の一致する検索内容を選択(選択範囲が増加)search_next
N前の一致する検索内容を選択(選択範囲が増加)search_prev
*現在選択中のテキストを検索パターンとして使用search_selection

マイナーモード#

これらのサブモードはノーマルモードからアクセスでき、通常はコマンドが終了した後にノーマルモードに戻ります。

キー説明コマンド
v選択(拡張)モードに入るselect_mode
g移動モードに入るN/A
mマッチモードに入るN/A
:コマンドモードに入るcommand_mode
zビュー モードに入るN/A
Zスティッキー ビュー モードに入るN/A
Ctrl-wウィンドウモードに入るN/A
Spaceスペースモードに入るN/A
ビューモード#

ビューモードは、選択範囲を変更せずにビューをスクロールおよび操作するために使用されます。

このモードの スティッキーZ を押す)は持続的です:ノーマルモードに戻るには Esc キーを使用する必要があります。テキストを単に閲覧しているときに、積極的に編集していないときに便利です。

キー説明コマンド
z, c現在の行を垂直に中央に配置align_view_center
t現在の行を画面の上部に合わせるalign_view_top
b現在の行を画面の下部に合わせるalign_view_bottom
m現在の行を画面の中央に水平に合わせるalign_view_middle
j, downビューを下にスクロールscroll_down
k, upビューを上にスクロールscroll_up
Ctrl-f, PageDown下にページダウンpage_down
Ctrl-b, PageUp上にページアップpage_up
Ctrl-d下に半ページダウンhalf_page_down
Ctrl-u上に半ページアップhalf_page_up
移動モード#

g を押してこのモードに入り、異なる位置にジャンプします。

キー説明コマンド
ggng を入力して n 行目にジャンプ2;数字を入力しない場合は 1 行目にジャンプgoto_file_start
e最後の行に移動goto_last_line
f選択したファイルに移動3goto_file
h現在の行の先頭に移動goto_line_start
l現在の行の末尾に移動goto_line_end
s現在の行の最初の非空白文字に移動goto_first_nonwhitespace
t画面の上部の行に移動goto_window_top
c画面の中央の行に移動goto_window_center
b画面の下部の行に移動goto_window_bottom
d定義にジャンプ (LSP)goto_definition
y型定義にジャンプ (LSP)goto_type_definition
r参照にジャンプ (LSP)goto_reference
i実装にジャンプ (LSP)goto_implementation
a最後にアクセスした / 候補ファイルに移動goto_last_accessed_file
m最後に修正した / 候補ファイルに移動goto_last_modified_file
n次のバッファに移動goto_next_buffer
p前のバッファに移動goto_previous_buffer
.現在のファイルの最後の修正箇所に移動goto_last_modification
マッチモード#

ノーマルモードで m を押してこのモードに入ります。 囲むテキストオブジェクト の説明については、 使用 の関連部分を参照してください。

キー説明コマンド
mマッチする括弧に移動 (TS)match_brackets
s <char>現在選択中の内容を <char> で囲むsurround_add
r <from><to>囲まれた <from> 文字を <to> に置き換えるsurround_replace
d <char>囲まれた <char> を削除surround_delete
a <object>textobject テキストを削除select_textobject_around
i <object>textobject 内部のテキストを削除select_textobject_inner

TODO:構文ノードを選択するマッピング([ のスーパーセット)。

ウィンドウモード#

この部分は Vim キーバインディングに似ていますが、Kakoune はウィンドウをサポートしていません。<space>w または <Ctrl-w> を押してこのモードに入ります。

キー説明コマンド
w, Ctrl-w次のウィンドウに切り替えrotate_view
v, Ctrl-v垂直に右に分割vsplit
s, Ctrl-s水平に下に分割hsplit
f選択した内容のファイルに水平分割で移動goto_file
F選択した内容のファイルに垂直分割で移動goto_file
h, Ctrl-h, Left左側の分割ウィンドウにカーソルを移動jump_view_left
j, Ctrl-j, Down下側の分割ウィンドウにカーソルを移動jump_view_down
k, Ctrl-k, Up上側の分割ウィンドウにカーソルを移動jump_view_up
l, Ctrl-l, Right右側の分割ウィンドウにカーソルを移動jump_view_right
q, Ctrl-q現在のウィンドウを閉じるwclose
o, Ctrl-o現在のウィンドウのみを保持し、他のすべてのウィンドウを閉じるwonly
H現在のウィンドウを左側に交換4swap_view_left
J現在のウィンドウを下側に交換swap_view_down
K現在のウィンドウを上側に交換swap_view_up
L現在のウィンドウを右側に交換swap_view_right
スペースモード#

この部分は雑多なマッピングで、主に picker です。<space> を押してこのモードに入ります。

キー説明コマンド
fファイルピッカーを開くfile_picker
F現在のプロジェクトディレクトリのファイルピッカーを開くfile_picker_in_current_directory
bバッファピッカーを開くbuffer_picker
jジャンプリストピッカーを開くjumplist_picker
kpopup ボックスでカーソル下の項目のドキュメントを表示 (LSP)hover
s現在のドキュメントシンボルピッカーを開く (LSP)symbol_picker
Sワークスペースシンボルピッカーを開く (LSP)workspace_symbol_picker
g現在のドキュメントコード診断ピッカーを開く (LSP)diagnostics_picker
Gワークスペースコード診断ピッカーを開く (LSP)workspace_diagnostics_picker
rシンボルをリネーム (LSP)rename_symbol
aコード操作を実行 (LSP)code_action
'最後のぼやけたピッカーを開くlast_picker
wウィンドウモードに入るN/A
p選択範囲の後にシステムクリップボードの内容を貼り付けpaste_clipboard_after
P選択範囲の前にシステムクリップボードの内容を貼り付けpaste_clipboard_before
y選択したテキストをクリップボードにコピーyank_joined_to_clipboard
Y(複数選択範囲時)主選択範囲をクリップボードにコピーyank_main_selection_to_clipboard
R選択したテキストをシステムクリップボードのテキストに置き換えるreplace_selections_with_clipboard
/ワークスペースフォルダ内でテキストをグローバル検索global_search
?コマンドオプションボードを開くcommand_palette

ヒント:グローバル検索はコマンドライン入力を使用しますが、ぼやけたピッカーに結果を表示するため、ファイルを開いた後に <space>' を使用して前回の検索結果を持ち帰ることができます。

ポップアップ#

カーソル下の項目のドキュメントを表示します。

キー説明
Ctrl-u上にスクロール
Ctrl-d下にスクロール
Unimpaired#

vim-unimpaired スタイルのマッピングを使用してコードナビゲーションを行います。

キー説明コマンド
[d前の診断に移動 (LSP)goto_prev_diag
]d次の診断に移動 (LSP)goto_next_diag
[Dこのファイルの最初の診断に移動 (LSP)goto_first_diag
]Dこのファイルの最後の診断に移動 (LSP)goto_last_diag
]f次の関数に移動 (TS)goto_next_function
[f前の関数に移動 (TS)goto_prev_function
]c次のクラスに移動 (TS)goto_next_class
[c前のクラスに移動 (TS)goto_prev_class
]a次のパラメータに移動 (TS)goto_next_parameter
[a前のパラメータに移動 (TS)goto_prev_parameter
]o次のコメントに移動 (TS)goto_next_comment
[o前のコメントに移動 (TS)goto_prev_comment
]t次のテストに移動 (TS)goto_next_test
]t前のテストに移動 (TS)goto_prev_test
]p次の段落に移動goto_next_paragraph
[p前の段落に移動goto_prev_paragraph
[Space上に新しい行を追加add_newline_above
]Space下に新しい行を追加add_newline_below

挿入モード#

デフォルトでは、挿入モードにバインドされたキーはある程度最小限です。Helix はモードエディタとして設計されており、これはユーザーエクスペリエンスと内部メカニズムに反映されています。

たとえば、挿入モードからノーマルモードに退出するまで、テキストに対する変更は保存されません。この理由から、新しいユーザーにはモードエディタの例を学ぶことを強くお勧めします。これにより、最もスムーズな体験が得られます。

キー説明コマンド
Escapeノーマルモードに切り替えnormal_mode
Ctrl-s元に戻すチェックポイントをコミットcommit_undo_checkpoint
Ctrl-x自動補完completion
Ctrl-rレジスタの内容を挿入insert_register
Ctrl-w, Alt-Backspace前の単語を削除delete_word_backward
Alt-d, Alt-Delete次の単語を削除delete_word_forward
Ctrl-u行の先頭まで削除kill_to_line_start
Ctrl-k行の末尾まで削除kill_to_line_end
Ctrl-h, Backspace前の文字を削除delete_char_backward
Ctrl-d, Delete次の文字を削除delete_char_forward
Ctrl-j, Enter新しい行を挿入insert_newline

これらのショートカットは推奨されておらず、モードエディタに不慣れな新しいユーザーに提供されるものです。

モードエディタをより慣れて使用する場合、挿入モードでこれらを無効にするには、config.toml に以下のコマンドを使用します:

[keys.insert]
up = "no_op"
down = "no_op"
left = "no_op"
right = "no_op"
pageup = "no_op"
pagedown = "no_op"
home = "no_op"
end = "no_op"
<div class="hljs-button {2}" data-title="コピー"></div>

選択 / 拡張モード#

v を押してこのモードに入ったり出たりします。このモードはノーマルモードに似ていますが、任意の移動が選択範囲を拡張するように変更され、これらの選択範囲を置き換えるのではなくなります。移動も拡張に変更され、たとえば、vgl は選択内容を行の末尾まで拡張します。

検索にも影響があります。デフォルトでは、nN は現在の選択範囲を削除し、検索語の次のインスタンスを選択します。

n または N を押す前にこのモードを切り替えることで、現在の選択範囲を保持できます。反復検索中にこのモードを開閉することで、選択的に検索項目を選択範囲に追加できます。5

ピッカー#

ピッカーで使用されるキー。現在、これらのキーの再マッピングはサポートされていません。

キー説明
Shift-Tab, Up, Ctrl-p前の項目
Tab, Down, Ctrl-n次の項目
PageUp, Ctrl-u上にページアップ
PageDown, Ctrl-d下にページダウン
Home最初の項目に移動
End最後の項目に移動
Enter選択した項目を開く
Ctrl-s垂直に分割ウィンドウで再オープン
Ctrl-v水平に分割ウィンドウで再オープン
Ctrl-tプレビューを切り替え
Escape, Ctrl-cピッカーを閉じる

プロンプト#

プロンプトボックス(たとえば、コマンドラインで s を押して表示される入力待ちの位置)内で使用されるキー。現在、これらのキーの再マッピングはサポートされていません。

キー説明
Escape, Ctrl-cプロンプトボックスを閉じる
Alt-b, Ctrl-Left前の単語に移動(ノーマルモードの b
Ctrl-b, Left前の文字に移動(ノーマルモードの h
Alt-f, Ctrl-Right次の単語に移動
Ctrl-f, Right次の文字に移動
Ctrl-e, End行の末尾に移動
Ctrl-a, Home行の先頭に移動
Ctrl-w, Alt-Backspace, Ctrl-Backspace前の単語を削除
Alt-d, Alt-Delete, Ctrl-Delete次の単語を削除
Ctrl-u行の先頭まで削除
Ctrl-k行の末尾まで削除
Backspace, Ctrl-h前の文字を削除
Delete, Ctrl-d次の文字を削除
Ctrl-sカーソル下に挿入、将来的には Ctrl-r Ctrl-w に変更される可能性があります
Ctrl-p, Up前の履歴を選択
Ctrl-n, Down次の履歴を選択
Ctrl-r選択したレジスタの内容を挿入
Tab次の補完項目を選択
BackTab前の補完項目を選択
Enter選択した項目を開く

  1. 翻訳者注:Xx の違いは、行を跨いで拡張する際、x は常にカーソルを末尾に置くのに対し、X は選択範囲の方向を認識することです。これは
    line-wise:カーソルが選択範囲の下方向にある場合、選択範囲拡張後のカーソルは末尾に位置します;カーソルが選択範囲の上方向にある場合、選択範囲拡張後のカーソルは末尾に位置します。
    選択範囲の方向については、私の理解を参照してください: ↩︎

  2. gngnggnG に等しく、すべて n 行目にジャンプするために使用されます。 ↩︎

  3. gf は選択した内容をファイルパスとして扱います(相対パスまたは絶対パスのいずれか);そのパスが存在しない場合、そのパスのバッファを開き、書き込むことでそのファイルを作成します(書き込まなければ作成されません)。 ↩︎

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。