【问题标题】:Input h, j, k, l in gtk applications with vi style keybindings在具有 vi 样式键绑定的 gtk 应用程序中输入 h、j、k、l
【发布时间】:2014-02-24 15:01:39
【问题描述】:

这是来自 vim 提示的收据:

# /usr/share/themes/Vi/gtk-2.0-key/gtkrc
# A key-binding set for vi-like key-bindings

binding "gtk-vi-text-view"
{
  bind "<ctrl>d" { "move-cursor" (display-lines, 5, 0) }
  bind "<ctrl>f" { "move-cursor" (display-lines, 5, 0) }
  bind "<ctrl>u" { "move-cursor" (display-lines, -5, 0) }
  bind "<ctrl>b" { "move-cursor" (display-lines, -5, 0) }
  bind "<ctrl>e" { "move-cursor" (display-lines, -1, 0) }
  bind "<ctrl>y" { "move-cursor" (display-lines, 1, 0) }
  bind "j" { "move-cursor" (display-lines, 1, 0) }
  bind "k" { "move-cursor" (display-lines, -1, 0) }
  bind "l" { "move-cursor" (logical-positions, 1, 0) }
  bind "h" { "move-cursor" (logical-positions, -1, 0) }
}

binding "gtk-vi-tree-view"
{
  bind "j" { "move-cursor" (display-lines, 1) }
  bind "k" { "move-cursor" (display-lines, -1) }
  bind "l" { "move-cursor" (logical-positions, 1) }
  bind "h" { "move-cursor" (logical-positions, -1) }
}

class "GtkTextView" binding "gtk-vi-text-view"
class "GtkTreeView" binding "gtk-vi-tree-view"

# The last part is to note your local gtk configuration file. Check in your home directory file named '.gtkrc-2.0'. and "touch" it. The only thing left to be done is appending:

gtk-key-theme="Vi"

这一切都很好,但问题是,在这种配置下,不再可能输入字母 h、j、k 和 l。怎么解决?

【问题讨论】:

  • 嗨,qed,这对你还有用吗?我很想这样做,但我担心它已经被淘汰了。我按照vim.fandom.com/wiki/Vi_key_bindings_in_gtk 的建议尝试了gtk-key-theme-name,但还是没有更好...(是的,我在GTK2 应用程序中测试过)

标签: vim gtk keyboard-shortcuts


【解决方案1】:

你错过了房间里的大象:Vi(m) 是一个 modal 编辑器,而 GtkTextView 小部件显然不是。

非模态编辑器或文本字段小部件(如您正在使用的那个)有自己的方式来处理键盘的字母数字键:修饰键。

要么

  • 您按一个键进入某种模式,您可以在其中点击hjkl 而无需在文本中插入它们

  • 你按下hjkl一个修饰键。

这些基本上是你唯一的选择。

使用hjkl 进行光标移动在用户处于阻止他/她插入他/她键入的内容的模式下才有意义。不过,它可能在GtkTreeView 或其他不希望用户输入文本的环境中“工作”。

所以……我不确定你是否真的考虑过你的问题。

【讨论】:

    猜你喜欢
    • 2022-06-28
    • 1970-01-01
    • 2015-07-28
    • 2020-09-14
    • 2019-11-15
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多