ターミナル

Nvim の :help ページ。 生成されたもので、ソースtree-sitter-vimdoc パーサーを使用して生成されています。


ターミナルエミュレータ terminal-emulator
Nvim は、libvterm ベースの VT220/xterm ターミナルエミュレータを組み込んでいます。ターミナルは特別な 'buftype' として表示され、接続されたプログラムからデータを受信すると非同期的に更新されます。
ターミナルバッファは通常のバッファと同様に動作しますが、以下の点が異なります。
'modifiable' を使用すると、行を編集できますが削除できません。
'scrollback' は保持される行数を制御します。
カーソルが最終行にある場合、出力は追跡されます(末尾に追加されます)。
'modified' がデフォルトです。'nomodified' を設定して、ターミナルバッファを閉じる際の警告を回避できます。
'bufhidden' のデフォルトは "hide" です。
ターミナルバッファを作成するにはいくつかの方法があります。
:terminal コマンドを実行します。
nvim_open_term() または termopen() 関数を呼び出します。
"term://" バッファを編集します。例:
:edit term://bash
:vsplit term://top
注記:autocmd から "term://" バッファを開くには、autocmd-nested 修飾子が必須です。
autocmd VimEnter * ++nested split term://sh
(これは参考までに記載されています。:terminal を代わりに使用してください。)
ターミナルが起動すると、バッファの内容が更新され、バッファは term://{cwd}//{pid}:{cmd} の形式で名前付けられます。この命名スキームは、:mksession によってターミナルバッファを復元するために使用されます({cmd} を再起動します)。
ターミナル環境は jobstart-env と同様に初期化されます。
入力するには、ターミナルモードiIaA、または :startinsert で入ります。このモードでは、<C-\> を除くすべてのキーが基礎となるプログラムに送信されます。<C-\> が押された場合、次のキーが送信されます(<C-N> または <C-O> を除く)。通常モードに戻るには、<C-\><C-N> を使用します。CTRL-\_CTRL-N 1つの通常モードコマンドを実行してターミナルモードに戻るには、<C-\><C-O> を使用します。t_CTRL-\_CTRL-O
ターミナルモードでは、これらのローカルオプションが強制的に設定されます。
ターミナルモードには、マッピングのための独自の :tnoremap 名前空間があります。これは、ターミナルとのやり取りを自動化するために使用できます。
<Esc> をマップしてターミナルモードを終了するには
:tnoremap <Esc> <C-\><C-n>
ターミナルモードで i_CTRL-R をシミュレートするには
:tnoremap <expr> <C-R> '<C-\><C-N>"'.nr2char(getchar()).'pi'
任意のモードから ALT+{h,j,k,l} を使用してウィンドウを移動するには
:tnoremap <A-h> <C-\><C-N><C-w>h
:tnoremap <A-j> <C-\><C-N><C-w>j
:tnoremap <A-k> <C-\><C-N><C-w>k
:tnoremap <A-l> <C-\><C-N><C-w>l
:inoremap <A-h> <C-\><C-N><C-w>h
:inoremap <A-j> <C-\><C-N><C-w>j
:inoremap <A-k> <C-\><C-N><C-w>k
:inoremap <A-l> <C-\><C-N><C-w>l
:nnoremap <A-h> <C-w>h
:nnoremap <A-j> <C-w>j
:nnoremap <A-k> <C-w>k
:nnoremap <A-l> <C-w>l
:tmenu の代わりに :tlmenu を使用して、ターミナルモードのマッピングと同様のメニューを作成することもできます。
マウス入力は以下の動作をします。
プログラムがマウスイベントを有効にしている場合、対応するイベントはプログラムに転送されます。
マウスイベントが無効になっている場合(デフォルト)、ターミナルのフォーカスが失われ、イベントは通常のバッファと同様に処理されます。
別のウィンドウをクリックすると、ターミナルのフォーカスが失われ、nvim はクリックされたウィンドウにジャンプします。
マウスホイールを別のウィンドウに配置した状態で使用した場合、ターミナルのフォーカスは失われず、ホバーしているウィンドウがスクロールされます。
オプション:'modified''scrollback' イベント:TermOpenTermEnterTermLeaveTermClose ハイライトグループ:hl-TermCursorhl-TermCursorNC
ターミナルは、グローバル設定とは異なる可能性のある、いくつかのオプションにローカルデフォルトを設定します。
'list' は無効になっています。
'wrap' は無効になっています。
TermOpen autocommand を使用してデフォルトを変更できます。
au TermOpen * setlocal list
ターミナルカラー
{g,b}:terminal_color_x 変数は、ターミナルのカラーパレットを制御します。ここで、x は 0 から 15 までのカラーインデックスです。TermOpen の間読み取られます。値は、カラー名または 16 進数の文字列である必要があります。例:
let g:terminal_color_4 = '#ff0000'
let g:terminal_color_5 = 'green'
RGB UI でのみ機能します('termguicolors' を参照)。256 色ターミナルの場合、カラーインデックスはそのまま転送されます。
エディターのハイライト(構文ハイライトハイライトグループ など)の方が優先順位が高く、ターミナルカラーが解決された後に適用されます。

イベント terminal-events

:terminal バッファで実行されているアプリケーションは、リクエストを送信できます。Nvim は、TermRequest イベントを介してこれらを公開します。
OSC 7: 作業ディレクトリの変更 terminal-osc7
:terminal プロセスから送信された OSC 7 を処理するには、このコードはリクエストに示されたディレクトリに :cd します。
vim.api.nvim_create_autocmd({ 'TermRequest' }, {
  desc = 'Handles OSC 7 dir change requests',
  callback = function(ev)
    if string.sub(vim.v.termrequest, 1, 4) == '\x1b]7;' then
      local dir = string.gsub(vim.v.termrequest, '\x1b]7;file://[^/]*', '')
      if vim.fn.isdirectory(dir) == 0 then
        vim.notify('invalid dir: '..dir)
        return
      end
      vim.api.nvim_buf_set_var(ev.buf, 'osc7_dir', dir)
      if vim.o.autochdir and vim.api.nvim_get_current_buf() == ev.buf then
        vim.cmd.cd(dir)
      end
    end
  end
})
vim.api.nvim_create_autocmd({ 'BufEnter', 'WinEnter', 'DirChanged' }, {
  callback = function(ev)
    if vim.b.osc7_dir and vim.fn.isdirectory(vim.b.osc7_dir) == 1 then
      vim.cmd.cd(vim.b.osc7_dir)
    end
  end
})
試すには、上記のコードを選択して :'<,'>lua でソースし、:terminal バッファで次のコマンドを実行します。
printf "\033]7;file://./foo/bar\033\\"
OSC 52: システムクリップボードへの書き込み terminal-osc52
:terminal バッファ内のアプリケーションは、OSC 52 シーケンスを送信することで、システムクリップボードに書き込むことができます。例:
printf '\033]52;;%s\033\\' "$(echo -n 'Hello world' | base64)"
Nvim は、設定された クリップボード プロバイダーを使用して、システムクリップボードに書き込みます。OSC 52 を使用したシステムクリップボードからの読み取りはサポートされていません。これは、任意の :terminal 内のプログラムがユーザーのクリップボードを読み取ることができるようになるためです。
:terminal バッファから送信された OSC 52 シーケンスは、TermRequest イベントを発生させません。このイベントは Nvim によって直接処理され、プラグインに転送されません。

ステータス変数 terminal-status

ターミナルバッファは、いくつかのバッファローカル変数とオプションを保持します。値は TermOpen の前に初期化されるため、ローカル 'statusline' で使用できます。例:
:autocmd TermOpen * setlocal statusline=%{b:term_title}
b:term_title ターミナルタイトル(ユーザーが書き込み可能)。通常、グラフィカルターミナルエミュレータのウィンドウタイトルまたはタブタイトルに表示されます。ターミナルプログラムは、エスケープシーケンスを送信することでこれらを設定できます。
'channel' ターミナル PTY ジョブIDchansend() と共に使用して、ターミナルに入力を送信できます。
TermClose イベントは、v:event の "status" フィールドにターミナルジョブの終了コードを提供します。たとえば、この autocommand はターミナルの終了コードを :messages に出力します。
autocmd TermClose * echom 'Terminal exited with status '..v:event.status
ターミナルジョブが終了したかどうかを確認するには、jobwait() を使用します。
let running = jobwait([&channel], 0)[0] == -1

:Termdebug プラグイン terminal-debug

ターミナルデバッグプラグインを使用して、gdb でプログラムをデバッグし、Vim ウィンドウでソースコードを表示できます。これは Vim 内で完全に実行されるため、ssh 接続を介してリモートでも機能します。
開始
termdebug-starting
次のコマンドでプラグインをロードします。
packadd termdebug
vimrc ファイルからプラグインをロードする場合は、「!」属性を追加します。
packadd! termdebug
:Termdebug
デバッグを開始するには、:Termdebug または :TermdebugCommand の後にコマンド名を入力します。例:
:Termdebug vim
これにより、2 つのウィンドウが開きます。
gdb ウィンドウ "gdb vim" が実行されるターミナルウィンドウ。ここで gdb と直接やり取りできます。
プログラムウィンドウ 実行中のプログラム用のターミナルウィンドウ。"run" を gdb で使用すると、プログラムの I/O はこのウィンドウで行われるため、gdb の制御を妨げません。
現在のウィンドウはソースコードを表示するために使用されます。gdb が一時停止すると、可能な場合はソースファイルの位置が表示されます。ハイライトグループ debugPC を使用して、現在の位置を強調表示する記号が使用されます。
現在のウィンドウのバッファが変更されると、現在の gdb の位置を表示する別のウィンドウが開きます。
実行中のプログラムのターミナルにフォーカスを当てて、プログラムとやり取りします。これは、ターミナルウィンドウで実行されるコマンドと同じように機能します。
通常、gdb ウィンドウで "quit" と入力することでデバッガーが終了すると、開かれた 2 つのウィンドウが閉じられます。
一度にアクティブにできるデバッガーは 1 つだけです。:TermdebugCommand
デバッグ対象のコマンドに特定のコマンドを渡す場合は、:TermdebugCommand コマンドの後にコマンド名と追加パラメーターを入力します。
:TermdebugCommand vim --clean -c ':set nu'
:Termdebug:TermdebugCommand の両方で、オプションの "!" バング引数を使用して、gdb ウィンドウで一時停止せずにコマンドをすぐに開始できます(カーソルはデバッグ対象のウィンドウにあります)。例:
:TermdebugCommand! vim --clean
既に実行中の実行可能ファイルに gdb をアタッチするか、コアファイルを使用するには、追加の引数を渡します。例:
:Termdebug vim core
:Termdebug vim 98343
引数が指定されていない場合、gdb ウィンドウが表示され、そこで例として gdb の file コマンドを使用して実行するコマンドを指定する必要があります。
セッション例
termdebug-example
Vim の "src" ディレクトリで開始し、Vim をビルドします。
% make
Vim を起動します。
% ./vim
termdebug プラグインをロードし、Vim のデバッグを開始します。
:packadd termdebug
:Termdebug vim
ソース - gdb を開始した場所 - gdb コマンドを入力できます プログラム - 実行中のプログラムはこのウィンドウを使用します の 3 つのウィンドウが表示されます。
gdb ウィンドウにフォーカスを当てて、入力します。
break ex_help
run
Vim がプログラムウィンドウで実行を開始します。そこにフォーカスを当てて入力します。
:help gui
Gdb は ex_help ブレークポイントに到達します。ソースウィンドウには、ex_cmds.c ファイルが表示されます。ブレークポイントが設定された場所に、赤い "1 " マーカーがサイン列に表示されます。デバッガーが停止した行が強調表示されます。ここでプログラムをステップ実行できます。デバッガーがソースコードの行を実行すると、強調表示が移動します。
for ループが強調表示されるまで、「:Next」を数回実行します。「eap->arg」の最後にカーソルを置き、「:Eval」を呼び出します。以下が表示されます。
"eap->arg": 0x555555e68855 "gui"
このようにして、ローカル変数の値を検査できます。gdb ウィンドウにフォーカスを当てて "print" コマンドを使用することもできます。例:
print *eap
マウスポインターの移動が機能している場合、マウスが gdb で評価できるテキストの上に置かれると、Vim はバルーンも表示します。「K」マッピングを使用することもできます。これは、結果を表示するために Nvim のフローティングウィンドウを使用します。
ソースウィンドウに戻り、for ループの後の最初の行にカーソルを置き、入力します。
:Break
"1" マーカーが表示されます。これは新しいブレークポイントを示しています。ここで ":Cont" コマンドを実行すると、ブレークポイントまでコードが実行されます。
gdb ウィンドウでより高度なコマンドを入力できます。例として、入力します。
watch curbuf
ここで ":Cont" を実行します(または gdb ウィンドウで "cont" と入力します)。実行は "curbuf" の値が変更されるまで続行されます。これは do_ecmd() にあります。このウォッチポイントを削除するには、gdb ウィンドウで入力します。
delete 3
gdb ウィンドウで入力してスタックを確認できます。
where
スタックフレームを移動します(例:)。
frame 3
ソースウィンドウには、より深いレベルへの呼び出しが行われた時点のコードが表示されます。
コードのステップ実行
termdebug-stepping
gdb ウィンドウにフォーカスを当てて、そこでコマンドを入力します。一般的なコマンドをいくつか紹介します。
CTRL-C プログラムを中断します
次に、現在の行を実行し、次の行で停止します。
ステップ実行:現在の行を実行し、次のステートメント(関数呼び出しを含む)で停止します。
アンチル:現在のカーソル行、指定した位置、または現在のスタックフレームが戻るまで実行します。
フィニッシュ:現在の関数を抜けるまで実行します。
ウェア:スタックを表示します。
フレーム N:N番目のスタックフレームに移動します。
コンティニュー:実行を続けます。
:Run :Arguments ソースコードを表示するウィンドウでは、これらのコマンドを使用してgdbを制御できます。:Run [args] [args] または以前の引数でプログラムを実行します。:Arguments {args} 次の:Run のための引数を設定します。
:Break カーソル位置にブレークポイントを設定します。:Break {position} 指定した位置にブレークポイントを設定します。:Tbreak カーソル位置に一時ブレークポイントを設定します。:Tbreak {position} 指定した位置に一時ブレークポイントを設定します。:Clear カーソル位置のブレークポイントを削除します。
:Step gdbの"step"コマンドを実行します。:Over gdbの"next"コマンドを実行します (:Next はVimコマンドです):Until gdbの"until"コマンドを実行します。:Finish gdbの"finish"コマンドを実行します。:Continue gdbの"continue"コマンドを実行します。:Stop プログラムを中断します。
gdbがソース行で停止し、ソースコードを表示しているウィンドウがない場合、ソースコードの新しいウィンドウが作成されます。ソースコードウィンドウのバッファが変更されていて破棄できない場合も同様です。
Gdbは各ブレークポイントに番号を付けます。Vimでは、その番号が赤い背景でサイン列に表示されます。これらのgdbコマンドを使用できます。
info break: ブレークポイントの一覧を表示します。
delete N: N番目のブレークポイントを削除します。カーソルがブレークポイントのある行にある場合は:Clearコマンドを使用するか、「ブレークポイントのクリア」コンテキストメニューを使用することもできます。
変数の検査
termdebug-variables :Evaluate :Evaluate カーソル下の式を評価します。K 同様 (無効化するには termdebug_map_K を参照) :Evaluate {expr} {expr} を評価します。:'<,'>Evaluate 視覚的に選択したテキストを評価します。
これは、gdbウィンドウで"print"を使用するのと似ています。通常、:Evaluate:Evと短縮できます。結果はフローティングウィンドウに表示されます。:Evaluate(またはK)を再度実行することで、このウィンドウにカーソルを移動できます。
スタックフレームの移動
termdebug-frames :Frame :Up :Down :Frame [frame] フレーム[frame]を選択します。フレーム番号、アドレス、または関数名です(デフォルト:現在のフレーム)。:Up [count] [count] フレーム上に移動します(デフォルト:1; 現在のフレームを呼び出したフレーム)。+ 同様 (無効化するには termdebug_map_plus を参照)。:Down [count] [count] フレーム下に移動します(デフォルト:1; 現在のフレームによって呼び出されたフレーム)。- 同様 (無効化するには termdebug_map_minus を参照)。
その他のコマンド
termdebug-commands
:Gdb gdbウィンドウにジャンプします。:Program 実行中のプログラムのあるウィンドウにジャンプします。:Source ソースコードのあるウィンドウにジャンプします。存在しない場合は作成します。:Asm 逆アセンブルのあるウィンドウにジャンプします。存在しない場合は作成します。:Var ローカル変数と引数変数のあるウィンドウにジャンプします。存在しない場合は作成します。このウィンドウは、プログラムが停止するたびに更新されます。
イベント
termdebug-events
4つのautocommandを使用できます。
au User TermdebugStartPre  echomsg 'debugging starting'
au User TermdebugStartPost echomsg 'debugging started'
au User TermdebugStopPre   echomsg 'debugging stopping'
au User TermdebugStopPost  echomsg 'debugging stopped'
TermdebugStartPre
デバッグを開始する前。デバッガが既に実行中であるか、デバッガコマンドを実行できない場合はトリガーされません。TermdebugStartPost
TermdebugStartPost デバッグが初期化された後。:Termdebugまたは:TermdebugCommandに「!」bangが渡された場合、gdbで提供されたコマンドを実行する前にイベントがトリガーされます。TermdebugStopPre
TermdebugStopPre デバッグが終了する前、gdbが終了するとき、gdbウィンドウで"quit"コマンドが発行された後などに発生します。TermdebugStopPost
TermdebugStopPost デバッグが終了した後、gdb関連のウィンドウが閉じられ、デバッグバッファが消去され、デバッグ前の状態が復元されます。
カスタマイズ
termdebug-customizing g:termdebug_config 過去には、いくつかのグローバル変数が設定に使用されていました。これらは非推奨となり、g:termdebug_config辞書を使用することが推奨されます。g:termdebug_configが存在する場合、他のグローバル変数は使用されません。推奨される方法は、空の辞書から始めることです。
let g:termdebug_config = {}
その後、下記のように辞書にエントリを追加できます。非推奨のグローバル変数名は、完全性を期して記載されています。g:termdebug_configの使用に切り替える場合は、古い変数名を見つけて値を引き継ぎ、非推奨の変数を削除できます。
プロンプトモード
termdebug-prompt
MS-Windowsの場合、gdbは'buftype'が"prompt"に設定されたバッファで実行されます。動作が少し異なります。
コマンドを入力している間、gdbウィンドウは挿入モードになります。<Esc>でノーマルモードに切り替え、バッファ内を移動したり、コピー/ペーストしたりできます。aiなど、挿入モードを開始するコマンドを使用することで、gdbコマンドの編集に戻ることができます。
デバッグ対象のプログラムを実行するために、別の:terminalウィンドウが開かれます。
termdebug_use_prompt
プロンプトモードは、以下で利用できます。
let g:termdebug_config['use_prompt'] = 1
g:termdebug_configがない場合は、以下を使用できます。
let g:termdebug_use_prompt = 1
マッピング
termdebugプラグインは、いくつかのデフォルトのマッピングを有効にします。これらのマッピングはすべて、termdebugセッションが終了すると元の値にリセットされます。
termdebug_map_K termdebug-mappings Kキーは通常、バッファローカル(:map-local)のマッピングが既に存在しない限り、:Evaluateにマップされます。これを望まない場合は、以下を使用してください。
let g:termdebug_config['map_K'] = 0
g:termdebug_configがない場合は、以下を使用できます。
let g:termdebug_map_K = 0
termdebug_map_minus
-キーは通常、バッファローカルのマッピングが既に存在しない限り、:Downにマップされます。これを望まない場合は、以下を使用してください。
let g:termdebug_config['map_minus'] = 0
termdebug_map_plus
+キーは通常、バッファローカルのマッピングが既に存在しない限り、:Upにマップされます。これを望まない場合は、以下を使用してください。
let g:termdebug_config['map_plus'] = 0
termdebug_disasm_window
Asmウィンドウをデフォルトで表示する場合は、「disasm_window」フラグを1に設定します。「disasm_window_height」エントリを使用してウィンドウの高さを設定できます。
let g:termdebug_config['disasm_window'] = 1
let g:termdebug_config['disasm_window_height'] = 15
g:termdebug_configがない場合は、以下を使用できます。
let g:termdebug_disasm_window = 15
1より大きい値を設定すると、Asmウィンドウの高さがその値に設定されます。現在のウィンドウに十分な水平方向のスペースがある場合、垂直方向に分割され、Asmウィンドウはソースコードウィンドウと並べて表示されます(高さオプションは使用されません)。
termdebug_variables_window
Varウィンドウをデフォルトで表示する場合は、「variables_window」フラグを1に設定します。「variables_window_height」エントリを使用してウィンドウの高さを設定できます。
let g:termdebug_config['variables_window'] = 1
let g:termdebug_config['variables_window_height'] = 15
g:termdebug_configがない場合は、以下を使用できます。
let g:termdebug_variables_window = 15
1より大きい値を設定すると、Varウィンドウの高さがその値に設定されます。現在のウィンドウに十分な水平方向のスペースがある場合、垂直方向に分割され、Varウィンドウはソースコードウィンドウと並べて表示されます(高さオプションは使用されません)。
通信
termdebug-communication
Vimがgdbと通信するために使用される、別の非表示のバッファがあります。バッファ名は「gdb communication」です。このバッファを削除しないでください。デバッガが壊れます。
Gdbにはいくつかの奇妙な動作があり、プラグインはその回避に最善を尽くしています。たとえば、gdbウィンドウで「continue」と入力した後、CTRL-Cを使用して実行中のプログラムを中断できます。しかし、MIコマンド「-exec-continue」を使用した後は、CTRL-Cを押しても中断されません。そのため、通信チャネルを使用する代わりに、:Continueコマンドには「continue」が使用されます。
GDBコマンド
g:termdebugger
gdbコマンドの名前を変更するには、:Termdebugを呼び出す前に、g:termdebug_configの「debugger」エントリまたは「g:termdebugger」変数を設定します。
let g:termdebug_config['command'] = "mygdb"
g:termdebug_configがない場合は、以下を使用できます。
let g:termdebugger = "mygdb"
コマンドに引数が必要な場合は、リストを使用します。
let g:termdebug_config['command'] = ['rr', 'replay', '--']
g:termdebug_configがない場合は、以下を使用できます。
let g:termdebugger = ['rr', 'replay', '--']
マウスを使用する場合は、カーソル下の変数を評価するなどのターミナルコマンドのいずれかに、右クリックを使用してマッピングを定義することもできます。
nnoremap <RightMouse> :Evaluate<CR>
または、ブレークポイントの設定/解除を行います。
nnoremap <RightMouse> :Break<CR>
gdbをデバッガとして適切に動作させるために、いくつかの引数が追加されます。それらを変更する場合は、引数リストをフィルタリングする関数を追加します。
let g:termdebug_config['command_filter'] = MyDebugFilter
引数を追加したくないが、「pty」を設定する必要がある場合は、必要な引数を追加する関数を使用します。
let g:termdebug_config['command_add_args'] = MyAddArguments
この関数は、これまでの引数のリストと、ptyの名前という2番目の引数を使用して呼び出されます。gdb-version
gdbと完全に互換性のあるデバッガのみが機能します。VimはGDB/MIインターフェースを使用します。「new-ui」コマンドには、gdbバージョン7.12以降が必要です。「Undefined command: "new-ui". Try "help".~」というエラーが表示された場合は、gdbのバージョンが古すぎます。
hl-debugPC hl-debugBreakpoint サインの色は、これらのハイライトグループで調整できます。
debugPC: 現在の位置
debugBreakpoint: ブレークポイント
'background'が「light」の場合のデフォルトは:hi debugPC term=reverse ctermbg=lightblue guibg=lightblue hi debugBreakpoint term=reverse ctermbg=red guibg=red
'background'が「dark」の場合のデフォルトは:hi debugPC term=reverse ctermbg=darkblue guibg=darkblue hi debugBreakpoint term=reverse ctermbg=red guibg=red
ショートカット
termdebug_shortcuts
TermDebugSendCommand()関数を使用して、任意のウィンドウで動作するgdbを制御するための独自のショートカット(マッピング)を定義できます。例:
map ,w :call TermDebugSendCommand('where')<CR>
引数はgdbコマンドです。
ポップアップメニュー
termdebug_popup
デフォルトで、Termdebugプラグインは'mousemodel'を「popup_setpos」に設定し、ポップアップメニューにこれらのエントリを追加します。ブレークポイントの設定:Break ブレークポイントのクリア:Clear 評価:Evaluate これを望まない場合は、無効にしてください。
let g:termdebug_config['popup'] = 0
g:termdebug_configがない場合は、以下を使用できます。
let g:termdebug_popup = 0
デフォルトのサインの変更
termdebug_signs
Termdebugは、ブレークポイントを表すためにサイン列にブレークポイントIDの16進数を表示します。「0xFF」より大きい場合は、画面上に2つのセルしか表示できないため、「F+」と表示されます。
ブレークポイントのサインをカスタマイズする場合は
let g:termdebug_config['sign'] = '>>'
g:terminal_configがまだない場合は、以下を使用できます。
let g:termdebug_config = {'sign': '>>'}
これにより、ブレークポイントはサイン列に>>と表示されます。
Vimウィンドウの幅
termdebug_wide
デバッグ開始時にVimウィンドウの幅を変更し、垂直分割を使用するには
let g:termdebug_config['wide'] = 163
g:termdebug_configがない場合は、以下を使用できます。
let g:termdebug_wide = 163
これにより、:Termdebugが使用されると'columns'が163に設定されます。デバッガを終了すると、値は復元されます。
wide値が設定されていて、'columns'が既に大きい値の場合、'columns'を変更せずに垂直分割が使用されます。
幅の値を 1 に設定すると、'columns' を変更することなく垂直分割を使用できます。これは、Vim でターミナルのサイズ変更ができない場合に便利です。
メイン
コマンド索引
クイックリファレンス