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

Re: Limiting ftplugins to relevant buffers

Expand Messages
  • neilhwatson@...
    I tried this: au BufRead,BufNewFile *.cf setlocal ft=cf3 The maps from the cf plugin still worked if my buffer was *.html. -- You received this message from
    Message 1 of 13 , Jan 21, 2013
    • 0 Attachment
      I tried this:
      au BufRead,BufNewFile *.cf setlocal ft=cf3

      The maps from the cf plugin still worked if my buffer was *.html.

      --
      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
    • Ben Fritz
      ... You need to set up buffer-local mappings if you don t want them to be defined globally to all of Vim. ... If you want to be extra careful you can undo them
      Message 2 of 13 , Jan 21, 2013
      • 0 Attachment
        On Monday, January 21, 2013 3:24:33 PM UTC-6, neilh...@... wrote:
        > I tried this:
        > au BufRead,BufNewFile *.cf setlocal ft=cf3
        >
        > The maps from the cf plugin still worked if my buffer was *.html.

        You need to set up buffer-local mappings if you don't want them to be defined globally to all of Vim.

        :help :map-local

        If you want to be extra careful you can undo them in the b:undo_ftplugin variable but if you're loading a new buffer this should not be necessary for your purposes. :he undo_ftplugin.

        --
        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
      • neilhwatson@...
        Success with maps. Thank you. nmap limits the map to that file type. I tried the same with abbreviations using iab . This works too well.
        Message 3 of 13 , Jan 22, 2013
        • 0 Attachment
          Success with maps. Thank you. nmap <buffer> limits the map to that file type. I tried the same with abbreviations using iab <buffer>. This works too well. If I open another buffer of the same file type, the maps work but the abbreviations do not. What did I do wrong?

          --
          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
        • Ben Fritz
          ... Where did you define the abbreviations? How did you edit the new buffer (specific command sequence)? -- You received this message from the vim_use
          Message 4 of 13 , Jan 22, 2013
          • 0 Attachment
            On Tuesday, January 22, 2013 8:40:25 AM UTC-6, neilh...@... wrote:
            > Success with maps. Thank you. nmap <buffer> limits the map to that file type. I tried the same with abbreviations using iab <buffer>. This works too well. If I open another buffer of the same file type, the maps work but the abbreviations do not. What did I do wrong?

            Where did you define the abbreviations? How did you edit the new buffer (specific command sequence)?

            --
            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
          • neilhwatson@...
            ... (specific command sequence)? The abbreviations are on the ftplugin. New buffer: :e newfile.cf The plugin is here:
            Message 5 of 13 , Jan 22, 2013
            • 0 Attachment
              On Tuesday, 22 January 2013 15:30:23 UTC-5, Ben Fritz wrote:
              > Where did you define the abbreviations? How did you edit the new buffer
              (specific command sequence)?

              The abbreviations are on the ftplugin. New buffer: :e newfile.cf

              The plugin is here:
              https://github.com/neilhwatson/vim_cf3/blob/dev/ftplugin/cf3.vim

              --
              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
            • Charles Campbell
              ... In your code: once you have g:DisableCF3Ftplugin existing, the ftplugin won t be loaded again. Buffers are not filetypes; so you need to allow reloading
              Message 6 of 13 , Jan 22, 2013
              • 0 Attachment
                neilhwatson@... wrote:
                > On Tuesday, 22 January 2013 15:30:23 UTC-5, Ben Fritz wrote:
                >> Where did you define the abbreviations? How did you edit the new buffer
                > (specific command sequence)?
                >
                > The abbreviations are on the ftplugin. New buffer: :e newfile.cf
                >
                > The plugin is here:
                > https://github.com/neilhwatson/vim_cf3/blob/dev/ftplugin/cf3.vim
                >
                In your code: once you have

                g:DisableCF3Ftplugin

                existing, the ftplugin won't be loaded again. Buffers are not filetypes; so you need to allow reloading of the ftplugin each time a buffer of the appropriate filetype is edited.

                Regards,
                C Campbell

                --
                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
              • neilhwatson@...
                I have this: if exists( g:DisableCF3Ftplugin ) finish endif But I do not have let g:DisableCF3Ftplugin=1 or anything similar in .vimrc or elsewhere. How can
                Message 7 of 13 , Jan 22, 2013
                • 0 Attachment
                  I have this:

                  if exists("g:DisableCF3Ftplugin")
                  finish
                  endif

                  But I do not have 'let g:DisableCF3Ftplugin=1' or anything similar in .vimrc or elsewhere. How can this affect it? If this is the cause I would expect the maps to not work, but they do. Only abbreviations do not work in a new buffer.

                  --
                  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
                • Ben Fritz
                  ... I saw that too, but the plugin file never sets g:DisableCF3Ftplugin, it looks like it is simply a way to disable the ftplugin from taking effect if the
                  Message 8 of 13 , Jan 22, 2013
                  • 0 Attachment
                    On Tuesday, January 22, 2013 3:25:06 PM UTC-6, Charles Campbell wrote:
                    > neilhwatson@... wrote:
                    >
                    > > On Tuesday, 22 January 2013 15:30:23 UTC-5, Ben Fritz wrote:
                    >
                    > >> Where did you define the abbreviations? How did you edit the new buffer
                    >
                    > > (specific command sequence)?
                    >
                    > >
                    >
                    > > The abbreviations are on the ftplugin. New buffer: :e newfile.cf
                    >
                    > >
                    >
                    > > The plugin is here:
                    >
                    > > https://github.com/neilhwatson/vim_cf3/blob/dev/ftplugin/cf3.vim
                    >
                    > >
                    >
                    > In your code: once you have
                    >
                    >
                    >
                    > g:DisableCF3Ftplugin
                    >
                    >
                    >
                    > existing, the ftplugin won't be loaded again. Buffers are not filetypes; so you need to allow reloading of the ftplugin each time a buffer of the appropriate filetype is edited.
                    >

                    I saw that too, but the plugin file never sets g:DisableCF3Ftplugin, it looks like it is simply a way to disable the ftplugin from taking effect if the user has it installed but doesn't want it to load for some reason, on any buffer.

                    I think the problem is actually here:

                    if !exists('g:DisableCFE3KeywordAbbreviations')
                    let g:DisableCFE3KeywordAbbreviations=1
                    call EnableCFE3KeywordAbbreviations()
                    endif

                    That should be a buffer-local variable, not a global variable, otherwise the abbreviations will only load on the first buffer.

                    --
                    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
                  • Ben Fritz
                    ... Or if it s supposed to be a global disable, don t set it to true inside the plugin file; it would still be ok to check its existence. -- You received this
                    Message 9 of 13 , Jan 22, 2013
                    • 0 Attachment
                      On Tuesday, January 22, 2013 3:41:27 PM UTC-6, Ben Fritz wrote:
                      >
                      > I think the problem is actually here:
                      >
                      > if !exists('g:DisableCFE3KeywordAbbreviations')
                      > let g:DisableCFE3KeywordAbbreviations=1
                      > call EnableCFE3KeywordAbbreviations()
                      > endif
                      >
                      > That should be a buffer-local variable, not a global variable, otherwise the abbreviations will only load on the first buffer.

                      Or if it's supposed to be a global disable, don't set it to true inside the plugin file; it would still be ok to check its existence.

                      --
                      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
                    • Tony Mechelynck
                      ... One possible way to do it to test for both already-loaded and user-disabled would be (near the start of the ftplugin) if exists
                      Message 10 of 13 , Jan 22, 2013
                      • 0 Attachment
                        On 22/01/13 22:48, Ben Fritz wrote:
                        > On Tuesday, January 22, 2013 3:41:27 PM UTC-6, Ben Fritz wrote:
                        >>
                        >> I think the problem is actually here:
                        >>
                        >> if !exists('g:DisableCFE3KeywordAbbreviations')
                        >> let g:DisableCFE3KeywordAbbreviations=1
                        >> call EnableCFE3KeywordAbbreviations()
                        >> endif
                        >>
                        >> That should be a buffer-local variable, not a global variable, otherwise the abbreviations will only load on the first buffer.
                        >
                        > Or if it's supposed to be a global disable, don't set it to true inside the plugin file; it would still be ok to check its existence.
                        >
                        One possible way to do it to test for both already-loaded and
                        user-disabled would be (near the start of the ftplugin)

                        if exists ('g:DisableCFE3KeywordAbbreviations') ||
                        exists('b:DisableCFE3KeywordAbbreviations')
                        finish
                        endif
                        let b:DisableCFE3KeywordAbbreviations = 1


                        Best regards,
                        Tony.
                        --
                        Children seldom misquote you. In fact, they usually repeat word for
                        word what you shouldn't have said.

                        --
                        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
                      • neilhwatson@...
                        Thanks for the help everyone. I think I have it sorted out. -- You received this message from the vim_use maillist. Do not top-post! Type your reply below
                        Message 11 of 13 , Jan 23, 2013
                        • 0 Attachment
                          Thanks for the help everyone. I think I have it sorted out.

                          --
                          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
                        Your message has been successfully submitted and would be delivered to recipients shortly.