很棒的命令行工具
大多数时候,当我不使用 Vim 时,我可能都在命令行里徘徊。值得庆幸的是,市面上不乏优秀的 CLI 工具。在这里,我想分享一些它们以及我的使用方法。
对于 TL;DR,滚动到底部,您会找到包含链接的简短列表。
tldr
手册页是查找文档和了解程序工作原理的绝佳去处,但有时我们需要快速浏览某个工具的使用示例。例如,我总是记不住如何使用 发送 POST 请求curl
。
tldr就是这样做的——打印一个简短的描述,然后给出可能的使用方法。有了手头最常见的示例,我可以快速复制我需要的内容并运行。
色/z
我无法想象没有这个小脚本的生活。它会追踪我最常用的目录以及使用频率,然后让我只需输入部分路径即可跳转到相应的目录。
例如,当我想访问时~/projects/web/vimfromscratch
,我只需输入z vimf
,然后点击Enter
。
我还建议将默认命令名称从 更改为z
(j
这样更容易操作)。您可以创建别名,也可以设置全局环境变量:
export _Z_CMD="j"
我必须提一下,您可以尝试一些替代方案:
diff-so-fancy
此工具diff
是or的直接替代品git diff
。它的功能相同,但风格更独特。默认颜色更美观,并且 diff 功能可以显示同一行内的变化(见屏幕截图)。
为了使其成为默认的 Git 分页器,请运行以下命令:
git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"
然后,您还可以diff
通过设置别名来替换默认值:
alias diff="diff-so-fancy"
蝙蝠
既然我们开始讨论语法高亮,你有没有想过这cat
有点无聊?如果它能够高亮打印文件的语法,那不是很好吗?
这个问题的答案是bat。bat
它为许多语言添加了语法高亮显示。此外,它与 Git 集成,因此它会显示你正在查看的文件中发生了哪些更改。
您可能想要更换旧型号:
alias cat="bat"
您可以通过导出来为您的手册页着色:
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
对于其他有趣的集成,请查看README。
ripgrep
Ripgrep是 Silver Searcher 的替代品ag
。它的速度明显更快,并且还具有一些合理的默认行为,例如尊重你的.gitignore
文件。
正如您在屏幕截图上看到的,输出很清晰,并且搜索模式在输出结果中突出显示,这很好。
埃克萨
另一个可以替代内置ls
命令的替代方案是Exa。同样,本文中的其他一些工具exa
也提供了颜色突出显示和一些合理的默认设置,但总体上仍然与 API 兼容ls
。
alias ls="exa"
# I usually use this command instead
alias l="exa -lahF"
FD
到此时,您可能已经明白,如果有某个内置命令的替代品,我可能会安装它。
来看看fd,一个比 更快的替代方案find
。 的问题find
在于 ,我永远都记不住怎么用。应该是find myfile.py
,还是find --name myfile.py
,还是加一个短划线?我应该.
在搜索模式之前还是之后添加?唉呀。
有了fd
,一切总是那么简单fd myfile.py
。同样,这也是为了更合理的默认值和漂亮的彩色输出(见截图)。
别忘了
alias find="fd"
频率
哦对了,我把最酷的留到最后了。Fzf (模糊查找器)是一个用 Go 编写的超快工具,它只做一件事:它接受一个行列表作为输入,然后让用户在其中进行模糊搜索以查找其中的文本。
虽然这听起来可能不太令人印象深刻,但有趣的部分始于应用程序。
例如,尝试
vim $(fzf)
系统会提示你一个文件列表,你可以在其中搜索。按下 后enter
,选定的文件将在 Vim 中打开。
或者,您可以尝试按下Ctrl+R
(在 Shell 中运行命令历史记录的命令)。现在,您可以在命令中进行模糊搜索,然后按下enter
来执行它。
在搜索文件时,Fzf
可以为您提供很好的预览(见截图),您只需要指定预览命令:
fzf --preview="bat {} --color=always"
还记得rupa/z
脚本吗?Fzf
它与它很好地集成,因此如果您z
不带参数运行,您可以在最常用的目录中进行模糊搜索。
说实话,它的用途真是无穷无尽,没有极限。不妨试试浏览此页面上的示例。
你用的这个东西是啥?
如果你想知道的话,我的设置基于以下内容:
太长不看
- tldr用于快速查看使用示例
- rupa/z用于在目录之间跳转
- diff-sofancy实现更好的差异化
- 替换
cat
为 - ripgrep用于在文本文件中搜索模式
- exa色彩丰富且快速
ls
- fd的替代品
find
- Fzf用于模糊搜索
附言:我正在写一本关于 Vim 的开发者书籍。欢迎阅读。
文章来源:https://dev.to/janis_t/awesome-command-line-tools-204n