Emacs
I’ve been using EMACS for the better part of my sysadmin live. Back in the days I’ve learned the basics of editing. Every now and then I learned another shortcut or command.
Things changed with my current position of a Senior Sysadmin: Now I spend most of the day in Emacs. Writing hundreds of lines of code and configfiles I figured it was time to dig deeper into Emacs to save time and make my life easier.
Like many other people I have multiple computers. Saving my configs in git was the first step. You can clone it if you want:
git clone http://git.bundesbrandschatzamt.de/emacsconfig.git ~/.emacs
Then I came across using template.el and writing templates for perl and bash.
Probably one of the biggest timesavers in the day of a sysadmin is the tramp.el. Now you can use your local customized editor of choice and change things via sftp. I am using tramp for years now.
Twittering-mode is something I have to setup finally. It’s worth saving searches like #emacs or #cfengine and check out news every other day. You will learn a lot with this method.
auto-complete-config.el is a huge timesaver. I am still trying to figure out how I can extend it with online documentation for things like cfengine.
Talking about cfengine: For sure I am using cfengine3-mode.
Have you heard of dns-mode? Besides highlighting it adjusts your SOA serial for you while saving.
Every now and then I stumble on the keyboard with my fingers and hit C-x C-c by accident. setq confirm-kill-emacs saves my day now.
Thanks to emacswiki I was able to configure other nice tidbits like RecentFiles, stack minibuffers, completion in mini-buffer or highlight text between parens.
For changelogs you need quite often a timestamp with your name and email. Having my own shortcut for it is very handy.
Using tags files for cfengine I wrote my own function for loading a specific tag file and opening my main config file in cfengine. Here can I start my little task or search for tags and do something bigger.
Learning some elisp opened new windows for me: In my CFEngine config file I have block defining useraccounts. Some of this data is from a LDAP system. Instead of using a different programm to fetch the data and edit by hand I wrote a small elisp function. Now I call the function, enter the username and the complete blog is written to my file and filled with data. Awesome!
Getting familiar with org-mode will probably take one or another week.