The more I move to VC,1 the more I end up relying on M-!
shell-command). Admittedly, this is a tool I’ve hardly ever used before, but
since VC lacks many features covered by Magit, sometimes I need to interact with
the power of Git straight from the command line.
One of the best things about Magit is that I don’t have to remember the many Git options to use it every day. Through transient menus, Magit makes Git a matter of few key strokes. On the other hand, from time to time I find myself on remote machines where Magit is not available, so it does not hurt to have a better understanding of the basic Git operations at my disposal.
However, typing them all out every single time is not the kind of pleasant
activity a lazy Emacs user enjoys. Juri Linkov shared this little trick on
(defun mu-minibuffer-complete-history () "Complete minibuffer history." (interactive) (completion-in-region (minibuffer--completion-prompt-end) (point-max) (symbol-value minibuffer-history-variable) nil))
Juri also suggested to bind it to C-TAB in
which, coincidentally, is the same key binding I have to manually complete with
Company outside of the minibuffer.
What Juri’s code does is popping up a
*Completions* buffer with the history of
the commands used in the minibuffer. I only use it with
shell-command, but try
it with C-x C-f for fun.
I leave it as a small exercise for the reader to understand how to switch from
the minibuffer to the
*Completions* buffer and vice versa. Tip: C-h
m is your friend.
See A job for VC and Rebasing with VC. ↩
See History completion. ↩