亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Vim 中執行 python 腳本行

在 Vim 中執行 python 腳本行

慕妹3146593 2024-01-24 20:55:48
我剛剛開始使用 Vim 作為我的主要 IDE,在之前的 IDE 中我經常使用的功能之一是“在 python 中執行選擇”。我了解到在 python 中執行代碼有兩種方法,一種是, :python3 {expression}另一種是:w python3我想要做的是在 vim 中執行腳本的選定行,而不刷新(關閉)python 控制臺??雌饋?python3 {expression}沒有關閉python控制臺,所以在我使用之后:python3 a=3,命令:python3 print(a)返回了正確的值3。但是,我認為這個功能沒有“選擇功能”。雖然:help python顯示了[range]參數,但我不明白如何使用它。另一方面,第二個函數具有選擇功能(例如:1,3w !python3),但每次我使用該函數時,python 控制臺似乎都會刷新(=關閉)。我想向 .vimrc 添加簡單的函數就可以達到我的目的,但找不到。任何幫助將非常感激!
查看完整描述

2 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

找到答案了!


我通過制作簡單的自定義命令解決了這個問題。


python3 << EOL

import vim


def ExecuteSelectedLine(l1, l2):

    for i in range(l1-1,l2):

        print(">>" + vim.current.buffer[i])

        exec(vim.current.buffer[i],globals())

EOL

command! -range Eval <line1>,<line2> python3 ExecuteSelectedLine(<line1>, <line2>)

如何使用

  • 在 python 中僅運行腳本的第一行到第三行:1,3Eval

  • 運行python中的當前行:Eval

  • 在 python 中運行可視化選擇的腳本部分:'<,'>Eval

范圍選擇與 -range 選項一起使用,并使用 python 的“exec”函數和 globals() 選項,持久性保持不變(無需刷新)。

我想我的編碼風格,在控制臺中嘗試不同的代碼片段并最終確定主腳本,是一種奇怪的編碼方式,因為我在社區中找不到類似的嘗試。


查看完整回答
反對 回復 2024-01-24
?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

我不明白這個問題。命令

:1,3w !python3

應該可以解決這個問題,你說的“每次我使用該函數時 python 控制臺都會刷新”到底是什么意思?如果你的意思是,它等待按下回車鍵才能返回 vim,這是很自然的。

您還可以使用:

:'<,'>w !python3

以前使用可視化模式來選擇某些代碼塊。您想在新的終端窗口中執行代碼嗎?


查看完整回答
反對 回復 2024-01-24
  • 2 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號