abo-abo / lispy

Short and sweet LISP editing
http://oremacs.com/lispy/
1.2k stars 132 forks source link

How to uncomment a single comment within a block? #567

Open bpstahlman opened 3 years ago

bpstahlman commented 3 years ago

Suppose cursor is at the beginning of the second comment line below:

;; First comment line
;; (some-commented-lisp-code)
;; Third comment line

Attempting to delete the ;; with \M-d, \C-d, etc., delete more than just the comment chars. I can uncomment the code line by supplying a count to ;, but this uncomments all of the lines in the block, which isn't what I want. I realize I can move past the comment chars (eg with \C-f) then backspace over the comment chars, but this feels like a workaround. Am I missing another way?

rprimus commented 3 years ago

Sun Feb 7 05:36:55 GMT 2021

;; First comment line
|;; (some-commented-lisp-code)
;; Third comment line

With the cursor at start of line 2 (indicated by '|'):

\C-<SPC> \C-n ;
Key:
  \C-<SPC> : `set-mark-command`
  \C-n     :  `next-line`
  ;        :  `lispy-comment`

HTH

bpstahlman commented 3 years ago

Ah. I guess as an inveterate Vim user, I don't rely on the visual selection for much, and would have expected an operator for something like this. But I suppose \C-<SPC> \C-n can be executed pretty quickly, and if I use one of the evil adapters (e.g., lispyville or evil-lispy), I could just hit V, which would be even quicker. Thanks for the help.

Suggestion: Perhaps a prefix arg of 0 could be used to make ; uncomment only the current line.