나는 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+ Backspace가 표시되지만 ^H
해당 키 바인딩을 alacritty에 추가한 후에는 더 이상 그렇게 하지 않고 바로 앞에 있는 단어를 삭제하기 시작합니다. 하지만 네오빔은 이런 일을 하지 않습니다.
$ cat
또한 두 개의 다른 터미널(xfce4-terminal 및 terminator)을 시도했는데 둘 다 ^H
이 터미널에서 키 바인딩을 설정하는 방법을 모르겠습니다. 이 터미널에서 Ctrl+를 누르기만 하면 Backspace단일 터미널처럼 작동하며 Backspacetmux에서도 동일한 작업을 수행합니다(이 터미널에서 사용되는 경우).
편집[해결됨]: tmux 구성에서 Ctrl-W에 대한 바인딩을 설정했습니다. 제안된 의견 중 하나는 다음과 같습니다.
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 })
이 두 가지를 결합하면 실제로 이 문제가 해결됩니다. 그러나 vim이 Ctrl-Backspace를 Ctrl-W로 변환하고 tmux 구성에서 Ctrl-W를 바인딩으로 설정했기 때문에 tmux가 해당 특정 바인딩을 방해할 수 있다고 생각했습니다. 나는 모른다. 그러나 이것이 내가 고친 방법입니다.