于 2014年06月14日 07:18, BaRud 写道:
On Saturday, June 14, 2014 5:51:05 AM UTC+1, LCD 47 wrote:
On 13 June 2014, BaRud <[email protected]> wrote:

Hi,
I am trying to write a vimscript that uses python, but cant interface
it properly.
A minimal example is:
function! Usrnm(nm)
python << endpython
import vim
import os
nm=vim.eval(os.getlogin())
endpython
echo nm
endfunction
call IMAP ('`foo', "@nm \<CR> Usrnm(nm)", "fortran")
Can anyone please help me achiving this? i.e. getting the login name
to be used in the IMAP call?


     You got it backwards, vim.eval() is for passing Vim values to

Python, not the other way around.  You probably want vim.command()

instead:





function! Usrnm()

     if has('python')

         python <<EOT

import vim

import getpass

vim.command("let nm = '%s'" % getpass.getuser())

EOT

         echo nm

     else

         echo 'no python, no cry'

     endif

endfunction





     For returning dictionaries, lists, or funcrefs, there is also

vim.bindeval(), thanks to ZyX. :) See the manual for details.



     /lcd
Thanks, but how can I call that value in the IMAP call? please.

try this:
========================code =========================================
py import os

call IMAP ('`foo', "@nm \<CR> " . pyeval("os.environ['USER']")  , "fortran")
========================code =========================================


--
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to