On 07. 06. 2011 15:30, Tony Mechelynck wrote: > On 07/06/11 15:17, Marko Mahnič wrote: >> On 07. 06. 2011 15:13, Tony Mechelynck wrote: >>> On 07/06/11 14:56, Tony Mechelynck wrote: >>>> On 07/06/11 13:55, Marko Mahnič wrote: >>>>> On 07. 06. 2011 13:39, Tony Mechelynck wrote: >>>>>> On 07/06/11 09:31, Marko Mahnič wrote: >>>>>>> On Jun 7, 9:26 am, Marko Mahnič<[email protected]> wrote: >>>>>>>> On Jun 7, 8:36 am, Ivan Krasilnikov<[email protected]> wrote: >>>>>>>> >>>>>>>> function s:MyCallback(param) >>>>>>>> " process >>>>>>>> endfunc >>>>>>>> python DoSomething(s:SNR . 'MyCallback', ...) >>>>>>> >>>>>>> This should probably be: >>>>>>> exec "python DoSomething(\"" . s:SNR . "MyCallback\", ...)" >>>>>>> >>>>>>> Marko >>>>>>> >>>>>> >>>>>> This last one cannot be right: as a minimum, it lacks a backslash left >>>>>> of "MyCallback". >>>>>> >>>>> >>>>> If you keep the quotes and backsalshes, but change the rest you can >>>>> write ( >>>>> s:SNR -> getcwd(), MyCallback -> /. ) : >>>>> >>>>> :python import os >>>>> :exec "python print os.path.exists(\"" . getcwd() . "/.\")" >>>>> >>>>> which works for me (Vim 7.3). If getcwd() returns "/home/user", the >>>>> generated >>>>> Python statement is: >>>>> >>>>> print os.path.exists("/home/user/.") >>>>> >>>>> In the above case you would get the Python statement: >>>>> >>>>> DoSomething("32_MyCallback", ...) >>>> >>>> no, you would get: >>>> E???: invalid expression >>>> because >>>> >>> exec "python DoSomething(\"" . s:SNR . "MyCallback\", ...)" >>>> string ^---------------------------------^ >>>> something Vim cannot understand ^--------... >>> >>> P.S. I think you should have written >>> >>> :exec 'python DoSomething("' . s:SNR . 'MyCallback", ...)' >>> >> >> This is equivalent to the above. Note that Vim treats "" and '' strings >> differently: single-quote strings are accepted as they are written while >> double-quote strings undergo some fancy parsing and escaping. The following >> strings are equivalent: >> "\"" >> '"' > > you forgot to backslash-escape the opening quote of "MyCallback". Third > edition. Are you blind or what? Or do you need some coffee?
Not blind. No need for coffee. Thanks :) Let me describe it again: exec "python DoSomething(\"" . s:SNR . "MyCallback\", ...)" "python ... the opening quote for a Vim string DoSomething(\" ... the opening quote for a Python string " ... the closing quote for the Vim string . s:SNR . ... concatenation "Mycallback ... the opening quote for the 2nd Vim string \" ... the closing quote for the Python string , ...)" ... the closing quote for the 2nd Vim string It's all there. Marko -- 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
