1. 程式人生 > 其它 >ExecCode:用於python程式碼快速執行的sublime外掛

ExecCode:用於python程式碼快速執行的sublime外掛

技術標籤:自娛自樂的小外掛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,檢視控制檯輸出效果:
在這裡插入圖片描述
在這裡插入圖片描述
棒。
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
太棒了。