如何从终端浏览堆栈溢出

前段时间,我们写过关于 SoCLI,一个 Python 脚本,用于从命令行搜索和浏览 Stack Overflow 网站。 今天,我们将讨论一个类似的工具,名为 “如何2”. 它是从终端浏览 Stack Overflow 的命令行实用程序。 您可以按照您的方式用简单的英语查询 谷歌搜索 它使用 Google 和 Stackoverflow API 来搜索给定的查询。 它是免费的开源实用程序,使用 节点JS.

使用 how2 从终端浏览 Stack Overflow

由于how2是一个NodeJS包,我们可以使用安装它 Npm 包管理器。 如果您尚未安装 Npm 和 NodeJS,请参阅以下指南。

  • 如何在 Linux 上安装 NodeJS

安装 Npm 和 NodeJS 后,运行以下命令安装 how2 实用程序。

$ npm install -g how2

现在让我们看看如何使用这个程序浏览 Stack Overflow。 使用“how2”实用程序搜索 Stack Overflow 站点的典型用法是:

$ how2 <search-query>

例如,我将搜索如何创建 tgz 存档。

$ how2 create archive tgz

哎呀! 我收到以下错误。

/home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/transport.js:59 Transport.prototype.__proto__ = EventEmitter.prototype;  ^   TypeError: Cannot read property 'prototype' of undefined  at Object.<anonymous> (/home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/transport.js:59:46)  at Module._compile (internal/modules/cjs/loader.js:654:30)  at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)  at Module.load (internal/modules/cjs/loader.js:566:32)  at tryModuleLoad (internal/modules/cjs/loader.js:506:12)  at Function.Module._load (internal/modules/cjs/loader.js:498:3)  at Module.require (internal/modules/cjs/loader.js:598:17)  at require (internal/modules/cjs/helpers.js:11:18)  at Object.<anonymous> (/home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/stream.js:8:17)  at Module._compile (internal/modules/cjs/loader.js:654:30)

这可能是一个错误。 我希望它在未来的版本中得到修复。 但是,我发现发布了一个解决方法 这里.

要暂时修复此错误,您需要编辑 传输.js 文件使用命令:

$ vi /home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/transport.js

该文件的实际路径将显示在您的错误输出中。 用你自己的替换上面的文件路径。 然后找到以下行:

var EventEmitter = process.EventEmitter;

并将其替换为以下行:

var EventEmitter = require('events');

按 ESC 并输入 :wq 保存并退出文件。

现在再次搜索查询。

$ how2 create archive tgz

这是我的 Ubuntu 系统的示例输出。

从终端浏览堆栈溢出

如果上述输出中未显示您要查找的答案,请按 空格键 键开始交互式搜索,您可以在其中浏览 Stack Overflow 站点上的所有建议问题和答案。