Questions tagged «zsh»

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

1
当我的CWD位于远程文件系统上时,如何有选择地禁用zsh的版本控制集成?
我在OSX上运行zsh,有时必须在已安装的sshfs卷上工作。但是,git真的比sshfs挂载慢。我的提示使用了zsh提供的内置vc模式的东西,但是在这种情况下,我想跳过该部分。 每当我的CWD位于已挂载的文件系统上时,我想有选择地禁用vc集成。我怎样才能做到这一点? 我目前正在使用(大致).zshrc的摘要在提示符下启用git info(嗯,.oh-my-zsh / themes,但您知道了): zstyle ':vcs_info:*' enable hg git bzr svn p4 zstyle ':vcs_info:(hg*|git*):*' get-revision true zstyle ':vcs_info:(hg*|git*):*' check-for-changes true # rev+changes branch misc zstyle ':vcs_info:hg*' formats "[%i%u %b%m]" zstyle ':vcs_info:hg*' actionformats "(%{$fg_bold[red]%}%a%{$reset_color%})[%i%u %b%m]" # hash changes branch misc zstyle ':vcs_info:git*' formats "[%{$fg[yellow]%}%12.12i%{$reset_color%} %u %{$fg[magenta]%}%b%{$reset_color%}%m]" zstyle ':vcs_info:git*' actionformats …

10
Cygwin / Git奇怪的终端问题
好吧,这很奇怪。首先,这是在最新的cygwin上运行的薄荷,从cygwin的setup.exe中提取了git。我正在运行zsh。 $ git clone https://<user>@<domain>/<repository>/ ~/src/project/dev Initialized empty Git repository in /cygdrive/c/src/project/dev/.git/ Password: <actual password in plain text appears> # Nothing happens... ^C $ <password text that I just typed> zsh: command not found: <same password text> 这里发生了什么?这是终端问题,shell问题,git问题还是cygwin问题? 更新:是的,我正在运行Cygwin git版本,而不是Windows版本: $ which git /usr/bin/git $ git --version git version 1.7.1 …
16 cygwin  git  zsh  mintty 

2
如何使ctrl + p的行为与zsh中的向上箭头完全相同?
首先,我使用zsh和oh-my-zsh几乎没有其他自定义项。 在zsh中,当我按向上箭头时,它带给我最新的命令。而且,如果我在按向上箭头之前输入了一些字符,它将带给我最新的以这些字符开头的命令。这是一个非常有用的功能,因为我交替发出了很多git / vim / scp命令。 但是现在我切换到没有箭头键的键盘,并且我倾向于使用ctrl+ p而不是向上箭头来完成历史记录。但是,无论我在按ctrl+ 之前键入了多少个字符p,它始终会带给我最新的命令(而不是带这些字符开头的最新命令) 我应该如何配置zsh(或oh-my-zsh)来解决此问题?
15 shell  zsh 

3
将功能导入PS1(Zsh)?
这适用于bash(parse_git_branch是已定义的函数) export PS1="\$(parse_git_branch)" 但我无法弄清楚中的等效项zsh。 注意:如果我这样做 PROMPT="$(parse_git_branch)" 它似乎可行,但实际上,当我设置提示时,它正在运行命令,这不是重点。
15 zsh  prompt 

1
如何使用zsh的bash来“获取” shell脚本?
我正在使用zsh并非常喜欢它,但是可以使用很多Android源代码,因为这些源代码具有需要正确评估bash的编译脚本。这些脚本需要在编译之前获取,并定义在编译期间使用的环境变量和shell函数。 Zsh无法获取这些文件,并且如果我尝试发出命令,则我emulate bash每次进入空格时,shell就会由于许多错误而变得无法正常工作(我正在使用oh-my-zsh,也许是原因吗?): url-quote-magic:24: bad pattern: ( ):/(|/localhost)/* 有没有办法让我不切换到bash来评估这些文件,或者不调用bash实例并导入在将其采购到zsh会话期间定义的新环境变量/函数?还是我注定每次需要在Android上工作时都要切换到bash? 编辑:找到了我自己的问题的答案。似乎无法使用其他外壳提供文件,但是在Android宏文件失败的情况下,此页面进行了修复: http://nilvec.com/building-cyanogen-from-source/ 基本上,简单地设置unsetopt nomatch将要求zsh停止抱怨不匹配的通配符,这足以使脚本完成。关于使用completebash内部命令向一个Android宏添加完成功能的问题仍然存在一个错误,但这绝对不是关键。
14 bash  zsh  oh-my-zsh 

2
如何在使用tmux和zshell的命令历史记录中进行搜索?
我使用zshell,正在尝试tmux。在shell中,如果我按下control-R,它将启动,bck-i-search然后我可以开始键入以匹配先前输入的命令。在tmux中时,control-R似乎无能为力。我已经尝试搜索,但是似乎找不到任何原因/解决方案。
14 zsh  tmux 

11
每个目录的bash / zsh历史记录日志文件
我发现我在固定目录中的项目上做了很多工作。有时-几个月后-我需要在该项目上重做一些事情,但我不记得自己做了什么。我使用mercurial或git跟踪文件更改,但我希望能够记住在该目录中发出的命令。 搜索我的shell历史记录不是很有帮助。我已经将所有内容都记录到了我的。* _ history文件中,但是我想要列出我在〜/ foo / bar中所做的事情的列表,而不是那一周我所做的所有其他(百万次)事情。我什至可能都不记得我上个月从事那个特定项目了。 有谁知道我使用过的所有shell命令的项目目录日志文件如何?我正在设想一个类似的命令: 我的项目 ...这会将外壳程序日志文件设置为〜/ myproject / .history.log,从该日志文件加载以前的历史记录,并可能更新提示以告诉我正在使用的目录(例如vcprompt以提供版本)控制信息)。 那里有什么东西吗?
14 linux  bash  shell  history  zsh 

5
如何在Debian上更改终结者标题终端标题ZSH?
我不知道该在这里还是在unix.stackexchange.com上问这个问题,我在这里找到了。 我的问题是类似的,我想更改终端的标题,我使用的是基于Debian的发行版,终结者和ZSH,oh-my-zsh的标题适合bash,但是当我移至ZSH时,它显示/bin/zsh为标题。
14 linux  terminal  debian  zsh 

2
“ d”在“ oh-my-zsh”中做什么?
我刚刚下载了oh-my-zsh,发现“ d”已被我不知道的某些命令接管。有人知道这是什么输出吗? 0 ~/Desktop/Dropbox/project_Sites/rails_app/app/views/static_pages 1 ~/Desktop/Dropbox/project_Sites/rails_app/app/views 2 ~/Desktop/Dropbox/project_Sites/rails_app 3 ~/Desktop/Dropbox/project_Sites 4 ~/Desktop/Dropbox 5 ~ 6 ~/.oh-my-zsh 7 ~/.oh-my-zsh/plugins 8 ~/.oh-my-zsh/plugins/rails 9 ~/.oh-my-zsh/lib
14 zsh  oh-my-zsh 

3
iTerm / Terminal OS X打开外壳的速度很慢
我正在使用OS X 10.8,最近我注意到打开新的外壳有时会使iTerm2变慢。我大约需要5秒钟才能做某事。可能看起来不多,但是我在shell中工作很多,因此可能会很烦人。 我在oh-my-zsh中使用ZSH。 我尝试过Terminal,卸载oh-my-zsh,从启动文件(.zshenv,.zlogin,.zprofile,.zshrc,.zlogout)中清除所有不必要的内容,并清除/ var / log / asl中的ASL文件,并尽管它下降了一点(例如0.20s),但是没有什么可以使它下降到相当瞬时的,甚至低于3.0s。 有人碰巧有另一个主意吗?
14 macos  zsh 

1
获取zsh中定义的函数列表的任何方法(如别名的alias命令)
我可以打字 alias 并在zsh中获取已定义别名的列表 如何获取zsh中定义的函数名列表? 当我输入“functions”时,我的shell窗口在显示很多函数后挂起,总是以 __rvm_checksum_none () { [[ -z "${_checksum_md5:-}" && -z "${_checksum_sha512:-}" ]] } __rvm_checksum_read () { 什么是超级烦人的是,这不会退出ctrl-c(使用item2 AND终端)。 iterm2: 具有相同问题的终端图片:
13 zsh 

2
是否可以对不同的命令使用不同的zsh菜单选择行为?
我正在使用中的menu select行为zsh,该行为会调用光标下方的菜单,您可以在其中看到各种可能性。我为此设置的.zshrc选项是 zstyle ':completion:*' menu select=2 默认情况下,按此Return菜单中的一个可能性选择仅会完成单词-它实际上不会发送命令。例如,我可能会得到这样的菜单 ~ % cd de<TAB> completing directory: [Desktop/] Development/ 按Return这里将导致 ~ % cd Desktop/ 然后,我必须按Return一个第二时间实际发送命令。 我可以修改此行为以使其Return同时执行来选择完成和发送命令 bindkey -M menuselect '^M' .accept-line 但是,这有一个问题:有时我需要在不发送命令的情况下完成文件或目录。例如,我可能需要这样做ln -s Desktop Desktop2-通过这种bindkey行为,尝试完成Desktop会导致ln -s Desktop/作为命令发送,并且显然我不希望这样做。 我知道只要按空格就可以让我继续执行该命令,但这已成为一种习惯。 鉴于此,有没有一种方法可以使只有某些命令让您按Return一次(如cd),而所有其他命令都需要按两次?

3
为什么Windows中zsh上的每个提示之前都会出现一个百分号?
我在Windows中设置了zsh,并且在每个提示上方一行的第一个字符位置都得到了一个反向符号(白底黑字(黑色终端背景))。 通常,这意味着文件末尾没有换行符,例如cat-ing文件时。 在Mac上甚至Windows上的Mintty上都不会发生。但是它确实在ConEmu和CMD.EXE通常运行的标准终端应用程序中发生。 我已经有了unset所有的提示字符串,以及precmd()通常用于在提示上方添加空白行的提示字符串。 任何线索可能是什么?

1
zshcorrectall功能的例外?
我正在使用中的correctall选项zsh,对此我通常感到很满意。但是,在极少数情况下,我发现此功能非常令人讨厌。 例如,假设我有一个文件file1.tex,我想创建一个名为的副本file2.tex,然后我将对其进行编辑以进行一些更改。我会做 cp file1.tex file2.tex 只是告诉zsh我我可能拼错了file2.tex,如果我想改正错了file1.tex。 这是什么情况:当zsh尝试检查拼写时,它会在当前目录中查找名为的文件file2.tex,但找不到它,而是发现file1.tex并假定我拼写错误file1.tex,并询问我是否要更正它。 这种情况经常发生在我身上,以至于我实际上取消设置了该correctall选项,并且仅使用correct。但是,作为我的打字员,我真的很想念这个correctall选项。因此,我的问题是: 有什么方法可以告诉您zsh不要更正cp命令的最后一个参数吗? (我知道我可以通过修改的完成设置来获得所需的结果cp,但是我仍然想在最后一个参数上完成操作,我只是不想对其进行自动更正。)
13 zsh  autocorrect 

3
在ZSH行编辑器中,如何插入新行?
假设我正在编辑一行,光标位于指示的位置: $ abc ꕯ def ghi 我现在想分成两行并继续编辑(例如在文本编辑器中按ENTER键): $ abc $ ꕯ def ghi ZSH中有没有办法做到这一点?
13 zsh 

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.