我想排除一些特定命令保存到 zsh 历史记录中。
例如:无论设置HIST_IGNORE_SPACE与否,都排除 mpv/mpc 命令保存到 zsh 历史记录中。
我在这里找到了答案,但当我测试它时它不起作用。
我使用clipmenu 选择要粘贴到以zsh 作为shell 运行的终端中的内容。
问题是,例如,当我粘贴一个 shell 函数时,zsh 会回显错误,该函数包含一些 # 用于该函数内的注释。我必须手动返回并清除所有包含 # 的行。
系统:archlinux/zsh/clipmenu
编辑:功能示例:
test() {
# must remove this line manually after paste into zsh's shell
<do something>
}
Run Code Online (Sandbox Code Playgroud) 例如,如果test -e是:
VAR="<this is a file path: /path/to/file/or/dir"
test -e $VAR && do_something || do_anotherthing
Run Code Online (Sandbox Code Playgroud)
问题:我应该"$VAR"在这里使用吗?如果没有必要,这里我不喜欢冗长,因为$VAR显然在这种情况下是一条路径,那么如果它是空字符串,它应该总是失败,因为没有路径是空字符串,然后按照我的逻辑,双引号是没有必要的。
但它是字符串测试的情况,测试 -n 例如:
VAR="<this is a string"
test -n $VAR && do_something || do_anotherthing
Run Code Online (Sandbox Code Playgroud)
然后按照我的逻辑,$VAR应该放在双引号中:"$VAR"因为它可以扩展为空字符串,如果不在双引号中,则将仅扩展为-n参数并且始终为真。
因此,真正的问题是因为我怀疑我们是否应该在测试命令中仅在字符串-n和-z字符串中使用双引号?
我已经stty cols 72在我的xterm终端中设置了。
怎么恢复正常呢?因为当我更改该终端的大小时,cols始终设置为72并且无法拉伸到当前调整大小的终端窗口。
我运行stty cols 72 && w3m https://google.com,所以我需要重置stty cols回终端窗口的最后状态。
我确实也stty设置了~/.zshrc一些选项。