Hey there,
I just stumbled across evil for emacs. And I like it. I'm actually
surprised with how much I like it out of the box...
There was one thing though, the mode line tags, which didn't quite fit
into my existing mode line setup. I looked into it and thought I needed
to use `evil-put-property' to alter that stuff. But when I used
`evil-get-property' to take a look at which value was looked up, I found
that there was a variable in place already; namely `evil-*-state-tag'.
So, not I can just do:
(setq evil-normal-state-tag "(n)")
which is great. I'm not sure if that's the intended way, though, because
I didn't find this in the documentation (I may have missed it, of
course). I guess my real question is: Will the `evil-*-state-tag' stuff
be a stable way to configure this? (Because I don't like changing my
setup all the time for no apparent reason.)
The second thing is the echoing of "--- INSERT ---" etc. in the
mini-buffer when changing states. I understand that it's vim-ish, but it
distracts me little too much. It'd be great if that could be made
optional.
Here's a patch which does the trick (although I'm not sure I caught all
places):
>From 783d2a661515d0e9e59d8dbefff3698be5842cc9 Mon Sep 17 00:00:00 2001
From: Frank Terbeck <ft(a)bewatermyfriend.org>
Date: Sat, 29 Oct 2011 20:57:09 +0200
Subject: [PATCH] Introduce `evil-echo-state' to suppress state changes being
echoed
Signed-off-by: Frank Terbeck <ft(a)bewatermyfriend.org>
---
evil-core.el | 3 ++-
evil-vars.el | 5 +++++
evil-visual.el | 2 +-
3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/evil-core.el b/evil-core.el
index b2900aa..84badc6 100644
--- a/evil-core.el
+++ b/evil-core.el
@@ -872,7 +872,8 @@ If ARG is nil, don't display a message in the echo area.%s" name doc)
(redisplay)))
,@body
(run-hooks ',entry-hook)
- (when (and arg (not evil-locked-display) ,message)
+ (when (and arg (not evil-locked-display)
+ evil-echo-state ,message)
(if (functionp ,message)
(funcall ,message)
(evil-echo ,message))))))))
diff --git a/evil-vars.el b/evil-vars.el
index cbdd658..15074f4 100644
--- a/evil-vars.el
+++ b/evil-vars.el
@@ -149,6 +149,11 @@ which causes the parenthesis to be highlighted."
:type 'function
:group 'evil)
+(defcustom evil-echo-state t
+ "If non-nil (default), echo state in the minibuffer."
+ :type 'boolean
+ :group 'evil)
+
(defcustom evil-complete-previous-func
(lambda (arg)
(let ((dabbrev-search-these-buffers-only (list (current-buffer)))
diff --git a/evil-visual.el b/evil-visual.el
index b72d00e..248063e 100644
--- a/evil-visual.el
+++ b/evil-visual.el
@@ -230,7 +230,7 @@ If MESSAGE is given, display it in the echo area."
(evil-active-region 1)
(setq evil-visual-region-expanded nil)
(evil-visual-refresh type mark point)
- (when (stringp message)
+ (when (and (stringp message) evil-echo-state)
(evil-echo message))))
(defun evil-visual-expand-region (&optional no-trailing-newline)
--
1.7.6.447.gb9176