August 26, 2009: A vimdiff primer.
Pacmatic is a small wrapper for Arch Linux's package manager, pacman. It takes care of a few menial tasks you should do every time before updating your system. These tasks are so menial so that many Archers always forget them, until they are surprised by a horrible problem. However, menial tasks are easy to automate, and that is where pacmatic comes in.
Using it is pretty simple. Just type
pacmatic instead of
pacman. It will perform some introspection on the calling arguments,
pacman.log and the Arch news feed. If you do something foolish, it will tell you.
It helps you avoid three common mistakes. First, it adds a tiny RSS reader. The Arch Devs will routinely announce major compatibility breaks on the Arch feed, and it is stuff you really should see before updating. Disseminating information rapidly and effectively will be an essential role for the next generation of package managers. Information updates are trickier than application updates, but are just as critical.
Second, Arch is an aggressive rolling release distro and if improperly synchronised can blow your leg off when libraries are updated in a backwards incompatible manner. It won't stop pacman from trashing your system, but it will print a warning if the local repositories get ahead of what's actually installed.
Third, it will pester you to stay on top of configuration updates. Pacman will tell you that there are new configuration files, but pacmatic is a little more in your face about actually taking care of them. For actually merging the files, vimdiff is used. Honestly, I had never used it for editing diffs, just viewing them. Full details are found in
:help vimdiff. Here is the shortest primer to make vimdiff useful:
> Ctrl w (twice) Toggle windows > > do Short for "diff obtain", but I think of "other", because it pulls the change under the cursor from other window into the focused window. > > dp Short for "diff put", but I think of "push", because it pushes changes from the focused window to non-focused window. > > ]c Jump forward to the next change. > > [c Jump bacwards to the previous change.
Dependencies are pretty light. Just wget, pacman and pacman-contrib.