Questions tagged «zsh»

Zsh是一种设计用于交互式使用的外壳程序,尽管它也是一种功能强大的脚本语言。


1
在bash或zsh中左选项卡完成
当我在bash或zsh中使用标准制表符完成时,我键入文件名或路径的第一部分,然后点击以完成单词。除非我在一个文件目录中,文件名的所有变化都在单词的末尾,例如,这种情况很有效。一个充满时间戳文件的目录,所有文件都以相同的前缀开头: foo-20120701124501.log foo-20120701124531.log foo-20120701124601.log foo-20120701124631.log foo-20120701124701.log foo-20120701124731.log 在这种情况下,如果我输入 foo<tab> 我去拿 foo-20120701124 - 我可以再次选项卡,并查看所有文件...我必须输入接下来的3个字符才能获得唯一的文件名。 我想知道是否有办法输入例如 4731.log 然后完成单词的开头。我猜这在bash中很难,因为bash完成使用 $COMP_CWORD 和 $COMP_KEY 对于它的可编程完成,从我正在阅读它的方式来看,我认为那些不会允许向左完成单词。我对zsh内部的完成知之甚少,不知道从哪里开始查看手册页。

2
Zsh片段实现
有没有办法在zsh中实现可扩展的片段? 我希望能够编写ssh ssh_alias -t :tmux按Tab键,这将扩展为`ssh ssh_alias -t“tmux a || tmux” 我希望这种行为是全局的,因此这个代码片段可以在其他地方使用 mosh ssh_alias - :tmux 最后,我希望此行为超过特定于命令的完成规则。 在这一刻,我正在实现与'Dash'类似的东西
2 zsh 

2
使用ZSH_TMUX_AUTOSTART = true从tmux内启动新会话
我在oh-my-zsh中启用了tmux插件,ZSH_TMUX_AUTOSTART=true现在每次打开终端我都会附加到会话中。那部分非常好。 问题是 - 现在我无法启动新会话并获得对shell的访问权限。 有没有办法在不禁用tmux插件的情况下启动新会话? $ tmux new-session -s new sessions should be nested with care, unset $TMUX to force 我在github上打开了一张票:https://github.com/robbyrussell/oh-my-zsh/issues/3192

1
像command_not_found_handler()这样的zsh处理程序
我想格式化zsh输出。 例如,对于我现在拥有的不完整的功能: function command_not_found_handler(){echo $fg[red]"\033[4m???\033[0m"$fg[red]" Command \"$1\" not found."} 返回红色文字并带下划线???。 我这样做了,command_not_found_handler并希望将相同的逻辑应用于其他错误输出,例如: zsh: bad pattern: echo[ 和 zsh: correct 'ehco' to 'echo' [nyae]? 但我似乎无法找到正确的处理程序的名称。他们甚至作为处理者存在吗?如果没有,是否有更通用的方法来更改zsh中的警告/错误/信息输出? 更通用的方法会很好,因此其他程序的错误也会采用相同的格式。例如 cd: no such file or directory: no/dir 也许修改标准错误输出(我不知道这是否有意义,我真的很累...)
2 zsh  handle 

2
OS X 10.6:如何暂时更改ZSH的$ PATH?
我想创建一个脚本,将$ PATH设置为我选择的一组目录(因此忽略预定义的路径,例如/ usr / bin,/ usr / local / bin等等......),然后推出ZSH。 这对BASH来说很有用: #!/bin/sh PATH="/Users/Thoht/Sites/djangostack/apps/django/bin" # exec /bin/bash --noprofile --norc 我得到一个新的BASH会话,路径只是上面定义的路径,完成后我用Ctrl-D取消。我想为ZSH重新创建这个脚本,但没有成功。我试过这个: #!/bin/sh PATH="/Users/Thoht/Sites/djangostack/apps/django/bin" # exec /bin/zsh -f 然而,预定义的路径,例如/ usr / bin和所有爵士乐仍然存在,这使得脚本无用。 我最好加载我的.zshrc,只是暂时更改路径。 编辑我忘了添加一件事 - 首先读取的/ etc / zshenv(或者我相信)包含这个脚本: # system-wide environment settings for zsh(1) if [ -x /usr/libexec/path_helper ]; then eval `/usr/libexec/path_helper …

2
Mac OSX shell不会改变[关闭]
我正在尝试将ZSH作为我的默认shell,我已经使用oh-my-zsh项目中的安装程序进行安装,并且所有安装都很好,但我无法将其更改为默认shell: 当我echo $SHELL给它“,/bin/zsh” 但ps -p $$ 似乎暗示bash(虽然我已经看到这表明,zsh即使它不是) 我也尝试在帐户→高级设置→启动shell和终端首选项中更改它。 使用chsh -s /bin/zsh说“没有变化......”即它也认为zsh正在使用中。 我可以通过键入zsh或手动切换到zsh /bin/zsh,只是不能将其更改为默认值,这是相当烦人的。 有任何想法吗?
2 macos  bash  terminal  zsh 

1
为什么iTerm2在开始时打印1?
我的问题是,当我打开它时,iTerm在我的zsh上打印出1值我无法弄明白为什么。我已经检查了配置文件配置中的高级设置,但似乎没有添加任何内容。 你能帮助我理解1来自哪里吗? 谢谢。
2 zsh  iterm2 

1
zsh,修改历史记录中的旧命令
有时候,我不得不重复命令我输入年龄前,所以我这样做: $ history | grep ssh 195 ssh josetocino@eq1 209 cd .ssh 211 cat id_rsa.pub | ssh josetocino@eq1 'cat >> .ssh/authorized_keys' 212 ssh josetocino@eq1 而且我看到我想重复命令号211,但要更改远程主机。我怎样才能做到这一点? 是否有一个命令/快捷方式可以将该命令粘贴到外壳中,以便我可以手动对其进行编辑?
2 command-line  ssh  zsh 


1
是否有可能'获取'python脚本的输出
我有一个很大的python代码库,它对我的​​工作环境有很多了解。当我打开终端窗口时,我想用它来设置我的ZSH会话。 python脚本将输出导出变量的文本,定义函数/别名等。 我希望这样的东西能起作用: ./myPythonScript -outputZSHSettings | source 但它似乎没有。有没有办法做这样的事情?我想我可以将所有内容写入临时文件,来源,然后删除文件,但这看起来很笨重。 谢谢。
1 bash  shell  zsh 

0
禁用完全提前功能
当我在Kubuntu 14.04中按Tab键自动完成ZSH时,如果可能的完成在单词的末尾有共同的字符,那么这些常用字符显示在我正在编辑的行中。例如: ➜ someDir ls ab123.png ab129.png ➜ someDir rm ab<tab> ➜ someDir rm ab12.png # The cursor is on the `.` character 我怎么能禁用这种错误?我看了看 ~/.zshrc 和相关文件,评论很好,但我找不到在那里定义的这个功能,也不能通过随意的谷歌搜索找到它的位置。
1 zsh  oh-my-zsh 

1
有什么像emacs tramp for shell(bash / zsh)?
比如,我们有一个服务器,我们使用“userx”来部署东西并执行一些维护任务。该用户正由多个团队成员使用。所以,如果我不能按照我想要的方式真正修改.bashrc或.zshrc。 另一方面,Emacs tramp让我印象深刻。它让我在我的本地系统上拥有自己的Emacs配置。
1 bash  zsh 

4
如何清理我的bashrc / zshrc文件?
随着时间的推移,我已经在我的PATH中添加了一些东西,它看起来非常糟糕。我该如何清理它或者“重新格式化”所有这些的正确方法是什么? export PATH="$PATH:~/scripts" export PATH="$PATH:~/Downloads/android-sdk-mac_x86/platform-tools/adb" export PATH=/opt/local/bin:/opt/local/sbin:$PATH export PATH="$PATH:~/Downloads/android-sdk-mac_x86/platform-tools:~/Downloads/android-sdk-mac_x86/tools:~/Downloads/android-sdk-mac_x86/platform-tools/adb" export PATH="$PATH:~/bin" export PATH="$PATH:~/bin/subl" export PATH="$PATH:~/.rvm/gems/ruby-1.9.3-head/gems/git-media-0.1.1/bin" export PATH=$PATH:$HOME/bin:/Users/me/Downloads/android-sdk-mac_86/tools export PATH=$PATH:$HOME/bin:/Users/me/Downloads/android-sdk-mac_86/platform-tools export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/.rvm/scripts/rvm:/.rvm/scripts/rvm:/~/Downloads/android-sdk-mac_x86/tools/android:/~/Downloads/android-ndk-r7/:/~/Downloads/android-sdk-mac_x86/platform-tools export CC=gcc-4.2 export PATH=~/Downloads/android-ndk-r7:$PATH ANDROID_HOME=~/Downloads/android-sdk-mac_x86 export PATH=${PATH}:$ANDROIDHOME/platform-tools
1 bash  zsh  bashrc 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.