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

Any good tool to rapidly jump to programming documentation

本文关键字:文档 工具 编程 任何快      更新时间:2023-10-16

下面用粗体显示的问题。这是一个编程问题,所以不要急于下结论并投票结束。

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

由于我是一名C++程序员,我需要参考分散在各处的文档,例如STL/Boost/CMAKE/zeromq/protocol-buffers/Mongodb/rapiJson/loajit,列表还在继续

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

也许是一个自定义浏览器,或者我不知道的强大插件?对于目录导航,我使用vim的NERDTree,也许是类似的东西?例如,我应该能够键入boost文件系统,并能够直接跳转到boost文件的代码参考页。

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

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

以下是Ubiquity命令的完整代码(如果你已经安装了Ubiquit,你可以订阅这个空白页面上的命令提要):

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的构建提供更多的控制。我将把这个留给读者练习:)。另一个解决方案可能是在网站上执行搜索(假设它提供了适当的RESTneneneba API进行搜索)并跳转到第一个结果。

恐怕您想要的是一个IDE,而Vim却不是。

有一个插件可以访问标准库文档。然而,Vim本身无法理解您的代码,也无法神奇地适应您项目中包含的任何库。Vim Wiki还有两个页面可能会引起兴趣。

I键入Shift+k查看C手册页。