如何在终端中浏览 Stack Overflow
创始人
2024-03-02 01:07:34
0

前段时间,我们写了一篇关于 SoCLI 的文章,它是一个从命令行搜索和浏览 Stack Overflow 网站的 python 脚本。今天,我们将讨论一个名为 “how2” 的类似工具。它是一个命令行程序,可以从终端浏览 Stack Overflow。你可以如你在 Google 搜索中那样直接用英语查询,然后它会使用 Google 和 Stackoverflow API 来搜索给定的查询。它是使用 NodeJS 编写的自由开源程序。

使用 how2 从终端浏览 Stack Overflow

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

在安装 Npm 和 NodeJS 后,运行以下命令安装 how2。

$ npm install -g how2

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

$ how2 

例如,我将搜索如何创建 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. (/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. (/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)

我可能遇到了一个 bug。我希望它在未来版本中得到修复。但是,我在这里找到了一个临时方法。

要临时修复此错误,你需要使用以下命令编辑 transport.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 站点中的所有建议问题和答案。

使用向上/向下箭头在结果之间移动。得到正确的答案/问题后,点击空格键或回车键在终端中打开它。

要返回并退出,请按 ESC

搜索特定语言的答案

如果你没有指定语言,它默认为 Bash unix 命令行,并立即为你提供最可能的答案。你还可以将结果缩小到特定语言,例如 perl、python、c、Java 等。

例如,使用 -l 标志仅搜索与 “Python” 语言相关的查询,如下所示。

$ how2 -l python linked list

要获得快速帮助,请输入:

$ how2 -h

总结

how2 是一个基本的命令行程序,它可以快速搜索 Stack Overflow 中的问题和答案,而无需离开终端,并且它可以很好地完成这项工作。但是,它只是 Stack overflow 的 CLI 浏览器。对于一些高级功能,例如搜索投票最多的问题,使用多个标签搜索查询,彩色界面,提交新问题和查看问题统计信息等,SoCLI 做得更好。

就是这些了。希望这篇文章有用。我将很快写一篇新的指南。在此之前,请继续关注!

干杯!


via: https://www.ostechnix.com/how-to-browse-stack-overflow-from-terminal/

作者:SK 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

Byte Buddy的方法...
在使用Byte Buddy进行方法委托时,如果出现StackOve...
2025-01-12 20:30:28
不写JSON:无限递归(S...
在使用Jackson库将对象转换为JSON时,如果对象之间存在循环...
2025-01-10 10:31:02
Blazor错误:“没有注...
该错误通常是由于未正确配置依赖注入而导致的。在类库或应用程序的启动...
2024-12-21 02:30:56
避免在调用datafram...
在PySpark中,可以通过使用foldLeft或reduce方法...
2024-12-17 03:01:39
BigQuery Stac...
要通过BigQuery查询已关闭的问题并按类别进行分组,可以使用S...
2024-12-12 07:31:23
编译查询时出现Stacko...
检查查询语句是否过于复杂,是否存在递归或循环调用,如果存在此类操作...
2024-12-07 20:00:43

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...