How to assign a Python list to a vim variable and escape its strings correctlyHow can I get python library help in vim?Vim python backend, how to import user installed shared libraries?Vim 8.0 python support: where to store a per-buffer python variable?How to escape pipe character in `:make`, `:grep` and friendsHow to run a python command based on a matched group of a pattern?How vim invokes and executes python interpreterSome function keys switch cases of letters under and after the cursorHow do I split a vim Window using python?fnameescape() : add other characters to be escaped (parenthesis, commas etc)Vim using wrong executable and site packages in Python venv

What does 2>&1 | tee mean?

What are good ways to spray paint a QR code on a footpath?

How fast can a ship with rotating habitats be accelerated?

“Faire” being used to mean “avoir l’air”?

Signing using digital signatures?

Is there a short way to check uniqueness of values without using 'if' and multiple 'and's?

MH370 blackbox - is it still possible to retrieve data from it?

Alphabet completion rate

Zombie diet, why humans?

Should I hide continue button until tasks are completed?

What's the point of DHS warning passengers about Manila airport?

When to apply Lorentz transformations and laws of time dilations and length contractions: explanations

Math PhD in US vs Master + PhD in Europe

Set vertical spacing between two particular items

Quacks of Quedlingburg Crow Skull Set 2 Keep Drawing

How was film developed in the late 1920s?

Does the UK have a written constitution?

How hard is it to sell a home which is currently mortgaged?

Why Is Abelian Gauge Theory So Special?

Are there any vegetarian astronauts?

Does ultrasonic bath cleaning damage laboratory volumetric glassware calibration?

Coefficients of the characteristic polynomial

Three column layout

Bash echo $-1 prints hb1. Why?



How to assign a Python list to a vim variable and escape its strings correctly


How can I get python library help in vim?Vim python backend, how to import user installed shared libraries?Vim 8.0 python support: where to store a per-buffer python variable?How to escape pipe character in `:make`, `:grep` and friendsHow to run a python command based on a matched group of a pattern?How vim invokes and executes python interpreterSome function keys switch cases of letters under and after the cursorHow do I split a vim Window using python?fnameescape() : add other characters to be escaped (parenthesis, commas etc)Vim using wrong executable and site packages in Python venv






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















Here is a Python list that I'm trying to assign to some Vim variable.



lines = ['"""Something foo's thing."""', '', 'foo = "asdfasdf" \', 'bar']
command = 'let l:corrected_lines = lines'.format(lines=lines)
vim.eval(command)


And then in a caller function, I use l:corrected_lines to do some extra work.



The problem is that there are 2 issues with the string above



  • The single quote foo's apparently needs to be escaped

  • The also needs to be escaped

Apparently Vim escapes single-quotes by placing two of them side-by-side, like this ''. So I've experimented with running replace("\'", "''") and other combinations of methods. Also Vim changes the in the source-code to \ so I've tried adding replace('\\', '\') and that works. The problem is that these replacements work in isolation but don't work together.



I feel like there's probably a simpler way to escape this line but I haven't had success with Python or using Vim's :escape() command. Can someone please suggest a solution?



Note: Just to make lines make a bit more sense visually, this is how lines looks like printed out



"""Something foo's thing."""

foo = "asdfasdf"
bar









share|improve this question




























    1















    Here is a Python list that I'm trying to assign to some Vim variable.



    lines = ['"""Something foo's thing."""', '', 'foo = "asdfasdf" \', 'bar']
    command = 'let l:corrected_lines = lines'.format(lines=lines)
    vim.eval(command)


    And then in a caller function, I use l:corrected_lines to do some extra work.



    The problem is that there are 2 issues with the string above



    • The single quote foo's apparently needs to be escaped

    • The also needs to be escaped

    Apparently Vim escapes single-quotes by placing two of them side-by-side, like this ''. So I've experimented with running replace("\'", "''") and other combinations of methods. Also Vim changes the in the source-code to \ so I've tried adding replace('\\', '\') and that works. The problem is that these replacements work in isolation but don't work together.



    I feel like there's probably a simpler way to escape this line but I haven't had success with Python or using Vim's :escape() command. Can someone please suggest a solution?



    Note: Just to make lines make a bit more sense visually, this is how lines looks like printed out



    """Something foo's thing."""

    foo = "asdfasdf"
    bar









    share|improve this question
























      1












      1








      1








      Here is a Python list that I'm trying to assign to some Vim variable.



      lines = ['"""Something foo's thing."""', '', 'foo = "asdfasdf" \', 'bar']
      command = 'let l:corrected_lines = lines'.format(lines=lines)
      vim.eval(command)


      And then in a caller function, I use l:corrected_lines to do some extra work.



      The problem is that there are 2 issues with the string above



      • The single quote foo's apparently needs to be escaped

      • The also needs to be escaped

      Apparently Vim escapes single-quotes by placing two of them side-by-side, like this ''. So I've experimented with running replace("\'", "''") and other combinations of methods. Also Vim changes the in the source-code to \ so I've tried adding replace('\\', '\') and that works. The problem is that these replacements work in isolation but don't work together.



      I feel like there's probably a simpler way to escape this line but I haven't had success with Python or using Vim's :escape() command. Can someone please suggest a solution?



      Note: Just to make lines make a bit more sense visually, this is how lines looks like printed out



      """Something foo's thing."""

      foo = "asdfasdf"
      bar









      share|improve this question














      Here is a Python list that I'm trying to assign to some Vim variable.



      lines = ['"""Something foo's thing."""', '', 'foo = "asdfasdf" \', 'bar']
      command = 'let l:corrected_lines = lines'.format(lines=lines)
      vim.eval(command)


      And then in a caller function, I use l:corrected_lines to do some extra work.



      The problem is that there are 2 issues with the string above



      • The single quote foo's apparently needs to be escaped

      • The also needs to be escaped

      Apparently Vim escapes single-quotes by placing two of them side-by-side, like this ''. So I've experimented with running replace("\'", "''") and other combinations of methods. Also Vim changes the in the source-code to \ so I've tried adding replace('\\', '\') and that works. The problem is that these replacements work in isolation but don't work together.



      I feel like there's probably a simpler way to escape this line but I haven't had success with Python or using Vim's :escape() command. Can someone please suggest a solution?



      Note: Just to make lines make a bit more sense visually, this is how lines looks like printed out



      """Something foo's thing."""

      foo = "asdfasdf"
      bar






      vimscript-python escape string-manipulation






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 10 hours ago









      ColinKennedyColinKennedy

      465 bronze badges




      465 bronze badges




















          1 Answer
          1






          active

          oldest

          votes


















          2














          Use pyeval(), py3eval(), or pyxeval() to read python variables into vim:



          python:



          x = [1,2,3]
          vim.command('let X = pyeval("x")')


          vim:



          py x = [1,2,3]
          let X = pyeval('x')





          share|improve this answer

























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "599"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fvi.stackexchange.com%2fquestions%2f20403%2fhow-to-assign-a-python-list-to-a-vim-variable-and-escape-its-strings-correctly%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2














            Use pyeval(), py3eval(), or pyxeval() to read python variables into vim:



            python:



            x = [1,2,3]
            vim.command('let X = pyeval("x")')


            vim:



            py x = [1,2,3]
            let X = pyeval('x')





            share|improve this answer



























              2














              Use pyeval(), py3eval(), or pyxeval() to read python variables into vim:



              python:



              x = [1,2,3]
              vim.command('let X = pyeval("x")')


              vim:



              py x = [1,2,3]
              let X = pyeval('x')





              share|improve this answer

























                2












                2








                2







                Use pyeval(), py3eval(), or pyxeval() to read python variables into vim:



                python:



                x = [1,2,3]
                vim.command('let X = pyeval("x")')


                vim:



                py x = [1,2,3]
                let X = pyeval('x')





                share|improve this answer













                Use pyeval(), py3eval(), or pyxeval() to read python variables into vim:



                python:



                x = [1,2,3]
                vim.command('let X = pyeval("x")')


                vim:



                py x = [1,2,3]
                let X = pyeval('x')






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 8 hours ago









                MassMass

                6,6671 gold badge4 silver badges21 bronze badges




                6,6671 gold badge4 silver badges21 bronze badges



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Vi and Vim Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fvi.stackexchange.com%2fquestions%2f20403%2fhow-to-assign-a-python-list-to-a-vim-variable-and-escape-its-strings-correctly%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

                    Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

                    Ласкавець круглолистий Зміст Опис | Поширення | Галерея | Примітки | Посилання | Навігаційне меню58171138361-22960890446Bupleurum rotundifoliumEuro+Med PlantbasePlants of the World Online — Kew ScienceGermplasm Resources Information Network (GRIN)Ласкавецькн. VI : Літери Ком — Левиправивши або дописавши її