我非常喜欢VIM,我想在任何地方都使用它的键绑定。有很多可以模拟此功能的IDE插件,但我想要更多,也许是Minecraft中的VIM绑定? :D或VIM键绑定无处不在,而无需下载任何插件。
我注意到每个编辑器都实现了以下键: Home , End , Ctrl + End ,< kbd> Ctrl + 左, Ctrl + 退格,依此类推...
我将这些键用作构建块,并为i3wm设计了此配置:
Map
该代码段有效,但并非以我想要的方式运行。如果我不使用Map
,则该代码根本无法工作,因为此键不会重复,因此无法按住 J 并向下滚动。>
这似乎是一个窗口焦点问题。由于某些原因,当我按下快捷键时,窗口会失去焦点几毫秒,然后又重新聚焦。这在Firefox的网址栏中最为明显。我发现this question asked years ago表示建议在执行mode "VIM MODE NORMAL" {
bindsym --release h exec "xdotool key --clearmodifiers Left"
bindsym --release j exec "xdotool key --clearmodifiers Down"
bindsym --release k exec "xdotool key --clearmodifiers Up"
bindsym --release l exec "xdotool key --clearmodifiers Right"
bindsym --release Shift H exec "xdotool key --clearmodifiers Home"
bindsym --release Shift L exec "xdotool key --clearmodifiers End"
bindsym --release Shift G exec "xdotool key --clearmodifiers ctrl+End"
bindsym --release g exec "xdotool key --clearmodifiers ctrl+Home"
bindsym --release u exec "xdotool key --clearmodifiers --repeat 5 Up"
bindsym --release d exec "xdotool key --clearmodifiers --repeat 5 Down"
bindsym --release b exec "xdotool key --clearmodifiers ctrl+Left"
bindsym --release e exec "xdotool key --clearmodifiers ctrl+Right"
bindsym --release Shift O exec "xdotool key --clearmodifiers Up End Return"; mode "delault"
bindsym --release o exec "xdotool key --clearmodifiers End Return"; mode "default"
bindsym --release Shift A exec "xdotool key --clearmodifiers End"; mode "default"
bindsym --release Shift I exec "xdotool key --clearmodifiers Home"; mode "default"
bindsym q mode "default"
bindsym Escape mode "default"
}
bindsym Menu mode "VIM MODE NORMAL"
之前增加一秒钟的延迟,我可以使用它,但是第二秒钟会产生巨大的输入延迟。
我还尝试了其他窗口管理器和热键守护程序--release
,但一切都完全相同...
答案 0 :(得分:2)
我也遇到了同样的问题,我意识到您必须告诉xdotool为您的键绑定中的键发送键启动事件。例如:
bindsym h exec "xdotool keyup h; xdotool key"
对每个绑定都执行此操作,我认为它会起作用。