aboutsummaryrefslogtreecommitdiff
path: root/evil-commands.el
diff options
context:
space:
mode:
Diffstat (limited to 'evil-commands.el')
-rw-r--r--evil-commands.el19
1 files changed, 9 insertions, 10 deletions
diff --git a/evil-commands.el b/evil-commands.el
index e764857..d34abfd 100644
--- a/evil-commands.el
+++ b/evil-commands.el
@@ -1578,16 +1578,15 @@ be joined with the previous line if and only if
(evil-define-command evil-delete-backward-word ()
"Delete previous word."
- (if (and (bolp) (not (bobp)))
- (progn
- (unless evil-backspace-join-lines (user-error "Beginning of line"))
- (delete-char -1))
- (delete-region (max
- (save-excursion
- (evil-backward-word-begin)
- (point))
- (line-beginning-position))
- (point))))
+ (let ((beg (save-excursion (evil-backward-word-begin) (point)))
+ (end (point)))
+ (cond
+ ((evil-replace-state-p) (while (< beg (point))
+ (evil-replace-backspace)))
+ ((or (not (bolp)) (bobp)) (delete-region (max beg (line-beginning-position))
+ end))
+ (evil-backspace-join-lines (delete-char -1))
+ (t (user-error "Beginning of line")))))
(evil-define-command evil-delete-back-to-indentation ()
"Delete back to the first non-whitespace character.