I was thinking if my work environment would be interesting or not, but I decided ‘yes’ – because I always like reading about others work env.
I am working with Linux/UNIX for more than 15 years now, and I have tried a lot of cool tools, but at the end, I always found myself using the same apps in the terminal.
I like the Unix philosophy about Do One Thing and Do It Well. I never really use big, bloated software, I like to use my editor for editing files, and my git client to use git. That’s simple.
Normally I work on a mac, but I have an installed Linux based backup environment too, on a remote server which can be accessed via ssh.
The basic tool for me is iTerm2. The main features I use are split pane (cmd+D vertical, cmd+shift+D horizontal) and broadcast input (cmd+shift+I). I also like that it can be switched to fullscreen with cmd+enter. In my Linux env, I use tmux, because it also can split my screen, and I can toggle broadcast input as well. With itermocil, I can define and save my iTerm layouts. I almost never use multiple windows or multiple tabs, but multiple iTerm windows – with multiple panes. I love that it has unlimited scrollback buffer.
For the interactive shell, I like to use fish. It is really neat to use, I like the previous command suggestion and the tab completion for them. I never script fish, for shell scripting I prefer bash, because that is portable, on my Linux env I use bash, and liquidprompt. (Liquidprompt is also installed on my primary computer because sometimes I fall back to bash on that too.)
I use Vim as editor. I keep it as clean as it possible, here’s my .vimrc. I rarely open files from the editor or use multiple windows. In my normal workflow, I open the file with vim from the shell and close it with a common wq. I have spent a lot of time trying to use Sublime Text and Atom, but I never liked them really; Sublime managed to be on my computer, and I use it for opening text files from Finder, but that’s rare. With Vim I can use the same editor on any of my servers as on my current notebook; I know there are fancy keyboard shortcuts for Sublime and Atom to find files which are containing a string or browse the file repository, but I never found them as fast or useful as the good old find or grep tools. Well, instead of grep I prefer ack nowadays, it is better to search through code with that. I use a lot of ad-hoc macros (macro recording) with Vim.
For git, I use the simple command line client, no fancy stuff, no ‘Tower’, no git from the editor. Just a sane prompt setting and that’s all. I cannot tell more about my git habits.
I have an installed MySQL Workbench, but I use it rarely. Normally, if I have to use MySQL, I ssh to the server and use there the local mysql client natively. I set up the prompt there, but that’s all.
On my Mac, I prefer to use GNU software – I work on Linux servers, so I don’t want to spend the time to learn multiple command line switches, I like when sed has the same switches everywhere. Here is a good post about how to install GNU tools on OSX. (In the prehistoric times, when I worked from FreeBSD, I did the same.)
I use 1Password to keep passwords, and flycut, to use them. Normally at morning I open 1password and fill the passwords in flycut I plan to use. It is set to wraparound basel, so cmd+shift+v + left arrow always bring up the first password of mine (sudo …)
Launching test virtual boxes I use Vagrant (of course) I never have to open VirtualBox – just vagrant up (after editing Vagrantfile with vim, of course)
In my Linux environment, I have two more applications used: irssi for accessing our slack channels (via IRC gateway) and mutt for accessing Gmail. (The Linux env is prepared to be used for anything which has an internet access and an ssh terminal.)