ExecCode:用於python程式碼快速執行的sublime外掛
阿新 • • 發佈:2020-12-14
技術標籤:自娛自樂的小外掛sublime textpython
ExecCode:用於python程式碼快速執行的sublime外掛
前言
在寫verilog程式碼的時候,碰上需要從0編號到100這種,會新建一個python程式碼,寫個迴圈用sublime執行輸出一下。但是有時候又覺得新建一個臨時檔案很煩,還要刪掉。想起來python中還有exce()這個函式,通過編寫一個外掛,應該是可以直接執行程式碼片段的,無論這些程式碼是否儲存在一個檔案當中。
程式碼
外掛程式碼:
import os, sublime, sublime_plugin, re
class ExecCodeCommand (sublime_plugin.TextCommand):
def run(self, edit):
view = self.view
lines = view.lines(view.sel()[0])
code_path = os.path.dirname(os.path.abspath(__file__))
def _repl(match):
return match.group()+code_path+r'\\temp_files\\'
size = len(lines)
if size > 0:
codes = view.substr(sublime.Region(lines[0].a, lines[size-1].b))
rule = re.compile(r'\bopen *\( *(\'|\")')
recode = re.sub(rule,_repl,codes)
# print(recode)
exec(recode)
設定快捷鍵:
[
{ "keys": ["ctrl+m" ], "command": "exec_code" }
]
該外掛的功能簡單來說就是,copy選中的程式碼行,呼叫exec()函式直接執行這些程式碼行。
不過在寫的時候產生了一個新的疑問,就是呼叫open()函式的時候,檔案的路徑又是在哪裡?經過實驗發現,如果不呼叫程式碼中的re.sub函式,檔案路徑就是sublime程式路徑。
為了避免臨時檔案充斥整個安裝路徑,就對臨時檔案路徑做了一個處理,使之儲存在該外掛下名為temp_files的資料夾中。
效果
該外掛需要結合sublime控制檯使用,不然看不到print()的東西。
選中程式碼片段,按下快捷鍵ctrl+m,檢視控制檯輸出效果:
棒。
太棒了。