<p><a href="http://mumble.net/~campbell/emacs/paredit.el" rel="noreferrer">paredit</a> binds <code>M-&lt;up&gt;</code> and <code>M-&lt;down&gt;</code>, but I want <a href="http://www.emacswiki.org/emacs/WindMove" rel="noreferrer">windmove</a> to own those keybindings.  I have paredit-mode set to activate in certain modes only, but windmove is set to run globally.  I want windmove to win, but paredit steals those keybindings when it loads.</p>

<p>How can I easily stop paredit from stomping on windmove's keybindings?  I have been going into <code>paredit.el</code> and commenting out the lines which set the keybinding, but this is far from ideal (I have to remember to do this every time I update paredit).</p>

<p>More generally, can I load an elisp file while "protecting" certain keybindings from being changed?</p>

You can use
```
eval-after-load
```
to configure paredit's behavior after loading it, as described in its comments:
```
```
;;; Customize paredit using `eval-after-load':
;;;
;;;   (eval-after-load 'paredit
;;;     '(progn ...redefine keys, &c....))
```
```
So, for example:
```
```
(eval-after-load 'paredit
  '(progn
     (define-key paredit-mode-map (kbd "<M-up>") nil)
     (define-key paredit-mode-map (kbd "<M-down>") nil)))
```
```