我已使用xbindkeys配置键盘快捷键来运行python脚本。
现在,在编辑任何vim文件时,如果该用户按下该键盘快捷键 -
我希望我的python脚本运行此命令将路径和行号粘贴到系统剪贴板 -
:let @+=expand("%") . ':' . line(".")
然后我希望我的脚本从系统剪贴板复制该路径并进一步处理
请你为我建议一个很好的解决方案。 在此先感谢
答案 0 :(得分:1)
您应该使用Vim的Python API,而不是外部Python脚本。见:h python
。您可以通过其功能直接访问所有信息。您可以使用vim.command()
评估vim命令以与剪贴板连接。
还有其他方法可以使用例如PyGTK,或者更直接地通过python-xlib
,但可能会更难。
答案 1 :(得分:1)
这适用于我的机器(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
示例键绑定:
nnoremap ,c :call CopyToClipboard()<CR>
有关python / vim界面的更多信息,请查看此链接:
http://vimdoc.sourceforge.net/htmldoc/if_pyth.html,当然还有:h python
。
如果您的脚本很长,我建议将所有内容放在单独的python-only文件中。
:h pyfile
在这种情况下应该有所帮助。