Answers:
这里是一个简单的“全选”,在GTK绑定:C-/
它被定义为一般的GtkTextView信号,而不是emacs关键主题的一部分。但它可以正常工作。定义为的替代方法C-a
。尽管后者由emacs主题重新解释,但C-/
对于“全选”仍然有效。
没有一个直接执行此操作的捷径。
您可以使用Ctrl- 转到文本结尾,e然后删除Ctrl- 行u。但是GtkEntry
,这仅适用于,即单行输入字段。
如果您需要在GtkTextView
类似于多行编辑器的控件中选择所有内容,则只需执行繁琐的操作Ctrl- Home再加上Ctrl+ Shift-即可End,而使用我的63键键盘几乎是不可能的。
如果出于良好的编辑效率或移动设备键盘的限制原因,Home并且End超出了此范围,那么您将不得不克服。选择“全选”,从“编辑”菜单中是一个坏主意,因为它映射到Alt- e- a在Firefox中, Alt- e- t在gedit中,Alt- e- s在OpenOffice的(即使是GNOME集成),在每个软件不同的密钥,并且在某些软件中,“编辑菜单”中没有“全选”功能,例如铬。在某些软件中,甚至没有“编辑菜单”本身,甚至没有隐藏的菜单可以用Alt-e,就像鹦鹉螺一样。这种不一致超出了Alt激活菜单栏的目的,并且没有任何操作系统(甚至Windows)如此不稳定。甚至右键单击菜单也没有“全选”的固定快捷方式-通常是这样,a但是可以在t应用程序之间使用。只能使用像GNOME这样的元项目来在每个单独的软件中进行错误修复,但是知道GNOME本身会产生一些这样的问题(删除“ nautilus”中的“编辑菜单”是GNOME 3的决定)确实没有离开你很有希望。
附带说明一下,Ctrl- Home是移至所有文本开头的唯一捷径,即使它可能会打断您键入小键盘移动设备的工作。
答案到此结束。对于好奇的人,我还有其他信息:
作为一名经验丰富的Emacs用户将尝试Ctrl- - x:h正宗emacs的确实,但没有控制键序列是由gtk3的emacs模式的理解。实际上,仅定义了少数emacs快捷方式-偷窥/usr/share/themes/Emacs/gtk-3.0/gtk-keys.css
;标签上有足够的空间来记下所有受支持的emacs快捷方式。
使情况变得更糟的是,为此目的很难重新定位快捷键。如您所知,Ctrl- a被emacs占用。但即使Hispanophones,最大的非英语组(中国排除在外,因为我们使用的象形文字),谁是用来选择的一切Ctrl- e,会发现Emacs可以采取的键盘快捷键,太。不包括e,QWERTY键盘的左半部分中没有任何其他键,其目的已经为人们所接受。单独按下时,Google Translate将SHIFT键作为“全选”,但其他软件或其他Google产品均不遵循该设置。
要清空一行,请使用Ctrl- u。这样的好处是不会覆盖X SELECTION(使用鼠标中键拉动的X SELECTION)。这仅是gtk3的emacs模式的独特设置:在实际的emacs中,它本身不会做任何事情;在readline(bash,mysql等)中,应该删除从光标到该行开头的所有内容,而它的对应部分Ctrl- k删除从光标到该行结尾的所有内容。
有些人可能建议您在某个地方留下一个标记,以便使用键盘随机选择。您可能还会发现Ctrl - SPACE在emacs模式下配置为在文本中设置锚点。尽管与许多其他软件(特别是表意符号输入法,以及某些其他编辑器软件中的自动完成)相冲突,但没有任何快捷键可用于使用您设置的锚点。
Ubuntu并没有正式禁止emacs编辑模式,也没有任何其他用UI无法完成的UI配置。有关此类需求的错误报告被标记为优先级低。因此,我认为最好向Linux通用场所(例如超级用户)提出这样的问题。
对于GTK3应用程序,您可以在本地/usr/share/themes/Emacs/gtk-3.0/gtk-keys.css
或可能在GitHub上的GTK git存储库上查看Emacs GTK键主题的绑定(可能在本地)(它不一定等于您的本地文件,因为您的发行版可能已对其进行了修改) 。
在读取此文件时,您必须了解小部件的含义
(查看每个链接站点顶部的图像。)
select-all
为GtkTreeView
和GtkTextView
对于GtkTreeView
和GtkTextView
小部件,有一个信号称为select-all
。您需要将参数传递给它,1
以便它选择全部而不是取消选择。
因此,编辑~/.config/gtk-3.0/gtk.css
并添加如下内容:
@binding-set my-text-and-tree-view-bindings
{
bind "<alt>a"
{
"select-all" (1)
};
}
textview {
-gtk-key-bindings: my-text-and-tree-view-bindings;
}
treeview {
-gtk-key-bindings: my-text-and-tree-view-bindings;
}
GtkEntry
因为GtkEntry
没有select-all
信号。相反,您可以使用两个move-cursor
信号序列标记文本。
再次,编辑~/.config/gtk-3.0/gtk.css
并添加如下内容:
@binding-set my-entry-bindings
{
bind "<alt>a"
{
"move-cursor" (paragraph-ends, -1, 0)
"move-cursor" (paragraph-ends, 1, 1)
};
}
entry {
-gtk-key-bindings: my-entry-bindings;
}
顺便说一句,在Firefox中Alt- a默认情况下无需配置即可为我全选(使用Emacs GTK键主题)。
如果要选择一个区域中的所有文本,我更愿意为此定义一个简单的宏。按F3键开始编写宏。然后输入
Esc - < // goes to beginning of document
Ctrl - spacebar // set mark
Esc - > // selects all till end of document
然后使用M -w进行复制(这是我通常从远程UNIX系统复制到本地Windows的操作),然后按F4键完成对宏的定义。
现在您已经完成了定义宏的操作,只需多次按F4键即可重复执行该操作。
http://www.emacswiki.org/emacs/EmacsNewbieKeyReference#toc8似乎正是您想要的(设置标记后Cx h)
另外,取决于您是否要使用“页面”或缓冲区等。