Zsh is a shell with many advanced command-line and scripting features.

learn more… | top users | synonyms (1)

29
votes
2answers
9k views

How do I perform a reverse history search in ZSH's vi-mode?

I use vim for essentially all my editing needs, so I decided to once again try vi-mode for my shell (currently ZSH w/ oh-my-zsh on OS X), but I find myself trying (and failing) to use Ctrl-R ...
1
vote
2answers
40 views

How to configure .zshrc for specfic os

I want to use emacs from Applications folder when I'm using Mac, but I'm using same .zshrc in Ubuntu. alias emacs='/Applications/Emacs.app/Contents/MacOS/bin/emacsclient' So I want to create this ...
3
votes
2answers
66 views

Remapping Ctrl-P to Ctrl-O for getting the previous command?

I am using zsh with tmux and I like to have Ctrl-P as a shortcut to 'previous pane'. I would however still keep the original 'previous command' functionality of Ctrl-P and map it to Ctrl-O. How can I ...
3
votes
4answers
223 views

Shorten path in zsh prompt

Bash has the PROMPT_DIRTRIM option, e.g. when I set PROMPT_DIRTRIM=3, then a long path like: user@computer: /this/is/some/silly/path would show instead as: user@computer: .../some/silly/path ...
2
votes
1answer
24 views

Change color when changing directory

I have two folders called Documents and Downloads. In zsh, when I type cdSpaceDoTabc the color of Documents change from white to (hard to read) gray. How can I turn off this color change or control ...
0
votes
2answers
55 views

How to get absolute path of current shell in a sourced script? [duplicate]

Suppose one executes either . some_script or source some_script How can some_script determine the absolute path of the current shell (i.e. the one that is executing the . or source command)? (...
1
vote
2answers
22 views

zle read first word in line?

Let us say: % ls ./ _ when foo is called, where _ is the cursor position. foo(){ echo $COMMAND } zle -N foo How can COMMAND be set such that foo will write out the 'command' (as in, the ...
2
votes
2answers
64 views

Updating shell functions and aliases through environment variables

Say we define the following shell function and alias in .zshenv: export VARIABLE_A='original' function my_function() { print $VARIABLE_A } export VARIABLE_B='original' alias my_alias="print $...
4
votes
1answer
70 views

Automatically open text files in editor instead of attempting to run them?

When I accidentally type the name of a text file without some kind of editor command, and the text file is not a shell script, I get a "permission denied" error*, since the file is not executable, and ...
1
vote
2answers
70 views

Is it possible to declare a local variable without overriding the original for the child processes?

If I have a pre-existing ENV variable, is it possible to declare a new local variable with the child process using the original value? Keep in mind, I don't know which variables the child process ...
1
vote
2answers
51 views

executable wrapper, run original executable from tail of PATH

There's an executable /usr/bin/foo which I and other scripts use but it misbehaves a bit so I made a Bash wrapper of the same filename in /usr/local/bin/foo where I fixed its misbehaviour. My PATH is /...
0
votes
1answer
36 views

linux - setting order in which files are read or output with utilities (sorting)

I'm having issues with programs reading files in the wrong order, and also outputting in an undesirable order with utilities such as ls. I've tried some of the LC_COLLATE options, but none of them ...
2
votes
3answers
1k views

Tmux Terminfo problem with Zsh key bindings

Zsh in Emacs edit mode comes with the default key binding ALT + Backspace to delete a word on the right side of the cursor and ALT + D to delete a word on the left side. I would like to add the latter ...
0
votes
1answer
51 views

.zshenv not sourced on ssh login?

According to the docs .zshenv is sourced on all invocations of the shell, unless the -f option is set. It should contain commands to set the command search path, plus other important environment ...
3
votes
4answers
119 views

Is there a nice way to set directory/project local environment variables?

I have been working on several projects, and they require different environment variables (e.g., PATH for different versions of clang executables, PYTHONPATH for several external modules). Whenever I ...
0
votes
0answers
78 views

Command not found, only when used in a script

I installed pup on my mac using homebrew. When I try this command in my terminal cat index.html | pup -p 'div[class="quote"] text{}' >> quotes.txt it works fine but when I use it in a ...
3
votes
2answers
51 views

On applying commands to groups of lines from stdin

The Unix package datamash supports the application of several summarizing operations to groups of input lines. For example1, here datamash is used to compute the sums of column 2 for each value in ...
8
votes
1answer
859 views

Why doesn't the process substitution <() work with ssh -F

I have some vagrant virtual machines. To log into them I issue the vagrant ssh command. I want to log into them using regular ssh command. The vagrant ssh-config outputs the suitable config file $ ...
0
votes
1answer
38 views

Why is cd appending dirs like pushd?

I am using zsh in Babun (Cygwin with oh-my-zsh and some extras). I noticed some odd behavior, it looks like cd is behaving like pushd? { ~ } » mkdir foo { ~ } » pushd foo ~/foo ~ { foo } » popd ~ ...
0
votes
1answer
16 views

How can I get a variables datatype in zsh?

For example zsh uses the variable $fpath to define include directories. How can I tell what type of variable $fpath is? i.e. is fpath a string number numeric array associative array
3
votes
1answer
50 views

zsh: Tab completion for function with Git commands

In zsh I am using the following function to delete a local and a remote branch with one command: gpDo () { git branch -d "$1" && git push --delete origin "$1" } Currently, auto-...
0
votes
2answers
53 views

Range arrays with custom step-size in Bourne shells

Say I want to create a range array of integers in a shell such that the array: Starts in $START_VALUE Ends in $END_VALUE Elements are $STEP_SIZE apart, starting from $START_VALUE. For anyone ...
0
votes
1answer
27 views

How to increase history in oh-my-zsh?

I just installed oh-my-zsh for the first time. I just want to know how can I modify the number of past commands that are remembered in history? Where can I set this setting?
7
votes
5answers
3k views

Getting relative links between two paths

Say I have two paths: <source_path> and <target_path>. I would like my shell (zsh) to automatically find out if there is a way to represent <target_path> from <source_path> as ...
10
votes
3answers
3k views

Pasting from clipboard to vi-enabled zsh or bash shell

I'd like to be able to paste from the system clipboard (or text selection) into my "vi-like" shell prompt using the keyboard. I normally use zsh and sometimes bash. In both cases, I have the shell set ...
3
votes
1answer
58 views

On passing arguments to programs through array variables

NB: though the question below features rsync, it is not a question about rsync; it is a question about zsh arrays. If I initialize the variable EXCLUDES like this EXCLUDES=( --exclude=/foo --...
2
votes
1answer
33 views

Possible redirection bug in zsh 5x

[This post's title needs some work; suggestions welcome.] The following command produces different outputs in zsh v. 4.x and 5.x: { ( printf "X\nY\n" printf "WARNING: foo\nWARNING: bar\n"...
2
votes
1answer
41 views

How can I configure zsh completion to launch a menu - for command options?

If I am cd'ing into a directory, there is a setting in my ~/.zshrc that tells zsh to always launch a menu when I hit tab on an ambiguous completion, e.g. ~% cd /etc/a tab will immediately cause a ...
1
vote
1answer
96 views

zsh HISTFILE - still read from ~/.zsh_history

I set my $HISTFILE env var to something custom, and my zsh is indeed writing to the new histfile. But when using up-arrow or other history-searching capabilities, it still reads from ~/.zsh_history. ...
3
votes
1answer
40 views

How to split a string on a control character?

I know how to split a string on a printable separator character; e.g. if the separator is ,: FOO='x,y,z' printf "%s\n" ${(s:,:)FOO} x y z But what if the separator is a control character, such as \...
5
votes
3answers
189 views

Why zsh and ksh93 chose to be non-compliant in pattern matching?

POSIX documentation for pattern matching said that: An ordinary character is a pattern that shall match itself. It can be any character in the supported character set except for NUL, those ...
3
votes
2answers
27 views

How do I set the editor command to use *only* for edit-command-line in zsh?

When I hit Ctrl+x, Ctrl+e in zsh, I can edit the current command line in by $EDITOR or $VISUAL. However, I'd like to use nano, and to get syntax highlighting for shell syntax there, I have to pass -Y ...
0
votes
1answer
33 views

Zsh's standard completion works fine, so why do people recommend to load compinit module?

If I put these lines and nothing else in my ~/.zshrc I get all the completion features I expected. # For autocompletion with an arrow-key driven interface zstyle ':completion:*' menu select # ...
3
votes
0answers
53 views

Calling zsh completion function and obtaining its results

I'm trying to make use of zsh's completion widgets in my own scripts. At one point I'd like have access to the result of every completion that is active in zsh, or rather I want to obtain the final ...
7
votes
1answer
325 views

How can I pipe only stderr in zsh?

In bash: $ echo hi 2>&1 1>/dev/null | cat $ While in zsh: $ echo hi 2>&1 1>/dev/null | cat hi $ Is there a way to pipe only standard error while redirecting standard out?
1
vote
3answers
85 views

On `fork`, children processes, and “subshells”

This post is basically a follow-up to an earlier question of mine. From the answer to that question I realized that not only I don't quite understand the whole concept of a "subshell", but more ...
1
vote
1answer
21 views

On the relationship between shell initialization and desktop apps after a “graphic login”

I am very (zsh)/somewhat (bash) familiar with the shell's initialization sequence when the user logs in through a text interface. But what about the case of a "graphic login", IOW, when the user logs ...
2
votes
2answers
121 views

How to switch to root and use same dotfiles as my normal user?

I run zsh on Mac OSX, and sometimes want to switch in the terminal to the root user. I'd like to keep all my dotfiles, and environment path configuration and scripts from my regular user, and just do ...
0
votes
1answer
37 views

echo {Z..A}; out {Z..A};Why? [duplicate]

I'm a new Ubuntu user. I am reading this book "The Linux Command Line: A Complete Introduction" and practicing the code. That's fun, but I have trouble in Chapter 8: ➜ ~ echo {1..10} 1 2 3 4 5 6 7 8 ...
1
vote
1answer
50 views

Can I use Zsh's built-in wildcard matching to replace the use of `find` here?

This is a follow-up to another question I posted I use a script to automatically rename files according to a particular order: #!/usr/bin/env zsh pages=($(sed -n '/page_order/,/^$/ p' _config.yml | ...
1
vote
2answers
494 views

Changing directory color with zsh + Prezto

I am using Prezto + zsh as my shell. I would like to change the color of directories when I ls my directory. For instance, here is what I currently have: Obviously, this is no fun, as I'm hardly ...
1
vote
1answer
45 views

How to split a string at some non-printable-character delimiter?

I know that if $VAR contains some string, I can split this string at, say, periods, to produce an array, like this: % VAR=$ZSH_VERSION % parts=(${(s:.:)VAR}) % printf '%s\n' $parts 5 0 7 What must ...
1
vote
1answer
46 views

zsh glob pattern to match all files except one, does not work, despite EXTENDED_GLOB being set [duplicate]

I have a directory containing several files: $ ls tdir xx yy zz I'm looking for a zsh glob pattern, which expands to all (non-dot)-files except xx. This is what I tried: $ set -o EXTENDED_GLOB $ ...
3
votes
1answer
115 views

How to create an alias for two Git commands that use a parameter? [duplicate]

I regularly have to delete a local and remote Git branch. Therefore, I run the following commands: $ git branch -d feature-branch $ git push --delete origin feature-branch Since I mostly execute ...
0
votes
1answer
120 views

How do I inform the rest of the system my shell has changed from zsh to bash?

I installed zsh because I thought I might prefer it over bash. I don't, and to revert it I have used chsh -s /bin/bash, which as myself gives You may not change the shell for 'cat'. I also changed ...
1
vote
1answer
170 views

sudo: nocorrect: command not found

I am using zsh and oh-my-zsh on Arch Linux. I am not able to make directory using mkdir edward@ArchLinux ~ $ sudo mkdir -p /samba/raspberry [sudo] password for edward: sudo: nocorrect: command ...
1
vote
0answers
10 views

Can I bind single keys in zsh when in vi normal mode? [duplicate]

I use urxvt with zsh and vi keys (bindkey -v). Is there a way to bind custom commands to single keys when in normal mode? For example, I'd like p to run xclip -o -sel clip and insert the result at the ...
0
votes
1answer
42 views

watch equivalent in zsh

In bash, watch (e.g. watch -n 5 ls -l) could be used to repeat the command at fixed intervals. This command seem to be missing on zsh. Is there an equivalent?
3
votes
1answer
183 views

(2x) zsh: command not found

I've finally decided to take the plunge and try out zsh...Running on a CentOS 7 machine. The only thing I find strangely aggravating is that for some reason each time I enter an unknown command, I get ...
0
votes
1answer
29 views

Execute a function before specific programs

This began with the want of adding SSH keys to ssh-agend on demand, but because this isn't possible with OpenSSH, I came up with this zsh script instead. But for a reason I can't figure out, instead ...