特定のウィンドウ(呼び出しTEST_WIN
)に移動し、端末に焦点を当ててから、1文字を削除する地図を作成しています。
マッピングは次のとおりです。
noremap '; :let curWin = win_getid()<CR>:call win_gotoid(TEST_WIN)<CR>A<C-c><C-l><up><BS>
私は<BS>
withに置き換えました<C-w>
が、どちらも個々の文字/単語ではなく行全体を削除します。
単一の単語または文字のみを削除するにはどうすればよいですか?
コマンドなしで端末を制御するときに、<C-w>
バックスペースキーを追加する必要があります。りんごどちらも期待どおりに機能します。問題はコマンド中にのみ発生します。
答え1
修正する:回答済みここ。
ターミナルウィンドウは特別です。地図上のコマンドを使用して挿入モードに切り替えてから、端末に直接入力した文字を含めることはできません。
代わりに関数を呼び出す必要があります。term_sendkeys()
端末と対話します。
次のように動作する必要があります。
function! TermHistory()
call win_gotoid(TEST_WIN)
call term_sendkeys('', "\<C-c>\<C-l>\<Up>\<BS>")
endfunction
nnoremap <silent> '; :call TermHistory()<CR>