我已經使用xbindkeys配置了一個鍵盤快捷鍵來運行python腳本。從python腳本運行vim命令
現在,在編輯任VIM文件,如果用戶按下該鍵盤shortcut-
我希望我的python腳本來運行這個命令來粘貼路徑和線路沒有到系統clipboard-
:let @+=expand("%") . ':' . line(".")
然後我想我的腳本這條道路從系統剪貼板複製和進一步處理它
你能爲我提出一個好的解決方案嗎? 在此先感謝
我已經使用xbindkeys配置了一個鍵盤快捷鍵來運行python腳本。從python腳本運行vim命令
現在,在編輯任VIM文件,如果用戶按下該鍵盤shortcut-
我希望我的python腳本來運行這個命令來粘貼路徑和線路沒有到系統clipboard-
:let @+=expand("%") . ':' . line(".")
然後我想我的腳本這條道路從系統剪貼板複製和進一步處理它
你能爲我提出一個好的解決方案嗎? 在此先感謝
此作品在我的機器(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>
看一看這個鏈接獲取更多信息蟒蛇/ VIM接口: http://vimdoc.sourceforge.net/htmldoc/if_pyth.html和,當然,:h python
。
如果你的腳本很長,我會建議把所有東西放在單獨的python-only文件中。
:h pyfile
在這種情況下應該有所幫助。
我可以使用鍵盤快捷鍵來調用這個腳本,比如使用ctrl + shift + e或者我只能從vim調用它。 你把這個文件放在哪裏以及你用什麼擴展名.py? –
您可以使用vim中的鍵綁定來調用它。您可以將函數(和鍵綁定)放在.vimrc中。如果你把它放在一個文件擴展名爲「.vim」的文件中,你只需確保vim在啓動時讀取(源)文件。參見':h source'。正如我所說的,你可以把Python代碼放在一個'.py'文件中,並用'pyfile'加載它。 – qzr
您應該使用Vim的Python API,而不是外部Python腳本。見:h python
。您可以通過其功能直接訪問所有信息。您可以使用vim.command()
評估vim命令以與剪貼板交互。
還有其他方法可以使用例如PyGTK,或者更直接地通過python-xlib
,但可能會更困難。
如果你想複製到系統剪貼板,那麼你可以使用這個命令'os.system(「echo'hello world'| pbcopy」)' –
@kylek感謝您回覆,關於第一部分的任何想法,對我很重要。 –
@ kylek我在Linux上,這對我有用[鏈接](http://www.answermysearches.com/python-how-to-copy-and-paste-to-the-clipboard-in-linux/286/ ) –