如何在所有其他程序中编写程序来实现vim功能:
例如当我点击“j”时,如果它处于正常模式,它会发送“向下滚动”快捷方式,如果它处于插入模式,它会向聚焦窗口或程序发送“j”字符
我的问题是
有可能吗? 有没有类似的程序? 如何在所有其他程序之前捕获击键? 如何将按键发送到聚焦窗口? 实际上我需要使用哪个库?
感谢
答案 0 :(得分:0)
我有点找到答案。使用i3wm和xdotool,您可以模拟类似vim的行为
在i3wm中,您可以定义不同的模式并为不同的操作分配相同的快捷方式,如下所示:mode "workspace" {
bindsym j workspace prev
bindsym h workspace prev
bindsym k workspace next
bindsym l workspace next
bindsym Escape mode "default"
}
bindsym $mod+w mode "workspace"
将以上代码添加到.i3 / cofig文件中,我使用Mod4(win key)代替我的$ mod
现在当你点击Mod4 + w i3进入工作区模式,你可以通过hljk更改工作区
这是另一个实际上对我不起作用的例子,但也许它对你有用
mode "vim" {
bindsym --release j exec --no-startup-id xdotool key --clearmodifiers Down
bindsym --release k exec --no-startup-id xdotool key --clearmodifiers Up
bindsym --release h exec --no-startup-id xdotool key --clearmodifiers Left
bindsym --release l exec --no-startup-id xdotool key --clearmodifiers Right
bindsym Escape mode "default"
}
bindsym $mod+m mode "vim"