Rol*_*olf 103 command-line zsh
我最近在Ubuntu上从Bash切换到了Zsh,我很高兴.但是,有一些我真的很想念,我没有找到如何实现同样的事情.
在Bash中,每当我输入一个长命令并注意到我之前必须运行其他东西时,我只需要将其注释掉,如下所示:
me@home> #mysuperlongcommand with some arguments
me@home> thecommandIhavetorunfirst #and then: then up up
me@home> #mysuperlongcommand with some arguments #I just need to uncomment it!
Run Code Online (Sandbox Code Playgroud)
然而,这种相当复杂的情况并不像以前那样容易解决zsh,因为这样做#mysuperlongcommand会导致:并导致:zsh: command not found: #mysuperlongcommand.
小智 156
刚刚开始尝试zsh,我也遇到了这个问题.您可以setopt interactivecomments激活bash样式的注释.
Mic*_*ski 38
我用
bindkey "^Q" push-input
Run Code Online (Sandbox Code Playgroud)
从zsh手册:
将整个当前多行结构推送到缓冲区堆栈并返回顶级(PS1)提示符.如果当前的解析器构造只是一行,这就像推线.下次编辑器启动或弹出get-line时,该构造将弹出缓冲区堆栈的顶部并加载到编辑缓冲区中.
所以它看起来像这样:
> long command
Ctrl+Q => long command disappears to the stack
> forgotten command
long command reappears from stack
> long command
Run Code Online (Sandbox Code Playgroud)
此外,如果设置INTERACTIVE_COMMENTS选项(setopt INTERACTIVE_COMMENTS),您将能够像以前一样在交互式shell中使用注释.
Fre*_*and 18
我发现自己经常这样做.我所做的是剪切long命令,执行需要先执行的命令,然后将long命令粘贴回来.这很简单:CTRL + U将当前命令切换到缓冲区,CTRL + Y粘贴它.适用于zsh和bash.
Jun*_*ite 11
将该行添加setopt INTERACTIVE_COMMENTS到您的~/.zshrc文件中,保存它,然后重新启动 shell。
这是为了澄清@Lajnold 的回答和@Hamish Downer 的评论。我花了一点时间才弄清楚如何使这种改变永久化。您可能想在导出变量之前添加该行,因此可以将其添加到文件的顶部。setopt PROMPT_SUBST我的文件中已经有~/.zshrc,所以我只是将其添加到该行之后。这将确保每次启动 zsh 终端时都会加载设置。
: sh generate_sample.sh arg1
Run Code Online (Sandbox Code Playgroud)
添加“:”不会执行 zsh 中的命令。
sh generate_sample.sh : arg1
Run Code Online (Sandbox Code Playgroud)
现在 arg1 已被注释。
我使用的是 Mac OS Big Sur,并使用过多次。
编辑:“:”过程适用于不给出空格。“:command”是正确的,但“:command”不正确
| 归档时间: |
|
| 查看次数: |
12794 次 |
| 最近记录: |