* emacs: indent automatically on c, c++, php comments @ 2003-09-06 9:30 Alex Braumann 2003-09-06 10:37 ` Alan Mackenzie 0 siblings, 1 reply; 12+ messages in thread From: Alex Braumann @ 2003-09-06 9:30 UTC (permalink / raw) Hi, I am not familiar with all the functions provided by this wonderful editor, also the configuration is not a task for 5 minutes :). I have a simple need: If I type a '//' in my emacs, the cursor should jump to column number 30. Is this practicable via the .emacs file in my home dir? thanks! :) tc, alex. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs: indent automatically on c, c++, php comments 2003-09-06 9:30 emacs: indent automatically on c, c++, php comments Alex Braumann @ 2003-09-06 10:37 ` Alan Mackenzie 2003-09-13 12:04 ` Alex Braumann 0 siblings, 1 reply; 12+ messages in thread From: Alan Mackenzie @ 2003-09-06 10:37 UTC (permalink / raw) Alex Braumann <ab@msedv.at> wrote on Sat, 06 Sep 2003 09:30:47 GMT: > Hi, > I am not familiar with all the functions provided by this wonderful > editor, also the configuration is not a task for 5 minutes :). > I have a simple need: > If I type a '//' in my emacs, the cursor should jump to column number 30. You're using C++ Mode, right? > Is this practicable via the .emacs file in my home dir? In essence, yes. Instead of typing '//', use M-; (that is, press the semicolon key whilst holding the Meta key (probably the <alt> or <window> key). This will then insert the '//' at comment-column, which is by default 32. (if there's room on the line, that is. If you've already got a long statement on the line, M-; does the Right Thing). You can also use M-; to tidy up existing comments which have got ragged. If you really, truly, absolutely want your comments at column 30 and not 32, change the value of comment-column in your C++ Mode hook. If your reaction to that is "My WHAT??", then the C++ Mode hook is that bit of code, written by you, which gets executed each time a C++ buffer is loaded. Put the following into your .emacs: (defun my-c++-mode-hook () (setq comment-column 30)) (add-hook 'c++-mode-hook 'my-c++-mode-hook) Hook functions (like my-c++-mode-hook) typically contain personal settings for indentation style, tab width, and so on. You can read all about this in the CC Mode manual: C-h i, select CC Mode, then select the page "Sample .emacs File". > thanks! :) > tc, > alex. -- Alan Mackenzie (Munich, Germany) Email: aacm@muuc.dee; to decode, wherever there is a repeated letter (like "aa"), remove half of them (leaving, say, "a"). ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs: indent automatically on c, c++, php comments 2003-09-06 10:37 ` Alan Mackenzie @ 2003-09-13 12:04 ` Alex Braumann 2003-09-13 13:36 ` Alan Mackenzie 0 siblings, 1 reply; 12+ messages in thread From: Alex Braumann @ 2003-09-13 12:04 UTC (permalink / raw) On Sat, 06 Sep 2003 10:37:40 +0000, Alan Mackenzie wrote: > You're using C++ Mode, right? No I'm using PHP Mode at the moment. > >Instead of typing '//', use M-; (that is, press the > semicolon key whilst holding the Meta key (probably the <alt> or <window> > key). This will then insert the '//' at comment-column, which is by > default 32. M- (alt + ;) produces '//' at column 0! That's my problem and I don't know how to fix it -> that '//' will appear on line 32; > (defun my-c++-mode-hook () > (setq comment-column 30)) > (add-hook 'c++-mode-hook 'my-c++-mode-hook) > This doens't work, unfortunately. (defun my-php-mode-hook ( ) (setq comment-column 30)) (add-hook 'c++-mode-hook 'my-php-mode-hook) Is it possible that php-mode doens't know comment-column?? Well, as I said, I'm an emacs-rookie. tc, alex. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs: indent automatically on c, c++, php comments 2003-09-13 12:04 ` Alex Braumann @ 2003-09-13 13:36 ` Alan Mackenzie 2003-09-13 15:38 ` Alex Braumann 0 siblings, 1 reply; 12+ messages in thread From: Alan Mackenzie @ 2003-09-13 13:36 UTC (permalink / raw) Alex Braumann <ab@msedv.at> wrote on Sat, 13 Sep 2003 12:04:19 GMT: > On Sat, 06 Sep 2003 10:37:40 +0000, Alan Mackenzie wrote: > I'm using PHP Mode at the moment. >> Instead of typing '//', use M-; (that is, press the semicolon key >> whilst holding the Meta key (probably the <alt> or <window> key). >> This will then insert the '//' at comment-column, which is by default >> 32. > M- (alt + ;) produces '//' at column 0! > That's my problem and I don't know how to fix it -> that '//' will appear > on line 32; > This doens't work, unfortunately. > (defun my-php-mode-hook ( ) > (setq comment-column 30)) > (add-hook 'c++-mode-hook 'my-php-mode-hook) It's your third line that's at fault. (add-hook 'c++-mode-hook 'my-php-mode-hook) says "Add the function my-php-mode-hook to the list of functions which is called whenever C++ MODE is started." Replace "c++-mode-hook" with "php-mode-hook", giving this: (add-hook 'php-mode-hook 'my-php-mode-hook) [Or, if you'd already written that and merely made a typo when composing your article (it happens to the best of us) come back again!] > Is it possible that php-mode doens't know comment-column?? No, comment-column is part of the Emacs base itself. (Note: variables which are part of a package have a prefix indicating this: If current-column had belonged to CC Mode, it would have been called "c-comment-column"). > Well, as I said, I'm an emacs-rookie. Keep learning, keep having fun! > tc, > alex. -- Alan Mackenzie (Munich, Germany) Email: aacm@muuc.dee; to decode, wherever there is a repeated letter (like "aa"), remove half of them (leaving, say, "a"). ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs: indent automatically on c, c++, php comments 2003-09-13 13:36 ` Alan Mackenzie @ 2003-09-13 15:38 ` Alex Braumann 2003-09-13 18:59 ` Alan Mackenzie 0 siblings, 1 reply; 12+ messages in thread From: Alex Braumann @ 2003-09-13 15:38 UTC (permalink / raw) On Sat, 13 Sep 2003 13:36:52 +0000, Alan Mackenzie wrote: >> (defun my-php-mode-hook ( ) >> (setq comment-column 30)) >> (add-hook 'c++-mode-hook 'my-php-mode-hook) > > It's your third line that's at fault. > > (add-hook 'c++-mode-hook 'my-php-mode-hook) says "Add the function > my-php-mode-hook to the list of functions which is called whenever C++ > MODE is started." > > Replace "c++-mode-hook" with "php-mode-hook", giving this: (add-hook > 'php-mode-hook 'my-php-mode-hook) > > [Or, if you'd already written that and merely made a typo when composing > your article (it happens to the best of us) come back again!] > > It has been a typo :) so, here I am! ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs: indent automatically on c, c++, php comments 2003-09-13 15:38 ` Alex Braumann @ 2003-09-13 18:59 ` Alan Mackenzie 2003-09-14 13:33 ` Alex Braumann 0 siblings, 1 reply; 12+ messages in thread From: Alan Mackenzie @ 2003-09-13 18:59 UTC (permalink / raw) Alex Braumann <ab@msedv.at> wrote on Sat, 13 Sep 2003 15:38:38 GMT: > On Sat, 13 Sep 2003 13:36:52 +0000, Alan Mackenzie wrote: >>> (defun my-php-mode-hook ( ) >>> (setq comment-column 30)) >>> (add-hook 'c++-mode-hook 'my-php-mode-hook) >> It's your third line that's at fault. >> (add-hook 'c++-mode-hook 'my-php-mode-hook) says "Add the function >> my-php-mode-hook to the list of functions which is called whenever C++ >> MODE is started." >> Replace "c++-mode-hook" with "php-mode-hook", giving this: (add-hook >> 'php-mode-hook 'my-php-mode-hook) >> [Or, if you'd already written that and merely made a typo when composing >> your article (it happens to the best of us) come back again!] > It has been a typo :) > so, here I am! Hi, there! I've actually loaded up the mode and tried it out. I should have done this earlier. :-( What I see is that M-; on a _blank_ line leaves the "//" at column zero. On a non-blank line (even if it's only got a single space), the "//" does indeed go to column 32 (or 30). So if you want a comment at C30 on an otherwise blank line, type a single space followed by M-; If you have a line with a comment at C0, and you want to reallign it to C30, type a single space at the start of the line, followed by M-; . This will move the existing comment rather than creating a silly "second comment" on the line. Finally, a useful command if you've got a comment at C30 but you really wanted it at C0 is M-\ 'delete-horizontal-space', which does what it says. [Yes, I know M-\ is awkward to type on a German keyboard layout. You can use <esc> \ (two separate key actions) instead.] Hope all this works as described and does what you want. If not, come back yet again! -- Alan Mackenzie (Munich, Germany) Email: aacm@muuc.dee; to decode, wherever there is a repeated letter (like "aa"), remove half of them (leaving, say, "a"). ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs: indent automatically on c, c++, php comments 2003-09-13 18:59 ` Alan Mackenzie @ 2003-09-14 13:33 ` Alex Braumann 2003-09-15 15:21 ` Stefan Monnier 2003-09-17 13:42 ` Alan Mackenzie 0 siblings, 2 replies; 12+ messages in thread From: Alex Braumann @ 2003-09-14 13:33 UTC (permalink / raw) yes you're right, concerning the character. unfortunately does a single blank not satisfy my php-mode :(. To get a line-30/32 comment, I have to do the following: c M-+';' //c stands for a character <blank> M- ';' doesn't work... It's not very helpful to get this. d //This is a comment. -> Everytime I write a comment, I have to delete the character afterwards at column 0??? That's a little bit nerving. alex. Besides: I'm using an English keyboard - so: M-s is not that hard for me :) ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs: indent automatically on c, c++, php comments 2003-09-14 13:33 ` Alex Braumann @ 2003-09-15 15:21 ` Stefan Monnier 2003-09-15 19:50 ` Alex Braumann 2003-09-17 13:42 ` Alan Mackenzie 1 sibling, 1 reply; 12+ messages in thread From: Stefan Monnier @ 2003-09-15 15:21 UTC (permalink / raw) > <blank> M- ';' doesn't work... It is unusual to want to indent comments to column 30 when there's no other text on the line. Could you describe a bit more of what you want the whole code with comments to look like ? Stefan ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs: indent automatically on c, c++, php comments 2003-09-15 15:21 ` Stefan Monnier @ 2003-09-15 19:50 ` Alex Braumann 2003-09-15 20:13 ` Stefan Monnier 0 siblings, 1 reply; 12+ messages in thread From: Alex Braumann @ 2003-09-15 19:50 UTC (permalink / raw) On Mon, 15 Sep 2003 15:21:03 +0000, Stefan Monnier wrote: >> <blank> M- ';' doesn't work... > > It is unusual to want to indent comments to column 30 when there's no other > text on the line. Could you describe a bit more of what you want the whole > code with comments to look like ? > It's programming-layout-stuff. There code should be fluent, not interrupted by comments. Therefore the comments are put at c30 on every line, regardless from begin a pure comment line or not. alex. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs: indent automatically on c, c++, php comments 2003-09-15 19:50 ` Alex Braumann @ 2003-09-15 20:13 ` Stefan Monnier 0 siblings, 0 replies; 12+ messages in thread From: Stefan Monnier @ 2003-09-15 20:13 UTC (permalink / raw) > Therefore the comments are put at c30 on every line, regardless from begin > a pure comment line or not. I think that you can use M-x indent-for-comment to do what you want. TAB will probably mess up your alignment, but you might be able to adjust the indentation rules for // comments as well. See the CC-mode manual to figure out how to adjust indentation rules. Stefan ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs: indent automatically on c, c++, php comments 2003-09-14 13:33 ` Alex Braumann 2003-09-15 15:21 ` Stefan Monnier @ 2003-09-17 13:42 ` Alan Mackenzie 2003-09-18 7:44 ` Alex Braumann 1 sibling, 1 reply; 12+ messages in thread From: Alan Mackenzie @ 2003-09-17 13:42 UTC (permalink / raw) [cc: to poster] Alex Braumann <ab@msedv.at> wrote on Sun, 14 Sep 2003 13:33:02 GMT: > yes you're right, concerning the character. unfortunately does a single > blank not satisfy my php-mode :(. It doesn't for me any more. It did on Saturday. I don't know why. :-( Sorry. I've been having at look at this over the last few days. I think I've got the answer. Could you put the following into your .emacs, please: (defun my-php-setup-hook () (setq c-comment-only-line-offset '(30 . 30)) (c-set-offset 'comment-intro 'c-lineup-comment)) (add-hook 'php-mode-user-hook 'my-php-setup-hook) I think it does what you want. > alex. -- Alan Mackenzie (Munich, Germany) Email: aacm@muuc.dee; to decode, wherever there is a repeated letter (like "aa"), remove half of them (leaving, say, "a"). ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs: indent automatically on c, c++, php comments 2003-09-17 13:42 ` Alan Mackenzie @ 2003-09-18 7:44 ` Alex Braumann 0 siblings, 0 replies; 12+ messages in thread From: Alex Braumann @ 2003-09-18 7:44 UTC (permalink / raw) On Wed, 17 Sep 2003 13:42:30 +0000, Alan Mackenzie wrote: > > > (defun my-php-setup-hook () > (setq c-comment-only-line-offset '(30 . 30)) > (c-set-offset 'comment-intro 'c-lineup-comment)) > (add-hook 'php-mode-user-hook 'my-php-setup-hook) > > I think it does what you want. It doens't - not for me! :). IMHO, php-mode depends on c++-mode, because my c++-mode has the same problem with comments. c-mode produces: /* */ yes, that's the way it is. alex. ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2003-09-18 7:44 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2003-09-06 9:30 emacs: indent automatically on c, c++, php comments Alex Braumann 2003-09-06 10:37 ` Alan Mackenzie 2003-09-13 12:04 ` Alex Braumann 2003-09-13 13:36 ` Alan Mackenzie 2003-09-13 15:38 ` Alex Braumann 2003-09-13 18:59 ` Alan Mackenzie 2003-09-14 13:33 ` Alex Braumann 2003-09-15 15:21 ` Stefan Monnier 2003-09-15 19:50 ` Alex Braumann 2003-09-15 20:13 ` Stefan Monnier 2003-09-17 13:42 ` Alan Mackenzie 2003-09-18 7:44 ` Alex Braumann
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).