终端技巧¶
以下是一些在终端上充分利用 Pygments 的技巧。
如何确定我正在使用的 Shell?¶
运行以下命令
$ echo $SHELL
我的输出为 /usr/bin/fish
,这是可执行文件的路径。这意味着我的计算机正在使用 fish shell。 neofetch
(或类似工具)也可以提供此信息。
大多数 Shell 符合 POSIX 标准。
别名 (POSIX)¶
符合 POSIX 标准的 Shell 包括 bash
和 zsh
,以及大多数 Shell。
别名允许您使用不同的名称调用函数。在本例中,它使用不同的名称调用 pygmentize。最简单的做法是创建一个名为 cath
的别名
$ alias cath="pygmentize"
唯一的问题是 pygmentize 的工作方式并不完全像 cat
。它确实允许您使用类似于 cat 的命令来显示文件。
可以根据需要添加其他标志。monokai 样式非常适合深色背景,因此您可以添加此选项
$ alias cath="pygmentize -O style=monokai"
这是一个具有语法高亮的 less
版本。它稍微复杂一些,因为它使用环境变量 LESSOPEN
来预处理输入文件。
$ alias lessh='LESSOPEN="| pygmentize -O style=monokai %s" less -M -R '
这些别名命令需要添加到您的配置中,以便在您打开新终端(或重新启动计算机)时生效。
将上述命令添加到您的配置文件中
bash
- 编辑~/.bash_aliases
(如果存在)或~/.bashrc
文件。csh
(C shell),编辑~/.cshrc
文件ksh
(Korn shell),编辑~/.kshrc
文件。tcsh
,编辑~/.tcshrc
文件。zsh
,编辑~/.zshrc
文件。
为了将更改应用于当前的 Shell 环境系统:对刚刚编辑的文件名运行 source
$ source [~/.filenamerc]
别名 (fish shell)¶
上述 POSIX 别名可以正常工作,但在 fish shell 中永久保存别名略有不同。函数用于创建永久别名。 funced [command]
用于创建函数,之后 funcsave [command]
将函数保存到环境中。
运行 funced cath
会打开默认编辑器,并在函数中添加以下代码
function cath
# 'cath' alias will highlight source code as cat does.
alias cath="pygmentize"
end
这是带有额外参数的 cath
函数的样子
function cath
alias cath="pygmentize -O style=monokai"
end
注意:与 POSIX shell 一样,您可以在命令行上运行 alias cath="pygmentize -O style=monokai"
来提前测试别名。
测试 cath
函数。要保存函数,请运行 funcsave cath
。这将保存函数以供将来使用。
funced lessh
,它稍微复杂一些,因为它使用环境变量 LESSOPEN
来预处理输入文件。
function lessh
LESSOPEN="| pygmentize -O style=native %s" less -M -R $argv
end
测试 lessh
函数。要保存函数,请运行 funcsave lessh
。