前段时间,我们写过关于 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 站点上的所有建议问题和答案。