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;
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
add a comment |
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
add a comment |
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
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
vimscript-python escape string-manipulation
asked 10 hours ago
ColinKennedyColinKennedy
465 bronze badges
465 bronze badges
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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')
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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')
add a comment |
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')
add a comment |
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')
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')
answered 8 hours ago
MassMass
6,6671 gold badge4 silver badges21 bronze badges
6,6671 gold badge4 silver badges21 bronze badges
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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