Friday, March 5, 2010

(define (quick-thoughts)

I've added uniquify and smart-tab.el to my .emacs (and bound the second to tab, obviously). It feels very close to cheating in some way. Verbose variable names are suddenly that much less taxing on the fingers, and indentation/minibuffer use is unhindered. This may be the single most productive Emacs mod I've used so far, and the damn thing is two functions long. It's ridiculous. There have also been mods to my git-addendum file. The latest is

;;Addendum to the built-in GIT library for Emacs
(defun git-init (directory)
  "Initializes the given directory as a GIT repo, then runs git-status on it"
  (interactive "DSelect directory: ")
  (let ((default-directory directory))
    (git-run-command-buffer "*git-init*" "init"))
  (git-status directory))

;;added (define-key map "\C-p" 'git-pull) to git-status-mode-map in git.el
(defun git-pull (remote-dir)
  "Pulls from a directory. Typical input is 'user@remote-machine:directory master'"
  (interactive 
   (list (completing-read "Select git repo: " 
                          (if (boundp 'git-pull-completion)
                              git-pull-completion
                              '("")))))
  (unless git-status (error "Not in git-status buffer"))
  (git-run-command-buffer "*git-pull*" "pull" remote-dir)
  (customize-save-variable 'git-pull-completion
                           (if (boundp 'git-pull-completion)
                               (add-to-list 'git-pull-completion remote-dir)
                               (list remote-dir)))
  (git-refresh-files))

(provide 'git-addendum)

with many thanks to Junio Hamano, David Kågedal and Alexandre Julliard of the git.el maintenance team (whose time I won't impose further upon).

It's slowly beginning to dawn on me that Emacs is not an editor. Not in the classic sense, leastwise, which is why Bill Clementson's assessment rings true.

Emacs is a language for succinctly expressing editors.

That seems to be a theme with anything Lisp, and it's a powerful idea in its simplicity. This is the way John managed to break so much new ground. He didn't walk around using editors, or bothering with low level ideas; when he found a problem, his reaction was to define a notation in which expressing its solution was simple. There's a lot I could learn from that approach. )

No comments:

Post a Comment