gpt4 book ai didi

c++ - 任何快速跳转到编程文档的好工具

转载 作者:可可西里 更新时间:2023-11-01 16:38:56 27 4
gpt4 key购买 nike

下面加粗的问题。这是一个编程问题,所以不要仓促下结论并投票结束。

我是一名 C++ 程序员。我使用 OS X/quicksilver或 ubuntu/compiz/gnome do作为我的桌面。我尽量不碰鼠标,我使用多个桌面,我使用平铺这两个我从键盘驱动的桌面。对于编程,我使用 bash 和 vim。

因为我是一名 C++ 程序员,所以我需要引用散布在各处的文档,例如 STL/Boost/CMAKE/zeromq/protocol buffers/Mongodb/rapidJson/luajit 等等。

跳转到各种引用手册是一个实时的沉没/思维过程干扰。也许您不相信这真的是一个问题,但是如果您使用来自 boost 的多个库,而没有代码完成,您会意识到这确实是一个问题。人们如何管理他们的引用手册链接以及跳转到引用手册的最快方法是什么?标准浏览器书签不是答案,无论您建议什么,都应该以尽可能少的击键次数或从信息需求合成到信息需求满足的最低延迟完成。

也许是自定义浏览器,或者我不知道的强大插件?对于目录导航,我使用 vim 的 NERDTree ,也许是沿着这些路线的东西?例如,我应该能够键入 boost-filesystem 并能够直接跳转到 boost-filesystem 的代码引用页面。

最佳答案

如果您的文档引用具有明确定义的 URI,您可以创建一个小程序,在给定文档 ID 和一些实体标识符的情况下自动构造正确的 URI。

比如我写了一个小Ubiquity命令允许我快速打开任何 Qt 实体的最新文档,只需切换到 Firefox,键入 ctrl+space 弹出 Ubiquity 控制台,然后键入 qt QSomeClass.

这是 Ubiquity 命令的完整代码(如果您已经安装了 Ubiquity,您可以在 this blank page 上订阅命令源):

CmdUtils.makeSearchCommand({
names: ["qt"],
author: {name: "Luc Touraille"},
url: "http://doc.qt.nokia.com/main-snapshot/{QUERY}.html",
icon: "http://qt.nokia.com/favicon.ico",
description: "Searches the Qt Documentation for your word."
});

如您所见,它非常简单并且可以很容易地适用于其他在线文档,只要 URL 构造良好

编辑

这是一个更通用的版本,您可以根据自己的需要进行调整(您只需要填写模板映射):

var urlTemplates = {
"QT": "http://doc.qt.nokia.com/main-snapshot/{QUERY}.html",
"MPL": "www.boost.org/doc/libs/release/libs/mpl/doc/refmanual/{QUERY}.html",
".NET": "http://msdn.microsoft.com/en-us/library/{QUERY}.aspx"
};

CmdUtils.CreateCommand({
names: ["doc"],
author: {name: "Luc Touraille"},

arguments: [ {role: "object",
nountype: /^[0-9a-zA-Z_.-]*$/,
label: "entity"
},
{role: "source",
nountype: [source for (source in urlTemplates)],
label: "documentation"
} ],

description: "Searches the documentation for some entity on a given documentation reference.",

_getSearchResultUrl: function( arguments ) {
var documentationSource = arguments.source.text;

var urlTemplate = urlTemplates[documentationSource.toUpperCase()];

return urlTemplate.replace("{QUERY}", arguments.object.text);
},

execute: function( arguments ) {
Utils.openUrlInBrowser(this._getSearchResultUrl(arguments));
}
});

示例用途:

doc QMainWindow from qt
doc from mpl vector
doc system.idisposable from .net
doc this from .net // with some text selected

当然,这是一个非常幼稚的实现,在大多数网站上都会失败。一种更先进的方法可以用函数替换映射中的 URL 模板,从而提供对目标 URL 构造的更多控制。我将把它作为练习留给读者 :)。另一种解决方案可能是在网站上执行搜索(假设它为搜索提供了适当的 REST API)并跳转到第一个结果。

关于c++ - 任何快速跳转到编程文档的好工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9977179/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com