下面用粗体显示的问题。这是一个编程问题,所以不要急于下结论并投票结束。
我是一名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
手册页。