The Daily Build

Icon

Software Development, version 3.0

zsh history expansion

Exploring zsh features made me want to figure out some of the history-editing wizardry. (Bash has similar history tricks, I just never bothered to dive too deeply into them.)
If you want to experiment with history expansion a bit, you can echo the result instead of executing it:
hostname:~/dir% ls /some/long/path/to/file_0.1-2_i386.changes
hostname:~/dir% echo !?ls?:s/-2/-3/
echo ls /some/long/path/to/file_0.1-3_i386.changes
In this case, [...]

Read the rest of this entry »

Set Your zsh Prompt

Since the beginning of time, all the cool kids have had really cool shell prompts. It’s a great place to display helpful information, and zsh has features that let you have a flexible, informative, unobtrusive prompt.

Read the rest of this entry »

Make the zsh zle handle “words” correctly

Snippet from my .zshrc:
# This controls what the line editor considers a word. By default it
# includes ‘/’, which makes it so that when I M-del (attempting to erase
# a directory in a path), I erase the whole path. Annoying.
# WORDCHARS=’*?_-.[]~=/&;!#$%^(){}<>’ # (default)
WORDCHARS=’*?_-.[]~=&;!#$%^(){}<>’

After living with this for a while, I realize that I should probably [...]

Read the rest of this entry »

Moving to zsh

To get started:

sudo aptitude install zsh
chsh /bin/zsh

That’s pretty simple.
Of course, you’re not running zsh yet… either logout and log back in or just run zsh at the prompt. You’ll get a series of prompts to configure a .zshrc. It only takes a few minutes, so run through the options and save the file.
Next up: setting [...]

Read the rest of this entry »