可能重复Emacs comment/uncomment current line
我想在上面的问题中找到与Gerstmann的答案类似的东西,但如果该区域的末端不是该行的结尾,那么答案就不会很好。例如,使用Gerstmann函数进行评论
(global-set-key (kbd "C-;") 'backward-delete-char-untabify)
(global-set-key (kbd "C-c C-c") 'comment-or-uncomment-region-or-line)
带有区域
(global-set-key (kbd "C-;") '(STARTPOINT)backward-delete-char-untabify)
(global-set-key (kbd "C-c C-c") 'comment-or-uncomment-(ENDPOINT)region-or-line)
将导致
(global-set-key (kbd "C-;") ';; backward-delete-char-untabify)
;; (global-set-key (kbd "C-c C-c") 'comment-or-uncomment-
region-or-line)
我希望它是这样的
;; (global-set-key (kbd "C-;") 'backward-delete-char-untabify)
;; (global-set-key (kbd "C-c C-c") 'comment-or-uncomment-region-or-line)
我怎样才能做到这一点,类似于取消注释,同样的事情是取消注释区域触及的线条上的所有内容。我确信有些情况可能不是评论方法,但目前这对我来说似乎更好。
答案 0 :(得分:0)
你选择了一个糟糕的例子,因为与某些语言不同,LISP不是基于行的。所以用你的方法,从
开始(progn
~(foo)
(bar)|)
你得到:
(progn
;; (foo)
;; (bar))
这是一个错误。
无论如何,这里是代码,也许你可以将它用于Python或其他东西:
(defun comment-line-based (beg end)
(interactive "r")
(let (deactivate-mark)
(goto-char beg)
(beginning-of-line)
(set-mark (point))
(goto-char end)
(end-of-line)
(comment-dwim nil))
(deactivate-mark))
它应该适用于评论和取消评论。