如何在 Firefox 中指定搜索引擎的关键字?

How to specify the Keyword for search engines in Firefox?

一直困扰我的是我无法管理 "One-click search engines" 的关键字。关键字在Firefox 38.0.1中可以显示如下

通过 link 的帮助,我找到了 add/hide/remove 搜索引擎的方法。但是对于如何修改搜索引擎并没有给出任何建议。

我学习如何更改关键字的实际动机是:

  1. Firefox 无法在不同安装之间同步 "search engines"。目前只能同步书签和插件。
  2. 我在 Firefox 中使用 Vimperator,按 o(或 t),然后按 TAB,然后按 关键字 对于搜索引擎,将启用整理一个搜索查询序列。示例:

    :open google happy 2015

将启动 Google 结果页面搜索 "happy 2015"。

So, the syntax is: ":open keyword search-pattern".

谁能告诉我如何更改搜索引擎的"keyword"?或者,指导如何创建我自己的搜索引擎? (在网络上或本地加载都可以。)

简而言之,Brandon Parmenter 友情提供的解决方案如下:

:bmark http://example.com/search#q=%s -keyword=example


longer/older 回答开始

虽然受以下 link 启发的解决方案不会更改搜索引擎的条目,但它确实提供了功能齐全的 关键字 功能。

wikiHow:How to Add a Custom Search Engine to Firefox's Search Bar

与外部 link 中建议的不同,不需要进一步的附加组件。以下步骤将完成搜索关键字的定义:

  1. 转到可以搜索的页面。 (google.com,或 github.com,或其他)
  2. 右键单击搜索框(通过它可以键入搜索查询)和 select "Add a Keyword for this search"
  3. 定义关键字并按回车键

这不是定义搜索引擎,而是定义搜索关键字。以这种方式定义的关键字存储为 Bookmarks 条目。

到目前为止,尚不清楚应该如何解决搜索引擎关键字与我们刚刚定义的关键字之间的关键字冲突。希望由于 Firefox 正在同步 Bookmarks 项,搜索关键字可能会同步到其他安装。

由于修改搜索引擎关键字的问题尚未解决,我将不接受我自己的回答。

此外,如果有人有兴趣查看书签条目,%s 是此类书签的 "Location" 字段中的 "place-holder",它将被任何人替换喜欢搜索。

要以编程方式更改搜索引擎的关键字,您可以这样做:

var allEngines = Services.search.getEngines()
for (var i=0; i<allEngines.length; i++) {
    var currentEngine = allEngines[i];
    console.log('name of current engine:', currentEngine.name);
    var currentKeyword = currentEngine.alias; // is null if no current key word
}

要以编程方式更改关键字,只需设置 currentEngine.alias

这是 allEngines 浏览器控制台中的一个变量查看器,您会看到它是一个数组,每个条目都是这样的,在这张图片中,这里的一个条目被展开了:

如果您知道名称,您可以使用 var currentEngine = Services.search.getEngineByName('Bing')

按名称获取引擎

要编辑搜索引擎的关键字,请双击搜索引擎的条目,或将其突出显示并按 F2。