diff options
Diffstat (limited to 'emacs')
| -rw-r--r-- | emacs/init.el | 52 |
1 files changed, 35 insertions, 17 deletions
diff --git a/emacs/init.el b/emacs/init.el index 6f12d03..17d365b 100644 --- a/emacs/init.el +++ b/emacs/init.el @@ -493,20 +493,34 @@ With ARG, don't save the current layout." ) (progn ; viper, ancient vi emulation - (setq-default viper-want-ctl-h-help t) - (setq-default viper-inhibit-startup-message 't) - (setq-default viper-expert-level 5) - (setq-default viper-is-in-minibuffer nil) - (setq-default viper-vi-style-in-minibuffer nil) - (setq-default viper-enable-minibuffer-faces nil) - (setq-default viper-syntax-preference 'emacs) - (setq-default viper-ex-style-motion nil) - (setq-default viper-auto-indent t) - (setq-default viper-buffer-search-char ?g) - (setq viper-mode nil) + (setq-default viper-want-ctl-h-help t + viper-inhibit-startup-message 't + viper-expert-level 5 + viper-is-in-minibuffer nil + viper-vi-style-in-minibuffer nil + viper-enable-minibuffer-faces nil + viper-syntax-preference 'emacs + viper-ex-style-motion nil + viper-auto-indent t + viper-buffer-search-char ?g + viper-insert-state-mode-list nil + viper-vi-state-mode-list nil + viper-emacs-state-mode-list nil + viper-major-mode-modifier-list nil + viper-mode nil) (require 'viper) (require 'viper-ex) + (advice-add 'viper-this-major-mode-requires-vi-state :override + ;; when viper, always, otherwise never + (lambda (&rest r) viper-mode)) + (advice-add 'viper-toggle-key-action :around + (lambda (func &optional arg) + (interactive "P") + (if arg + (progn (toggle-viper-mode) (force-window-update)) + (and viper-mode (call-interactively func))))) (define-key my/keys-mode-map (kbd "C-;") 'viper-ex) + (define-key my/keys-mode-map (kbd "C-z") 'viper-toggle-key-action) (advice-add 'viper-ex :around 'my/display-lines-advice) (define-key viper-vi-global-user-map (kbd "C-y") 'yank) (define-key viper-vi-global-user-map (kbd "C-e") 'end-of-line) @@ -515,12 +529,16 @@ With ARG, don't save the current layout." (define-key viper-vi-global-user-map (kbd "C-u") 'universal-argument) (define-key viper-insert-global-user-map (kbd "C-u") 'universal-argument) (define-key viper-insert-global-user-map (kbd "C-d") 'delete-char) - (define-key viper-insert-global-user-map (kbd "C-m") - #'(lambda () - (interactive) - (if completion-in-region-mode - (corfu-insert) - (viper-autoindent))))) + ;; TODO this is still somehow broken, I get the completion and the newline + ;; (define-key viper-insert-global-user-map (kbd "RET") + ;; #'(lambda () + ;; (interactive) + ;; (if completion-in-region-mode + ;; (corfu-insert) + ;; (viper-autoindent)))) + ) + + (progn ; indent code when pasting (require 'dash) |
