unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* commenting trouble
@ 2009-01-09 19:52 Reynaldo
  2009-01-09 23:34 ` Ian Eure
  0 siblings, 1 reply; 5+ messages in thread
From: Reynaldo @ 2009-01-09 19:52 UTC (permalink / raw)
  To: help-gnu-emacs

Hello,

Recently I wrote this (my first lines of Emacs Lisp)

(defun comentar (&optional beg end)
  (interactive "r")
  (save-excursion
    (if (and beg end)
    (comment-region beg end)
      (let ((beg (progn
           (beginning-of-line)
           (point)))
        (end (progn
           (end-of-line)
           (point))))
    (comment-region beg end)))))

And my purpose was to use the same function to comment a line without
having to select a region, or comment a region (selecting it, of course)
but it doesn't work as expected. If for once I delete the if condition
then it works fine when I comment a line, but i wanted to extend it to
comment a region.

Is this possible? Or does one need to have separate command (and key
bindings) to work on a line or on a region as with kill-line and kill-region

Regards,
Reynaldo




^ permalink raw reply	[flat|nested] 5+ messages in thread

* commenting trouble
@ 2009-01-09 21:12 Reynaldo
  0 siblings, 0 replies; 5+ messages in thread
From: Reynaldo @ 2009-01-09 21:12 UTC (permalink / raw)
  To: help-gnu-emacs

Hello,

Recently I wrote this (my first lines of Emacs Lisp)

(defun comentar (&optional beg end)
  (interactive "r")
  (save-excursion
    (if (and beg end)
    (comment-region beg end)
      (let ((beg (progn
           (beginning-of-line)
           (point)))
        (end (progn
           (end-of-line)
           (point))))
    (comment-region beg end)))))

And my purpose was to use the same function to comment a line without
having to select a region, or comment a region (selecting it, of course)
but it doesn't work as expected. If for once I delete the if condition
then it works fine when I comment a line, but i wanted to extend it to
comment a region.

Is this possible? Or does one need to have separate command (and key
bindings) to work on a line or on a region as with kill-line and kill-region

Regards,
Reynaldo




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: commenting trouble
  2009-01-09 19:52 Reynaldo
@ 2009-01-09 23:34 ` Ian Eure
  2009-01-10  1:09   ` Reynaldo
  0 siblings, 1 reply; 5+ messages in thread
From: Ian Eure @ 2009-01-09 23:34 UTC (permalink / raw)
  To: Reynaldo; +Cc: help-gnu-emacs

On Jan 9, 2009, at 11:52 AM, Reynaldo wrote:

> Hello,
>
> Recently I wrote this (my first lines of Emacs Lisp)
>
> (defun comentar (&optional beg end)
>  (interactive "r")
>  (save-excursion
>    (if (and beg end)
>    (comment-region beg end)
>      (let ((beg (progn
>           (beginning-of-line)
>           (point)))
>        (end (progn
>           (end-of-line)
>           (point))))
>    (comment-region beg end)))))
>
> And my purpose was to use the same function to comment a line without
> having to select a region, or comment a region (selecting it, of  
> course)
> but it doesn't work as expected. If for once I delete the if condition
> then it works fine when I comment a line, but i wanted to extend it to
> comment a region.
>
> Is this possible? Or does one need to have separate command (and key
> bindings) to work on a line or on a region as with kill-line and  
> kill-region
>
I use this code I ganked from Aquamacs (lines 308-324):

http://github.com/davidswelt/aquamacs-git/tree/master/src/site-lisp/macosx/osxkeys.el#L308

It gives you (comment-or-uncomment-region-or-line), which I bind to C- 
c C-c in the appropriate modes.

  - Ian




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: commenting trouble
  2009-01-09 23:34 ` Ian Eure
@ 2009-01-10  1:09   ` Reynaldo
  0 siblings, 0 replies; 5+ messages in thread
From: Reynaldo @ 2009-01-10  1:09 UTC (permalink / raw)
  Cc: help-gnu-emacs

Ian Eure escribió:
> On Jan 9, 2009, at 11:52 AM, Reynaldo wrote:
>
>> Hello,
>>
>> Recently I wrote this (my first lines of Emacs Lisp)
>>
>> (defun comentar (&optional beg end)
>>  (interactive "r")
>>  (save-excursion
>>    (if (and beg end)
>>    (comment-region beg end)
>>      (let ((beg (progn
>>           (beginning-of-line)
>>           (point)))
>>        (end (progn
>>           (end-of-line)
>>           (point))))
>>    (comment-region beg end)))))
>>
>> And my purpose was to use the same function to comment a line without
>> having to select a region, or comment a region (selecting it, of course)
>> but it doesn't work as expected. If for once I delete the if condition
>> then it works fine when I comment a line, but i wanted to extend it to
>> comment a region.
>>
>> Is this possible? Or does one need to have separate command (and key
>> bindings) to work on a line or on a region as with kill-line and
>> kill-region
>>
> I use this code I ganked from Aquamacs (lines 308-324):
>
> http://github.com/davidswelt/aquamacs-git/tree/master/src/site-lisp/macosx/osxkeys.el#L308
>
>
> It gives you (comment-or-uncomment-region-or-line), which I bind to
> C-c C-c in the appropriate modes.
>
>  - Ian
Great! That's what I was looking for, I'll study the code.

Thanks very much!





^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: commenting trouble
       [not found] <mailman.4452.1231543773.26697.help-gnu-emacs@gnu.org>
@ 2009-01-12 22:49 ` Xah Lee
  0 siblings, 0 replies; 5+ messages in thread
From: Xah Lee @ 2009-01-12 22:49 UTC (permalink / raw)
  To: help-gnu-emacs

On Jan 9, 11:52 am, Reynaldo <reynaldo...@gmail.com> wrote:
> Hello,
>
> Recently I wrote this (my first lines of Emacs Lisp)
>
> (defun comentar (&optional beg end)
>   (interactive "r")
>   (save-excursion
>     (if (and beg end)
>     (comment-region beg end)
>       (let ((beg (progn
>            (beginning-of-line)
>            (point)))
>         (end (progn
>            (end-of-line)
>            (point))))
>     (comment-region beg end)))))
>
> And my purpose was to use the same function to comment a line without
> having to select a region, or comment a region (selecting it, of course)
> but it doesn't work as expected.
> ...

I have writen exactly that.

See:

• How To Write A Emacs Command For Comment Handling
  http://xahlee.org/emacs/elisp_comment_command.html

I sent a bug report to gnu emacs official list, about how comment-dwim
does not comment out the current line when there's no selection. I
think it is not intuitive.

Bug #1286
http://groups.google.com/group/gnu.emacs.bug/browse_frm/thread/7186aed0c6f4b58e

2 emacs developers responded that the current behavior has always been
like that and did not consider it not intuitive.

  Xah
∑ http://xahlee.org/^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2009-01-12 22:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <mailman.4452.1231543773.26697.help-gnu-emacs@gnu.org>
2009-01-12 22:49 ` commenting trouble Xah Lee
2009-01-09 21:12 Reynaldo
  -- strict thread matches above, loose matches on Subject: below --
2009-01-09 19:52 Reynaldo
2009-01-09 23:34 ` Ian Eure
2009-01-10  1:09   ` Reynaldo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).