Emacs + vimpulse - это круто, но я думаю, что его правильный рабочий процесс заключается в свободном использовании команд emacs в сочетании с ярлыками vim.
Например, ярлыки макросов в Emacs F3 и F4 проще, чем в qim и @q vim.
Также команды emacs доступны через Alt + x, а не: команды. Хотя vimpulse поддерживает несколько важных команд vim, они существуют только для совместимости.
Ниже приведены мои специфические настройки для vimpulse.
.emacs
; I use C-d to quit emacs and vim
(vimpulse-global-set-key 'vi-state (kbd "C-d") 'save-buffers-kill-terminal)
; use ; instead of :
(vimpulse-global-set-key 'vi-state (kbd ";") 'viper-ex)
; use C-e instead of $. This works for all motion command too! (e.g. d C-e is easier to type than d$)
(vimpulse-global-set-key 'vi-state (kbd "C-e") 'viper-goto-eol)
(defun t_save() (interactive)(save-buffer)(viper-change-state-to-vi))
(global-set-key (kbd "\C-s") 't_save) ; save using C-s instead of :w<CR> or C-x-s
(defun command-line-diff (switch)
(let ((file1 (pop command-line-args-left))
(file2 (pop command-line-args-left)))
(ediff file1 file2)))
;; Usage: emacs -diff file1 file2 (much better then vimdiff)
(add-to-list 'command-switch-alist '("-diff" . command-line-diff))
Если вам нравится терминал, вы можете использовать emacs -nw. В этом случае это дополнение буфера обмена полезно. http://www.lingotrek.com/2010/12/integrating-emacs-with-x11-clipboard-in.html
.viper
(setq viper-inhibit-startup-message 't)
(setq viper-expert-level '3)
(setq viper-ESC-key "\C-c") ; use C-c instead of ESC. unlike vim, C-c works perfectly with vimpulse.
Почти все, что делает vim, можно легко (если не так) сделать в emacs + vimpulse, но определенно не наоборот!
p.s. большинство предложений, приведенных выше, поддерживаются недавним vimpulse BY DEFAULT.