summaryrefslogtreecommitdiff
path: root/emacs
diff options
context:
space:
mode:
Diffstat (limited to 'emacs')
-rw-r--r--emacs/init.el52
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)