unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Indent first line of each paragraph of file in one hit
@ 2016-11-24 15:35 Rodolfo Medina
  2016-11-24 22:44 ` Rodolfo Medina
  2016-11-25 10:48 ` Konstantin Shakhnov
  0 siblings, 2 replies; 11+ messages in thread
From: Rodolfo Medina @ 2016-11-24 15:35 UTC (permalink / raw)
  To: help-gnu-emacs

Hi to all Emacs users.

Suppose you have a large file, in which the first line of each paragraph is not
indented; and want it to be with one single command for the whole file.  Is
that possible, and how?

Thanks for any help,

Rodolfo



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

* Indent first line of each paragraph of file in one hit
@ 2016-11-24 20:18 Rodolfo Medina
  2016-11-25 11:34 ` Andreas Röhler
  0 siblings, 1 reply; 11+ messages in thread
From: Rodolfo Medina @ 2016-11-24 20:18 UTC (permalink / raw)
  To: help-gnu-emacs

Hi to all Emacs users.

Suppose you have a large file, in which the first line of each paragraph is not
indented; and want it to be with one single command for the whole file.  Is
that possible, and how?

Thanks for any help,

Rodolfo



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

* Re: Indent first line of each paragraph of file in one hit
  2016-11-24 15:35 Indent first line of each paragraph of file in one hit Rodolfo Medina
@ 2016-11-24 22:44 ` Rodolfo Medina
  2016-11-25 10:48 ` Konstantin Shakhnov
  1 sibling, 0 replies; 11+ messages in thread
From: Rodolfo Medina @ 2016-11-24 22:44 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina <rodolfo.medina@gmail.com> writes:

> Suppose you have a large file, in which the first line of each paragraph is
> not indented; and want it to be with one single command for the whole file.
> Is that possible, and how?


Sorry for multiple posting, I thought my message had not been delivered to the
list because of technical problems.

Rodolfo



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

* Re: Indent first line of each paragraph of file in one hit
  2016-11-24 15:35 Indent first line of each paragraph of file in one hit Rodolfo Medina
  2016-11-24 22:44 ` Rodolfo Medina
@ 2016-11-25 10:48 ` Konstantin Shakhnov
  2016-11-25 11:28   ` Rodolfo Medina
  1 sibling, 1 reply; 11+ messages in thread
From: Konstantin Shakhnov @ 2016-11-25 10:48 UTC (permalink / raw)
  To: Rodolfo Medina; +Cc: help-gnu-emacs

On Thu, Nov 24, 2016 at 03:35:12PM +0000, Rodolfo Medina wrote:
> Suppose you have a large file, in which the first line of each paragraph is not
> indented; and want it to be with one single command for the whole file.  Is
> that possible, and how?

I'm not great lisp master, but this dirty sketches works (just replace
">>>>" to what you need at the beginning of line):

;; Variant 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun my-indent-first-line1 ()
  "Indent the first line of each paragraph"
  (interactive)
  (goto-char (point-min))
  (while (not (= (point) (point-max)))
    (forward-paragraph)
    (next-line)
    (insert ">>>>")
    (fill-paragraph)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(fill-paragraph) - is optional, delete it if you don't want refill
paragraph after inserting

;; Variant 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun my-indent-first-line2 ()
  "Indent the first line of each paragraph"
  (interactive)
  (replace-regexp "\n\n" "\n\n>>>>" nil (point-min) (point-max)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



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

* Re: Indent first line of each paragraph of file in one hit
  2016-11-25 10:48 ` Konstantin Shakhnov
@ 2016-11-25 11:28   ` Rodolfo Medina
  2016-11-25 11:52     ` Rodolfo Medina
  0 siblings, 1 reply; 11+ messages in thread
From: Rodolfo Medina @ 2016-11-25 11:28 UTC (permalink / raw)
  To: Konstantin Shakhnov; +Cc: help-gnu-emacs

Konstantin Shakhnov <kastian@mail.ru> writes:

> On Thu, Nov 24, 2016 at 03:35:12PM +0000, Rodolfo Medina wrote:
>> Suppose you have a large file, in which the first line of each paragraph is
>> not indented; and want it to be with one single command for the whole file.
>> Is that possible, and how?
>
> I'm not great lisp master, but this dirty sketches works (just replace
> ">>>>" to what you need at the beginning of line):
>
> ;; Variant 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> (defun my-indent-first-line1 ()
>   "Indent the first line of each paragraph"
>   (interactive)
>   (goto-char (point-min))
>   (while (not (= (point) (point-max)))
>     (forward-paragraph)
>     (next-line)
>     (insert ">>>>")
>     (fill-paragraph)))
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> (fill-paragraph) - is optional, delete it if you don't want refill
> paragraph after inserting
>
> ;; Variant 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> (defun my-indent-first-line2 ()
>   "Indent the first line of each paragraph"
>   (interactive)
>   (replace-regexp "\n\n" "\n\n>>>>" nil (point-min) (point-max)))
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


Thanks, it seems to work fine.  But please now suppose that I want that command
to act only upon the paragraph where the cursor is now and not on the rest of
the document.

Thanks,

Rodolfo



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

* Re: Indent first line of each paragraph of file in one hit
  2016-11-24 20:18 Rodolfo Medina
@ 2016-11-25 11:34 ` Andreas Röhler
  0 siblings, 0 replies; 11+ messages in thread
From: Andreas Röhler @ 2016-11-25 11:34 UTC (permalink / raw)
  To: help-gnu-emacs



On 24.11.2016 21:18, Rodolfo Medina wrote:
> Hi to all Emacs users.
>
> Suppose you have a large file, in which the first line of each paragraph is not
> indented; and want it to be with one single command for the whole file.  Is
> that possible, and how?
>
> Thanks for any help,
>
> Rodolfo
>

Don't see a library ready to it. But yes, it would be possible to fill 
the first line, then proceed with the remaining paragraph, jump to the 
next. A keybord-macro might do it already.



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

* Re: Indent first line of each paragraph of file in one hit
  2016-11-25 11:28   ` Rodolfo Medina
@ 2016-11-25 11:52     ` Rodolfo Medina
  2016-11-25 12:15       ` Konstantin Shakhnov
  0 siblings, 1 reply; 11+ messages in thread
From: Rodolfo Medina @ 2016-11-25 11:52 UTC (permalink / raw)
  To: Konstantin Shakhnov; +Cc: help-gnu-emacs

Rodolfo Medina <rodolfo.medina@gmail.com> writes:

> Konstantin Shakhnov <kastian@mail.ru> writes:
>
>> On Thu, Nov 24, 2016 at 03:35:12PM +0000, Rodolfo Medina wrote:
>>> Suppose you have a large file, in which the first line of each paragraph is
>>> not indented; and want it to be with one single command for the whole file.
>>> Is that possible, and how?
>>
>> I'm not great lisp master, but this dirty sketches works (just replace
>> ">>>>" to what you need at the beginning of line):
>>
>> ;; Variant 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>> (defun my-indent-first-line1 ()
>>   "Indent the first line of each paragraph"
>>   (interactive)
>>   (goto-char (point-min))
>>   (while (not (= (point) (point-max)))
>>     (forward-paragraph)
>>     (next-line)
>>     (insert ">>>>")
>>     (fill-paragraph)))
>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>>
>> (fill-paragraph) - is optional, delete it if you don't want refill
>> paragraph after inserting
>>
>> ;; Variant 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>> (defun my-indent-first-line2 ()
>>   "Indent the first line of each paragraph"
>>   (interactive)
>>   (replace-regexp "\n\n" "\n\n>>>>" nil (point-min) (point-max)))
>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
>
> Thanks, it seems to work fine.  But please now suppose that I want that
> command to act only upon the paragraph where the cursor is now and not on the
> rest of the document.

This seems to work:

(defun my-indent-first-line1 ()
  "Indent the first line of each paragraph"
  (interactive)
    (backward-paragraph)
    (next-line)
    (insert "        ")
    (fill-paragraph)
    )


Rodolfo



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

* Re: Indent first line of each paragraph of file in one hit
  2016-11-25 11:52     ` Rodolfo Medina
@ 2016-11-25 12:15       ` Konstantin Shakhnov
  2016-11-25 12:20         ` Rodolfo Medina
  0 siblings, 1 reply; 11+ messages in thread
From: Konstantin Shakhnov @ 2016-11-25 12:15 UTC (permalink / raw)
  To: Rodolfo Medina; +Cc: help-gnu-emacs

On Fri, Nov 25, 2016 at 11:52:55AM +0000, Rodolfo Medina wrote:
> This seems to work:
>
> (defun my-indent-first-line1 ()
>   "Indent the first line of each paragraph"
>   (interactive)
>     (backward-paragraph)
>     (next-line)
>     (insert "        ")
>     (fill-paragraph)
>     )


Yes, I've just made something similar. But there is a trap - if your
file doesn't starts with '\n' you'll get wrong indentation of the
first paraghaph
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
The Shire at this time had hardly any 'government'. Families for the
>>>>>most part managed their own affairs. Growing food and eating it
occupied most of their time. In other matters they were, as a rule,
....
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



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

* Re: Indent first line of each paragraph of file in one hit
  2016-11-25 12:15       ` Konstantin Shakhnov
@ 2016-11-25 12:20         ` Rodolfo Medina
  2016-11-25 12:45           ` Konstantin Shakhnov
  0 siblings, 1 reply; 11+ messages in thread
From: Rodolfo Medina @ 2016-11-25 12:20 UTC (permalink / raw)
  To: Konstantin Shakhnov; +Cc: help-gnu-emacs

Konstantin Shakhnov <kastian@mail.ru> writes:

> On Fri, Nov 25, 2016 at 11:52:55AM +0000, Rodolfo Medina wrote:
>> This seems to work:
>>
>> (defun my-indent-first-line1 ()
>>   "Indent the first line of each paragraph"
>>   (interactive)
>>     (backward-paragraph)
>>     (next-line)
>>     (insert "        ")
>>     (fill-paragraph)
>>     )
>
>
> Yes, I've just made something similar. But there is a trap - if your
> file doesn't starts with '\n' you'll get wrong indentation of the
> first paraghaph


Yes, I see.  No way to avoid that?

Rodolfo



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

* Re: Indent first line of each paragraph of file in one hit
  2016-11-25 12:20         ` Rodolfo Medina
@ 2016-11-25 12:45           ` Konstantin Shakhnov
  2016-11-25 15:39             ` [solved] " Rodolfo Medina
  0 siblings, 1 reply; 11+ messages in thread
From: Konstantin Shakhnov @ 2016-11-25 12:45 UTC (permalink / raw)
  To: help-gnu-emacs

On Fri, Nov 25, 2016 at 12:20:45PM +0000, Rodolfo Medina wrote:
> Konstantin Shakhnov <kastian@mail.ru> writes:
> > Yes, I've just made something similar. But there is a trap - if your
> > file doesn't starts with '\n' you'll get wrong indentation of the
> > first paraghaph
> Yes, I see.  No way to avoid that?

(defun my-indent-first-line ()
  "Indent the first line of current paragraph"
  (interactive)
  (backward-paragraph)
  (if (= (line-beginning-position) (line-end-position)) ; if line not empty
      (next-line))
  (insert ">>>>")
  (fill-paragraph))

Not very nice, but seems working.



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

* [solved] Re: Indent first line of each paragraph of file in one hit
  2016-11-25 12:45           ` Konstantin Shakhnov
@ 2016-11-25 15:39             ` Rodolfo Medina
  0 siblings, 0 replies; 11+ messages in thread
From: Rodolfo Medina @ 2016-11-25 15:39 UTC (permalink / raw)
  To: Konstantin Shakhnov; +Cc: help-gnu-emacs

Konstantin Shakhnov <kastian@mail.ru> writes:

> On Fri, Nov 25, 2016 at 12:20:45PM +0000, Rodolfo Medina wrote:
>> Konstantin Shakhnov <kastian@mail.ru> writes:
>> > Yes, I've just made something similar. But there is a trap - if your
>> > file doesn't starts with '\n' you'll get wrong indentation of the
>> > first paraghaph
>> Yes, I see.  No way to avoid that?
>
> (defun my-indent-first-line ()
>   "Indent the first line of current paragraph"
>   (interactive)
>   (backward-paragraph)
>   (if (= (line-beginning-position) (line-end-position)) ; if line not empty
>       (next-line))
>   (insert ">>>>")
>   (fill-paragraph))
>
> Not very nice, but seems working.


Thanks!  Константин also provided this:

(defun my-indent-first-line-of-all-paragraphs ()
  "Indent the first line of each paragraph"
  (interactive)
  (save-excursion
    (goto-char (point-min))
    (while (not (= (point) (point-max)))
      (if (= (line-beginning-position) (line-end-position)) ; if empty line
	  (next-line))
      (insert ">>>>")
      (fill-paragraph)
      (forward-paragraph))))

(global-set-key (kbd "C-c i") 'my-indent-all-paragraphs)

(defun my-indent-first-line-of-current-paragraph ()
  "Indent the first line of current paragraph"
  (interactive)
  (backward-paragraph)
  (if (= (line-beginning-position) (line-end-position))
      (next-line))
  (insert ">>>>")
  (fill-paragraph))

(global-set-key (kbd "M-p") 'my-indent-first-line)


Thanks to all for these splendid solutions.

Cheers,

Rodolfo



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

end of thread, other threads:[~2016-11-25 15:39 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-24 15:35 Indent first line of each paragraph of file in one hit Rodolfo Medina
2016-11-24 22:44 ` Rodolfo Medina
2016-11-25 10:48 ` Konstantin Shakhnov
2016-11-25 11:28   ` Rodolfo Medina
2016-11-25 11:52     ` Rodolfo Medina
2016-11-25 12:15       ` Konstantin Shakhnov
2016-11-25 12:20         ` Rodolfo Medina
2016-11-25 12:45           ` Konstantin Shakhnov
2016-11-25 15:39             ` [solved] " Rodolfo Medina
  -- strict thread matches above, loose matches on Subject: below --
2016-11-24 20:18 Rodolfo Medina
2016-11-25 11:34 ` Andreas Röhler

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).