Viを模倣する
Viper-mode
”M-X Viper-mode”を実行するとViのように挿入、ノーマルモードで活動ができるようになります。
でも、完全なViのキーバインドは使えません。
触った時は、以外とイイかもしれないとか思って楽しんでいたのですが、早々と限界を感じました。
ググりながら、途中まで設定をしたので記念に貼り付けておきます。
~/.viper
(setq viper-inhibit-startup-message 't) (setq viper-expert-level '3) ;; backspace (define-key viper-insert-global-user-map [backspace] 'backward-delete-char) ;; delete (define-key viper-insert-global-user-map [delete] 'delete-char) ;; 行の初め/終わ (define-key viper-vi-global-user-map(kbd"0") 'move-beginning-of-line) (define-key viper-vi-global-user-map(kbd"$") 'move-end-of-line) ;; window操作 (define-key viper-vi-global-user-map(kbd"\C-w\C-w") 'other-window) (define-key viper-emacs-global-user-map "\C-w\C-w" 'other-window) (define-key viper-vi-global-user-map "\C-w\C-w" 'other-window) (define-key viper-emacs-global-user-map "\C-w\C-o" 'delete-other-windows) (define-key viper-vi-global-user-map "\C-w\C-o" 'delete-other-windows) (define-key viper-vi-global-user-map "\C-w\h" 'windmove-left) (define-key viper-vi-global-user-map "\C-w\j" 'windmove-down) (define-key viper-vi-global-user-map "\C-w\k" 'windmove-up) (define-key viper-vi-global-user-map "\C-w\l" 'windmove-right) (define-key viper-emacs-global-user-map "\C-w\h" 'windmove-left) (define-key viper-emacs-global-user-map "\C-w\j" 'windmove-down) (define-key viper-emacs-global-user-map "\C-w\k" 'windmove-up) (define-key viper-emacs-global-user-map "\C-w\l" 'windmove-right) ;; dired を少しだけ vi 風に (define-key viper-dired-modifier-map "j" 'dired-next-line) (define-key viper-dired-modifier-map "k" 'dired-previous-line) (define-key viper-dired-modifier-map "/" 'dired-goto-file) (define-key viper-dired-modifier-map "l" '(lambda () (interactive) (dired-next-line 10))) (define-key viper-dired-modifier-map "h" '(lambda () (interactive) (dired-previous-line 10)))