首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在具有vi风格键绑定的gtk应用程序中输入h、j、k、l

在具有vi风格键绑定的gtk应用程序中输入h、j、k、l
EN

Stack Overflow用户
提问于 2014-02-24 15:01:39
回答 1查看 516关注 0票数 1

以下是vim提示的收据:

代码语言:javascript
复制
# /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。如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-24 16:03:51

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

非模态编辑器或textfield小部件,比如您正在使用的部件,有自己处理键盘α-数字键的方法:修饰符键。

任一

  • 您按了一个键进入某种模式,您可以点击hjkl而不将它们插入到文本中。

  • hjkl加一个修饰符键。

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

只有当用户处于阻止他/她插入所键入内容的模式时,才能使用hjkl进行光标移动。但是,它可能在GtkTreeView或其他不需要用户键入文本的上下文中“工作”。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21991351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档