Vim 使用vi风格的键绑定在gtk应用程序中输入h、j、k、l
以下是来自vim tips的receipe:Vim 使用vi风格的键绑定在gtk应用程序中输入h、j、k、l,vim,gtk,keyboard-shortcuts,Vim,Gtk,Keyboard Shortcuts,以下是来自vim tips的receipe: # /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-
# /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"
#/usr/share/themes/Vi/gtk-2.0-key/gtkrc
#用于vi类键绑定的键绑定集
绑定“gtk vi文本视图”
{
绑定“d”{“移动光标”(显示行,5,0)}
绑定“f”{“移动光标”(显示行,5,0)}
绑定“u”{“移动光标”(显示行,-5,0)}
绑定“b”{“移动光标”(显示行,-5,0)}
绑定“e”{“移动光标”(显示行,-1,0)}
绑定“y”{“移动光标”(显示行,1,0)}
绑定“j”{“移动光标”(显示行,1,0)}
绑定“k”{“移动光标”(显示行,-1,0)}
绑定“l”{“移动光标”(逻辑位置,1,0)}
绑定“h”{“移动光标”(逻辑位置,-1,0)}
}
绑定“gtk vi树视图”
{
绑定“j”{“移动光标”(显示行,1)}
绑定“k”{“移动光标”(显示行,-1)}
绑定“l”{“移动光标”(逻辑位置,1)}
绑定“h”{“移动光标”(逻辑位置,-1)}
}
类“GtkTextView”绑定“gtk vi文本视图”
类“GtkTreeView”绑定“gtk vi树视图”
#最后一部分是注意您的本地gtk配置文件。签入名为“.gtkrc-2.0”的主目录文件。并“触摸”它。唯一要做的就是附加:
gtk key theme=“Vi”
这很好,但问题是,在这种配置下,无法再输入字母
h、 j、k和l。如何解决这个问题?您错过了房间里的大象:Vi(m)是一个模式编辑器,而
GtkTextView
小部件显然不是
非模态编辑器或文本字段小部件(如您正在使用的小部件)有自己处理键盘字母数字键的方法:修改键
或者
- 您可以按一个键进入某种模式,在这种模式下,您可以按hjkl而无需在文本中插入它们
- 按hjkl加上一个修改键
hjkl
移动光标只有在用户处于无法插入其键入内容的模式时才有意义。不过,它可能在GtkTreeView
或其他不希望用户键入文本的上下文中“起作用”
所以…我不确定你是否真的考虑过你的问题。你错过了房间里的大象:Vi(m)是一个模态编辑器,而
GtkTextView
小部件显然不是
非模态编辑器或文本字段小部件(如您正在使用的小部件)有自己处理键盘字母数字键的方法:修改键
或者
- 您可以按一个键进入某种模式,在这种模式下,您可以按hjkl而无需在文本中插入它们
- 按hjkl加上一个修改键
hjkl
移动光标只有在用户处于无法插入其键入内容的模式时才有意义。不过,它可能在GtkTreeView
或其他不希望用户键入文本的上下文中“起作用”
所以…我不确定你是否真的考虑过你的问题。你错过了房间里的大象:Vi(m)是一个模态编辑器,而
GtkTextView
小部件显然不是
非模态编辑器或文本字段小部件(如您正在使用的小部件)有自己处理键盘字母数字键的方法:修改键
或者
- 您可以按一个键进入某种模式,在这种模式下,您可以按hjkl而无需在文本中插入它们
- 按hjkl加上一个修改键
hjkl
移动光标只有在用户处于无法插入其键入内容的模式时才有意义。不过,它可能在GtkTreeView
或其他不希望用户键入文本的上下文中“起作用”
所以…我不确定你是否真的考虑过你的问题。你错过了房间里的大象:Vi(m)是一个模态编辑器,而
GtkTextView
小部件显然不是
非模态编辑器或文本字段小部件(如您正在使用的小部件)有自己处理键盘字母数字键的方法:修改键
或者
- 您可以按一个键进入某种模式,在这种模式下,您可以按hjkl而无需在文本中插入它们
- 按hjkl加上一个修改键
hjkl
移动光标只有在用户处于无法插入其键入内容的模式时才有意义。不过,它可能在GtkTreeView
或其他不希望用户键入文本的上下文中“起作用”
所以…我不确定你是否真的考虑过你的问题