Установка переменной vim на вывод python - PullRequest
1 голос
/ 20 июня 2020

Как мне сделать что-то вроде следующего в vim:

echom "hello"
pyx print('New item')
let a = (pyx import socket; socket.gethostname())
echom a

Первая и вторая строки работают; но как присвоить имя переменной значению / выходу python?

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Я экспериментировал с несколькими подходами

  • Я предпочитаю :let vimvar = pyxeval('PythonExpression') из кода vim, когда это возможно
  • Иногда vim.command('let vimvar = ...') имеет больше смысла, в в частности от Python код.
1 голос
/ 20 июня 2020

Импортировать модуль vim и выполнить команду vim let передача значения из Python:

:py3 import socket, vim; hn=socket.gethostname(); vim.command('let vim_hn="'+hn+ '"')

hn=… назначает переменную в Python; 'let vim_hn="'+hn+ '"' передает свое значение команде let; что-то вроде let vim_hn="myhost"; vim.command() выполняет это let из Python.

Теперь вы можете проверить значение в vim:

:echo vim_hn
...