私はtmuxでalacritty端末とneovimエディタを使用します。
最初は、Ctrl+ Backspace(以前のエントリを削除)が端末でまったく機能しませんでした。だから、次の行が追加されましたalacritty.yml
。
key_bindings:
- { key: Back, mods: Control, chars: "\x17" }
これにより、迅速にキーバインディングが可能になります。これで端末から単語を削除します。だから、neovimキーバインディングに以下を追加しました。
vim.keymap.set("i", "^H", "<C-W>", { desc = "Delete previous word", noremap = true, silent = true })
これはneovimで可能です。しかし、vimを開くとマルチプレクサ、動作しません。以下を追加してみました。
bind-key -n C-BSpace send-keys C-BSpace
bind-key -n C-BSpace send-keys ^H
bind-key -n ^H send-keys ^H
bind-key -n ^H send-keys C-BSpace
何も動作しないようです。他の回答をオンラインで見つけましたが、同様の問題を抱えている人が見つかりませんでした。
したがって、alacrittyでオプションを設定する前に実行$ cat
(またはCtrl+を最初に押すV)してから、+が表示されますが、対応するCtrlキーバインディングをalacrittyに追加した後は、それを行わずに直前の単語の削除を開始します。しかし、ネオビームはこのようなことをしません。Backspace^H
$ cat
また、2つの異なる端末(xfce4-terminalとterminator)を試しましたが、どちらも^H
この端末でキーバインディングを設定する方法がわかりません。この端末でCtrl+を押すだけでBackspace単一の端末のように動作し、Backspacetmuxでも同じことを行います(この端末で使用されている場合)。
編集[解決済み]:tmux設定でCtrl-Wのバインディングを設定しました。提案されたコメントの1つは次のとおりです。
Ctrl-wはneovimの挿入モードとコマンドラインから以前の単語をすでに削除していますが、なぜこれが起こるのですか?
私の答えはすでにCtrl-Wでバインディングが設定されていたので、対応するキーバインディングを削除しようとしましたが、うまくいきました。私の設定:
alacritty.yml
:
key_bindings:
- { key: Back, mods: Control, chars: "\x17" }
nvim/init.lua
:
vim.keymap.set("i", "^H", "<C-W>", { noremap = true, silent = true })
これら2つを組み合わせると、実際にこの問題は解決されます。しかし、vimがCtrl-BackspaceをCtrl-Wに変換し、tmux設定でCtrl-Wをバインディングに設定したので、tmuxはその特定のバインディングを妨げる可能性があると思いました。わかりません。しかし、これが私が直した方法です。