The CLI way: zsh programming, terminal-emulators, and more

Or: OO-free, browser-free, GUI-free, and mouse-free development as it was done pre-Apple, pre-Xerox, pre-C++, pre-Smalltalk, pre-everything - and, what once was, shall be again...

On this page (as for now) I collect all technology on this dear topic: initialization files, shell programming, and such (all that appears after this article, so read on). Note though, there is one final update to be made - namely, a large number of polemic articles - I have tons of those on my drive, but there is some filtering to do. Stay tuned!

The story behind the files: I started out with bash in a gnome-terminal (in X) like most other Debian newcomers. (This was more than five years ago - gulp!)

Soon I found that urxvt was faster than gnome-terminal, so I switched to urxvt. I even found a Perl module ("tabbed") to get a tabbed urxvt which for a while was very helpful.

Then, instead of X, I started to use the Linux VTs (the ttys or "the console"), and on top of each I put a two-pane tmux. Apart from being practical, as I never output lots of data (or use pagers), it also mirrors the two-window solution I have in Emacs. So I setup the same commands for splitting, jumping, etc. in both tmux and Emacs (which I run in tty1, with no tmux in between).

This solution more or less obsoleted the tabbed urxvt (and X use in a broader sense, as I found Gnus and w3m for Emacs), so in X, I switched to xterm (as it has more features than rxvt/urxvt). On top of xterm I, again, use the same two-paned tmux (and I never felt the need to have xterm tabbed, as I did with urxvt).

Somewhere along the way I switched from bash to zsh. It turned out, I never did that much shell programming, so perhaps that was premature, as there is much more material on the web on bash than on zsh. On the other hand, most solutions for bash work in zsh as well.

config and init files

zsh

framework

zsh shell functions and aliases

100+ files of zsh programming.

Back to the main page.