Email or username:

Password:

Forgot your password?
Top-level
rayslava

@tennoseremel If I got you right, it will be something like that:

(defun zap-back-up-to-char (char)
"Zap back to a character CHAR from the end of the line"
(interactive "cZap back to char: ")
(let ((end (save-excursion (move-end-of-line 1) (point)))
(start (save-excursion
(move-end-of-line 1)
(search-backward (char-to-string char) nil t))))
(if start
(progn
(delete-region (1+ start) end)
(goto-char (1+ start)))
(error "Character not found"))))

(define-key global-map (kbd "C-M-z") #'zap-back-up-to-char)

6 comments
rayslava

@tennoseremel or this one :blobcatthink:

(defun zap-up-to-last-char (char)
"Zap up to the last occurrence of CHAR in the line"
(interactive "cZap up to char: ")
(let ((start (point)))
(let ((end (save-excursion
(move-end-of-line 1)
(search-backward (char-to-string char) start t))))
(if end
(delete-region start end)
(error "Character not found")))))

Ténno Seremélʹ

@rayslava Thanks! I'll try it later, when I have enough mental power to read what it does :blobcatgiggle:

rayslava

@tennoseremel yep.
Also, a one-line-shorter version that saves the zapped part into kill-ring:

(defun zap-up-to-last-char (char)
"Zap up to the last occurrence of `char' in the line"
(interactive "cZap up to char: ")
(let* ((start (point))
(end (save-excursion
(move-end-of-line 1)
(search-backward (char-to-string char) start t))))
(if end
(kill-region start end)
(error "Character not found"))))

Ténno Seremélʹ

@rayslava Yay :)

(defun zap-up-to-last-char (char)
"Zap up to the last occurrence of CHAR in the line."
(interactive "cZap up to the last occurence of char: ")
(let* ((case-fold-search (if (char-uppercase-p char) nil case-fold-search))
(start (point))
(end (save-excursion
(move-end-of-line 1)
(search-backward (char-to-string char) start t))))
(if end
(kill-region start end)
(error "Character not found"))))

rayslava

@tennoseremel now you just need to promote it to upstream :blobcathappy:

Ténno Seremélʹ

@rayslava Looking at the source of zap-up-to-char it needs to be a bit longer, so it could be used non-interactively… :)

Go Up