Questions tagged «zsh»

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

4
更改sudo su shell
每当我sudo su从正常运行zsh(使用oh-my-zsh框架)运行时,sh默认情况下就被迫使用旧的Bourne shell()(显然,这是大多数* nix类系统上的标准行为)。如果我在运行后zsh从内部sh运行sudo su,则可以获得Z shell,但是没有oh-my-zsh的改进。 有什么办法可以将shell sudo su启动更改为zsh?如果是这样,是否也可以zsh使用使用该启动实例oh-my-zsh? 我正在使用OS X 10.8.4。
13 macos  zsh  sudo  sh  oh-my-zsh 

3
哦,我的zsh开启了autopushd吗?如何关闭它?
看来我已经autopushd打开了(我知道我没有打开它),这很烦人,因为我更喜欢选择何时使用目录堆栈。如何关闭autopushd? 我看过的~/.zshrc和~/.oh-my-zsh/oh-my-zsh.sh也没有找到任何东西。 我在Mac OSX Lion上使用oh-my-zsh。
12 zsh  oh-my-zsh 

2
如何在我的zsh提示符下放置换行符而不引起终端重画问题?
我正在尝试通过zsh提示符修复一个小问题(但很烦人)。我看到的问题是,当我在GUI OS环境中使用终端(例如,OS X 10.7.2上的Terminal.app或iTerm 2)并调整终端窗口的大小时,会使用额外的提示重新绘制终端。 我已经在包含以下内容的干净的.zshrc上重现了该问题: export PROMPT="> " 要明确的是,这是两行文件。字符串中有一个文字换行符,我已经在几个(公认的是旧的)地方读过,这是解决之道。这一直有效,直到我调整终端窗口的大小为止,这时我得到了重复的提示字符串。例如,如果我打开一个新窗口,则会看到(*被用作游标的占位符): Last login: Wed Jan 25 19:05:06 on ttys000 > * 然后,当我调整窗口大小,使其更短时,最终得到: Last login: Wed Jan 25 19:05:06 on ttys000 > > > > * 额外的即时打印输出的数量似乎与我改变窗口大小(通常是垂直方向)的大小成正比。如果我从提示字符串中删除换行符,问题就消失了。 我已经尝试过各种方法,例如$(print ">\n")或尝试将换行符包装在中%{%}。我假设这与以下事实有关:换行符混淆了绘制提示字符串实际上是多长时间的东西。这个问题可以解决吗?还是我只需要忍受?

2
ZSH:如何直接使用ZLE小部件?
该文档在第18.4节“小部件”中说,“小部件的工作仅仅是执行一些小动作”。但是我找不到关于如何调用这些动作(即如何调用小部件)的一般描述。 在示例中(例如,请参阅此Q&A),我已经看到小部件可以使用绑定到键bindkey KEY WIDGET。然后,您可以使用调用小部件KEY。 我想切换,set-local-history然后尝试: $ zle set-local-history 1 zle: widgets can only be called when ZLE is active zle -h不起作用,但是我在这里找到了对参数的描述。但似乎没有类似的东西--call。 我究竟做错了什么?没有bindkey的情况下如何调用小部件?如何打印当前状态?(set-local-history切换状态)
12 zsh 

3
如何使zsh补全像Bash补全一样?
我切换到zsh,但是我不喜欢它的完成。如果我有20个文件,每个文件都有一个共享的前缀,那么在按Tab键时,zsh将完全完成第一个文件,然后在每次按Tab键时继续浏览列表。如果要在结尾处输入一个,则必须多次按Tab键。 在bash中,这很简单-按下tab键,我会得到前缀。如果我继续键入(并按Tab键),bash将尽可能完成。我发现这种行为更加直观,但是喜欢bsh的zsh其他功能。 有没有办法获得这种完成风格?Google建议setopt bash_autolist,但这对我没有影响(启动我的shell时没有打印错误消息)。 谢谢。

5
并行外壳循环
我想处理许多文件,并且由于这里有很多核心,所以我想并行执行: for i in *.myfiles; do do_something $i `derived_params $i` other_params; done 我知道一个Makefile 解决方案,但是我的命令需要将这些参数从shell列表中删除。我发现的是: > function pwait() { > while [ $(jobs -p | wc -l) -ge $1 ]; do > sleep 1 > done > } > 要使用它,所有要做的就是在作业和pwait调用之后放置&,该参数给出并行进程的数量: > for i in *; do > do_something $i & > …

3
将某个软件版本设为ubuntu中的默认版本
我目前在Ubuntu 12.04上安装了2个版本的php。 一个用于使用apt-get安装的php 5.3,另一个用于xampp与php 5.5一起安装 当我执行这些命令时: > which php /usr/bin/php > php --version PHP 5.3.10-1ubuntu3.8 with Suhosin-Patch (cli) (built: Sep 4 2013 20:05:42) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethan >echo $PATH /home/chanhxc/bin /usr/lib/lightdm/lightdm …
11 linux  ubuntu  php  zsh  oh-my-zsh 

1
在zsh中读取一行用户输入的更好方法?(例如与zle?)
read出于某种原因,Zsh的是echo ^M's而不是接受它们作为<Enter>击键。(如果-d已设置,则它们将被识别为<Enter>,但仍会回显。)它也不支持诸如Backspace键之类的基础知识。 我可以通过入侵/运行来解决这个问题bash, > a=$(bash -c 'read -e -p "What would you like to do?: " tmp; echo $tmp') What would you like to do?: eat cake > echo $a eat cake 但我想知道是否有更清洁的方法。
11 zsh 

1
在zsh中,向后搜索历史的方式与在bash中不同
我已经history-search-backward映射为PageUp。 当我键入: git push <PageUp><PageUp><PageUp> 在Bash中,它开始遍历所有以git push开头的历史记录条目 在这岩组通过所有历史记录条目开始循环开头混帐所以它会列出条目这样git status,git remote update等,这是不是我想要的。 我怎样才能让zsh表现得像bash?我setopt应该设置什么?
10 zsh 

2
在ZSH历史记录增量搜索模式中向后循环搜索
我最近切换了历史记录搜索,history-incremental-pattern-search-backward因为它允许搜索中使用模式。这是我的设置方式.zshrc bindkey -M vicmd '/' history-incremental-pattern-search-backward 这很好用,但是我不知道如何从搜索菜单转到下一场比赛。 % cat foobarbaz.txt bck-i-search: f*baz 是否有钥匙可以做到这一点?
10 history  zsh 

1
为什么某些命令(通常很长)在bash和zsh中出现乱码?
很多时候,当我在bash或zsh中输入一个长命令(这是我肯定看到过的仅有的两个shell)时,光标会弯曲到我输入的字符串中间的某个地方,谁能解释这是为什么,对此是否可以做些什么? 我已经注意到,当我浏览外壳程序的历史记录(使用箭头键)时经常会发生这种情况,当我遇到一个较长的条目时,较长的新条目将与先前的条目混合在一起,使文本显示乱码。 我有一个带有短字符串的示例,我刚刚注意到: 历史记录包含: mkdir sune1 mkdir sune2 如果我导航到mkdir sune1,然后再导航到,mkdir sune2我希望我的命令行是mkdir sune2(因为这是我现在导航到的命令行)-但是我却得到了mkdir1sune2。 多年来,我经常注意到这一点,但永远不要让它困扰我太多,但我认为现在是时候改变了!那么,有什么想法吗?
10 bash  shell  zsh 


2
调整zsh git自动补全
我只是从bash切换到在Ubuntu Hardy上使用zsh 4.3.4。我正在使用git进行开发,但是我发现自己一直在与默认的git补全进行斗争:文件名补全通过检测您添加或删除的内容(使用git-ls-files)来变得聪明,但有时会出错-例如,如果您在子目录中。它还不知道我的自定义git别名(例如,git ci作为提交的别名)。 zsh超级用户,如何改善这种情况? 这是我的一些想法,尽管由于不熟悉zsh,所以我不知道如何实现它们,所以也许您可以提供帮助或提出自己的想法: 禁用git文件名补全,仅保留分支/标记/命令名称/命令选项补全。 用常规的zsh文件名完成替换“智能”文件名完成。 如果修复了这些错误,请获取更新的_git完成文件,并覆盖系统文件。 谢谢!
10 git  zsh 

3
使用正则表达式进行反向历史搜索
我正在寻找一种工具,该工具允许使用简单的正则表达式(或仅多个匹配项)进行反向增量搜索。例如,如果要查找命令“ foo bar baz”,可以执行以下操作来快速查找该命令: CRTL-R(开始搜索)键入“ foo”(匹配使用foo的最新命令)继续键入“ foo | baz”(匹配包含“ foo”和“ baz”的最新命令)。 是否存在这样的东西?如果没有,我该如何自行实施?
10 bash  history  zsh 

1
终端中的别名空命令
我想在点击提交一个空命令时清除我的终端。换句话说,我想clear打Enter空线时打电话。那可能吗? 我知道这不是终端的工作方式,但是可能会有不错的技巧,例如绑定Enter键和检查终端等。
9 terminal  zsh  xterm 

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.