草庐IT

git - 在 zsh 中,我如何根据程序的退出状态做一个条件?

我想做这样的事情:if[[gitstatus&>/dev/null]];thenecho"isagitrepo";elseecho"isnotagitrepo";fi除了我不知道如何检查退出状态。我该如何解决这个问题? 最佳答案 变量$?包含最后的命令返回码编辑:精确的例子:gitstatus&>/dev/nullif[$?-eq0];thenecho"gitstatusexitedsuccessfully"elseecho"gitstatusexitedwitherrorcode"fi

git - zsh : alias gco ='git checkout' 中别名子命令的 Tab 补全

我有一个别名:aliasgco='gitcheckout'如何像输入gitcheckout一样添加制表符补全?对于我的aliasg='git',我使用compdefg='git'。我一直在尝试使用compdef但我没有取得任何成功。 最佳答案 禁用此选项,你也很好......#don'texpandaliases_before_completionhasfinished#like:gitcomm-[tab]#setoptcomplete_aliases 关于git-zsh:aliasgc

git - 如何在 Zsh 上显示 git 颜色?

我最近开始使用Zsh作为我的默认shell。我喜欢git的一件事是颜色,例如,gitstatus和gitdiff曾经有颜色(添加为绿色,删除为红色)。现在Zsh是全白的(默认颜色)。如何在Zsh中为git输出添加颜色?谢谢。 最佳答案 gitconfig--globalcolor.diffautogitconfig--globalcolor.statusauto 关于git-如何在Zsh上显示git颜色?,我们在StackOverflow上找到一个类似的问题:

linux - 如何强制换出的 zsh 进程换入?

我的计算机上通常有许多长时间运行的zsh进程(分布在各种屏幕session中),但一段时间未使用的shell往往会被换掉。当我切换到这样一个换出的shell并按enter(在空提示符下)时,shell需要很多秒才能响应并显示新提示(但之后它会恢复正常工作)。为了减轻我的烦恼,我想要一个命令(例如unswapPID),我可以调用(从另一个已经响应的shell)来强制换入shell。关于如何实现这一点有什么想法吗?P.S.我开始四处寻找一个命令来要求系统交换任何进程——但我没有找到这样的东西,让我相信这不可能。我在这里将我的问题集中在zsh上,因为这是我真正感兴趣的情况,我希望可能有针对该

linux - zsh compinit : insecure directories. Compaudit 显示/tmp 目录

我在RaspberryPi2(RaspbianJessie)上运行zsh。zshcompinit提示/tmp目录不安全。所以,我检查了目录的权限:$compauditThereareinsecuredirectories:/tmp$ls-ld/tmpdrwxrwxrwt13rootroot16384Apr1011:17/tmp显然任何人都可以在/tmp目录中做任何事情。考虑到它的目的,这是有道理的。所以我尝试了thisstackoverflowquestion上的建议.我还在其他网站上尝试了类似的建议。具体来说,它建议关闭对该目录的组写权限。由于根据ls-ld权限看起来如何,我还必须关

linux - ZSH 绑定(bind)键反向查找

谁能告诉我这些的键序列是什么?我知道如果我执行cat并键入按键,我可以获得它的代码,但是我如何反转该过程以找出在行首按什么?bindkey'^[^[[D'backward-wordbindkey'^[^[[C'forward-wordbindkey'^[[5~'up-line-or-historybindkey'^[[A'up-line-or-searchbindkey'^[[B'down-line-or-searchbindkey'^[[6~'down-line-or-historybindkey'^[[5D'beginning-of-linebindkey'^[[5C'end-of

linux - 如何将默认的 bash/zsh 模式设置为 vi 命令模式而不是 vi 插入模式?

所以在我的bash/zsh终端中我有set-ovi。但是然后我需要按ESC进入命令模式。我不知道如何使该命令模式成为默认行为? 最佳答案 您可以使用“xdotool”实现该行为。安装它并将其添加到您的~/.bashrc然后set-ovixdotoolkeyEscape 关于linux-如何将默认的bash/zsh模式设置为vi命令模式而不是vi插入模式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

linux - zsh menu completion 导致 zle reset-prompt 后出现问题

我的.zshrc中有以下代码:TMOUT=1TRAPALRM(){zlereset-prompt}触发菜单完成后,菜单中的所有项目(突出显示的项目除外)在TRAPALRM触发后消失,当我在短时间后继续在菜单zshsegvaults中导航时是否有任何修复或解决方法?编辑:zsh版本在LinuxMint17上是5.0.2编辑:我在Gentoo上的zsh版本5.0.7上观察到同样的事情 最佳答案 我找到了这个解决方法,基本上可以防止在菜单选择时调用“重置提示”:TRAPALRM(){if["$WIDGET"!="complete-word

linux - 如何杀死 zsh 中的所有后台进程?

如标题-如何杀死zsh中的所有后台进程? 最佳答案 aliaskillbg='kill${${(v)jobstates##*:*:}%=*}'.它是zsh,不需要外部工具。如果你想杀死第N个工作:functionkilljob(){emulate-Lzshforjobnumin$@;dokill${${jobstates[$jobnum]##*:*:}%=*}done}killjobN 关于linux-如何杀死zsh中的所有后台进程?,我们在StackOverflow上找到一个类似的问题

linux - 我怎样才能获得安全的系统级 oh-my-zsh 配置?

我想要一个系统范围的oh-my-zsh设置,但我不确定什么是“最佳”方法。我无意询问个人喜好之类的问题,我只是不确定以下解决方案是否是:ln我的本地用户配置在某处似乎不正确,因为向我的本地cfg添加漏洞并因此获得root权限非常容易。将oh-my-zsh安装到/etc也可能是一个安全漏洞,因为我根本没有自己编写它。简单地编写我自己的.zshrc是我最不想尝试的方法,因为它非常耗时。有什么建议吗? 最佳答案 除非我误解了Caleb的标记答案只是正常的每用户安装步骤,将.zshrc文件添加到skel目录并更改默认的新用户shell,但它