从python脚本运行vim命令

2024-10-02 14:28:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我用xbindkeys配置了一个键盘快捷键来运行python脚本。在

现在,当编辑任何vim文件时,如果用户按下键盘快捷键-

  • 我希望我的python脚本运行这个命令将路径和行号粘贴到系统剪贴板-

    :let @+=expand("%") . ':' . line(".")

  • 然后我希望我的脚本从系统剪贴板复制该路径并进一步处理它

你能给我一个好的解决办法吗。 提前谢谢


Tags: 文件用户命令路径脚本编辑粘贴系统
2条回答

您应该使用Vim的pythonapi,而不是外部Python脚本。请参见:h python。你可以通过它的函数直接访问所有这些信息。您可以使用vim.command()来评估vim命令,以便与剪贴板交互。在

使用PyGTK或者更直接地通过python-xlib获取剪贴板还有其他方法,但可能会更困难。在

这在我的机器(OSX)上有效:

function! CopyToClipboard()
    py << EOF
import vim, os
# evaluate a vim expression and save its value to a variable
path_line = vim.eval('expand("%") . ":" . line(".")')
# copy the string to the clipboard
os.system("echo '%s' | pbcopy" % path_line)

# do additional stuff with path_line here

EOF
endfunction

键绑定示例:

^{pr2}$

有关python/vim接口的更多信息,请查看此链接: http://vimdoc.sourceforge.net/htmldoc/if_pyth.html当然还有:h python。在

如果脚本很长,我建议将所有内容放在单独的python文件中。在

:h pyfile

在这种情况下应该有帮助。在

相关问题 更多 >