起動方法Tmux、Neovim、Alacrittyを使って古い単語を削除しますか?

起動方法Tmux、Neovim、Alacrittyを使って古い単語を削除しますか?

私は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はその特定のバインディングを妨げる可能性があると思いました。わかりません。しかし、これが私が直した方法です。

ベストアンサー1

おすすめ記事