Loading ...
Sorry, an error occurred while loading the content.

Using auto-format with LaTeX

Expand Messages
  • Zyad
    Hi, I m finding the auto-format option very attractive (setl fo+=a), but I m having trouble getting it to work nicely when editing LaTeX documents. More
    Message 1 of 6 , Feb 9, 2013
    • 0 Attachment
      Hi,

      I'm finding the auto-format option very attractive (setl fo+=a), but I'm having trouble getting it to work nicely when editing LaTeX documents.

      More specifically, I'd like to make it aware of LaTeX keywords so that, for example, when writing the following,

      This is a paragraph that is properly
      formatted to have a textwidth of 40.
      'auto-format' helps maintain it in a
      formatted form, even if I edit parts of
      it.
      \begin{equation}
      z^2 = x^2 + y^2
      \end{equation

      as soon as I enter '\', the cursor moves to the previous line. Is it possible to have auto-format understand that a keyword like '\begin{' should not be considered part of the paragraph before it? I'm aware of formatoptions' 'w' flag, but it is inconvenient for me since the document is usually edited by others.

      Thanks,
      Zyad

      --
      --
      You received this message from the "vim_use" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php

      ---
      You received this message because you are subscribed to the Google Groups "vim_use" group.
      To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    • Marcin Szamotulski
      ... The problem is that vim the paragraphs setting accepts only nroff macros. ATP (http://atp-vim.sf.net) defined a map gW which detects paragraphs and
      Message 2 of 6 , Feb 9, 2013
      • 0 Attachment
        On 12:19 Sat 09 Feb , Zyad wrote:
        > Hi,
        >
        > I'm finding the auto-format option very attractive (setl fo+=a), but I'm having trouble getting it to work nicely when editing LaTeX documents.
        >
        > More specifically, I'd like to make it aware of LaTeX keywords so that, for example, when writing the following,
        >
        > This is a paragraph that is properly
        > formatted to have a textwidth of 40.
        > 'auto-format' helps maintain it in a
        > formatted form, even if I edit parts of
        > it.
        > \begin{equation}
        > z^2 = x^2 + y^2
        > \end{equation
        >
        > as soon as I enter '\', the cursor moves to the previous line. Is it possible to have auto-format understand that a keyword like '\begin{' should not be considered part of the paragraph before it? I'm aware of formatoptions' 'w' flag, but it is inconvenient for me since the document is usually edited by others.
        >
        > Thanks,
        > Zyad

        The problem is that vim the 'paragraphs' setting accepts only nroff
        macros. ATP (http://atp-vim.sf.net) defined a map gW which detects
        paragraphs and formats them - it is still not what you (and me) wanted
        but it a bit better.

        Best,
        Marcin

        --
        --
        You received this message from the "vim_use" maillist.
        Do not top-post! Type your reply below the text you are replying to.
        For more information, visit http://www.vim.org/maillist.php

        ---
        You received this message because you are subscribed to the Google Groups "vim_use" group.
        To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
        For more options, visit https://groups.google.com/groups/opt_out.
      • Christian Brabandt
        Hi Marcin! ... Personally, I have never used nroff macros and I think the paragraphs and sections setttings are pretty useless, if you can t use regular
        Message 3 of 6 , Feb 13, 2013
        • 0 Attachment
          Hi Marcin!

          On So, 10 Feb 2013, Marcin Szamotulski wrote:

          > On 12:19 Sat 09 Feb , Zyad wrote:
          > > Hi,
          > >
          > > I'm finding the auto-format option very attractive (setl fo+=a), but I'm having trouble getting it to work nicely when editing LaTeX documents.
          > >
          > > More specifically, I'd like to make it aware of LaTeX keywords so that, for example, when writing the following,
          > >
          > > This is a paragraph that is properly
          > > formatted to have a textwidth of 40.
          > > 'auto-format' helps maintain it in a
          > > formatted form, even if I edit parts of
          > > it.
          > > \begin{equation}
          > > z^2 = x^2 + y^2
          > > \end{equation
          > >
          > > as soon as I enter '\', the cursor moves to the previous line. Is it possible to have auto-format understand that a keyword like '\begin{' should not be considered part of the paragraph before it? I'm aware of formatoptions' 'w' flag, but it is inconvenient for me since the document is usually edited by others.
          > >
          > > Thanks,
          > > Zyad
          >
          > The problem is that vim the 'paragraphs' setting accepts only nroff
          > macros. ATP (http://atp-vim.sf.net) defined a map gW which detects
          > paragraphs and formats them - it is still not what you (and me) wanted
          > but it a bit better.

          Personally, I have never used nroff macros and I think the 'paragraphs'
          and 'sections' setttings are pretty useless, if you can't use regular
          expressions.

          Does anything speak against having a special casing of the 'paragraphs'
          and 'sections' option to use a regular expression pattern to test
          against if it starts with a '/'?

          Attached is a toy patch.

          regards,
          Christian
          --
          Eigentlich weiß man nur, wenn man wenig weiß; mit dem Wissen
          wächst der Zweifel.
          -- Goethe, Maximen und Reflektionen, Nr. 418

          --
          --
          You received this message from the "vim_use" maillist.
          Do not top-post! Type your reply below the text you are replying to.
          For more information, visit http://www.vim.org/maillist.php

          ---
          You received this message because you are subscribed to the Google Groups "vim_use" group.
          To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
          For more options, visit https://groups.google.com/groups/opt_out.
        • Marcin Szamotulski
          Thanks (once again) for the patch! Here are a few ideas: It would be nice to end paragraph line before the match for some patterns. For example if you have
          Message 4 of 6 , Feb 13, 2013
          • 0 Attachment
            Thanks (once again) for the patch!

            Here are a few ideas:

            It would be nice to end paragraph line before the match for some
            patterns. For example if you have

            lorem ipsum lorem ipsum
            lorem ipsum lorem ipsum
            lorem ipsum lorem ipsum
            \section{New Aproach}

            adding ¶='/\\section' and using d} will delete one line to
            much. But this should be only for some patters hence this will
            require that ¶ is a list of patterns with some kind of
            modifiers, or one would have to make support for multiline patterns.
            Using something like ¶='/\n\s*\\section' is not working with the
            patch.



            With the patch and ¶='/^\zs\s*$' and the following text:

            lorem ipsum lorem ipsum
            lorem ipsum lorem ipsum


            lorem ipsum lorem ipsum
            lorem ipsum lorem ipsum


            }, and { stop on the first met empty line, i.e. } will stop on the
            top one, and { on the bottom one. But I think this is not a big
            deal, though it is inconsistent with the nroff setting. Again
            recognising multiple line patterns would help. Something like:

            let ¶='/^\_s*$'

            A solution: after matching the line against the ¶ pattern and moving
            the cursor to that line use something like:
            :call search(¶, 'bc')


            Z wyrazami szacunku :)
            Marcin

            --
            --
            You received this message from the "vim_use" maillist.
            Do not top-post! Type your reply below the text you are replying to.
            For more information, visit http://www.vim.org/maillist.php

            ---
            You received this message because you are subscribed to the Google Groups "vim_use" group.
            To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
            For more options, visit https://groups.google.com/groups/opt_out.
          • Bram Moolenaar
            ... It s an idea. Several users have asked for a more flexible way to define paragraph boundaries. I think the help needs some more work. How is the regular
            Message 5 of 6 , Feb 14, 2013
            • 0 Attachment
              Christian Brabandt wrote:

              > Hi Marcin!
              >
              > On So, 10 Feb 2013, Marcin Szamotulski wrote:
              >
              > > On 12:19 Sat 09 Feb , Zyad wrote:
              > > > Hi,
              > > >
              > > > I'm finding the auto-format option very attractive (setl fo+=a), but I'm having trouble getting it to work nicely when editing LaTeX documents.
              > > >
              > > > More specifically, I'd like to make it aware of LaTeX keywords so that, for example, when writing the following,
              > > >
              > > > This is a paragraph that is properly
              > > > formatted to have a textwidth of 40.
              > > > 'auto-format' helps maintain it in a
              > > > formatted form, even if I edit parts of
              > > > it.
              > > > \begin{equation}
              > > > z^2 = x^2 + y^2
              > > > \end{equation
              > > >
              > > > as soon as I enter '\', the cursor moves to the previous line. Is it possible to have auto-format understand that a keyword like '\begin{' should not be considered part of the paragraph before it? I'm aware of formatoptions' 'w' flag, but it is inconvenient for me since the document is usually edited by others.
              > > >
              > > > Thanks,
              > > > Zyad
              > >
              > > The problem is that vim the 'paragraphs' setting accepts only nroff
              > > macros. ATP (http://atp-vim.sf.net) defined a map gW which detects
              > > paragraphs and formats them - it is still not what you (and me) wanted
              > > but it a bit better.
              >
              > Personally, I have never used nroff macros and I think the 'paragraphs'
              > and 'sections' setttings are pretty useless, if you can't use regular
              > expressions.
              >
              > Does anything speak against having a special casing of the 'paragraphs'
              > and 'sections' option to use a regular expression pattern to test
              > against if it starts with a '/'?
              >
              > Attached is a toy patch.

              It's an idea. Several users have asked for a more flexible way to
              define paragraph boundaries.

              I think the help needs some more work. How is the regular expression
              used? What if a two-character part before it already matched?
              An example would be helpful.


              --
              A disclaimer for the disclaimer:
              "and before I get a huge amount of complaints , I have no control over the
              disclaimer at the end of this mail :-)" (Timothy Aldrich)

              /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
              /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
              \\\ an exciting new programming language -- http://www.Zimbu.org ///
              \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

              --
              --
              You received this message from the "vim_use" maillist.
              Do not top-post! Type your reply below the text you are replying to.
              For more information, visit http://www.vim.org/maillist.php

              ---
              You received this message because you are subscribed to the Google Groups "vim_use" group.
              To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
              For more options, visit https://groups.google.com/groups/opt_out.
            • Christian Brabandt
              Hi Marcin! ... Oh yes, the motion is exclusive. The old patch did not allow multi-line patterns. I attach a new, slightly different one. Try this one. ... Yes,
              Message 6 of 6 , Feb 16, 2013
              • 0 Attachment
                Hi Marcin!

                On Do, 14 Feb 2013, Marcin Szamotulski wrote:

                > Thanks (once again) for the patch!
                >
                > Here are a few ideas:
                >
                > It would be nice to end paragraph line before the match for some
                > patterns. For example if you have
                >
                > lorem ipsum lorem ipsum
                > lorem ipsum lorem ipsum
                > lorem ipsum lorem ipsum
                > \section{New Aproach}
                >
                > adding ¶='/\\section' and using d} will delete one line to
                > much. But this should be only for some patters hence this will
                > require that ¶ is a list of patterns with some kind of
                > modifiers, or one would have to make support for multiline patterns.
                > Using something like ¶='/\n\s*\\section' is not working with the
                > patch.

                Oh yes, the motion is exclusive. The old patch did not allow multi-line
                patterns. I attach a new, slightly different one. Try this one.
                >
                >
                >
                > With the patch and ¶='/^\zs\s*$' and the following text:
                >
                > lorem ipsum lorem ipsum
                > lorem ipsum lorem ipsum
                >
                >
                > lorem ipsum lorem ipsum
                > lorem ipsum lorem ipsum
                >
                >
                > }, and { stop on the first met empty line, i.e. } will stop on the
                > top one, and { on the bottom one.

                Yes, paragraph motion is a little bit more clever than I initially
                thought. Try the updated patch, but note, that the pattern /^\s*$ does
                not work as expected (see the bug report earlier today:
                https://groups.google.com/forum/?fromgroups=#!topic/vim_dev/4Qzsf9CkMkE)

                The updated patch, works as expected, at least, if you go backwards with
                the pattern /^$ but not if you go forward.

                If the patch works for you and we don't find any issues I'll start
                creating test files. BTW: for documentation updates, what would you set
                the paragraphs/section options for latex? So I can document it as
                example in the help file.

                > Z wyrazami szacunku :)

                I had to look up this one. Are you Polish?

                regards,
                Christian
                --
                Ich verwünsche die, die aus dem Irrtum eine eigene Welt machen
                und doch unablässig fordern, dass der Mensch nützlich sein müsse.
                -- Goethe, Maximen und Reflektionen, Nr. 263

                --
                --
                You received this message from the "vim_use" maillist.
                Do not top-post! Type your reply below the text you are replying to.
                For more information, visit http://www.vim.org/maillist.php

                ---
                You received this message because you are subscribed to the Google Groups "vim_use" group.
                To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
                For more options, visit https://groups.google.com/groups/opt_out.
              Your message has been successfully submitted and would be delivered to recipients shortly.