Sublime 從本地上傳文件或是目錄到服務(wù)器

人生苦短,我用Python灭贷。

問題描述:
最近在使用ST3進(jìn)行代碼編寫斥季,之前用的是Atom或是vscode卫枝,并沒有一個十分中意的代碼編輯器讹挎,主要還是看使用的心情吧,有的時候使用不同的編輯器马篮。由于部分的代碼是在本地機(jī)器(Macbook pro)上編寫測試怜奖,等到測試成功或是可以使用的時候直接上傳到服務(wù)器(n多核+高性能GPU+ubutun)上面,讓服務(wù)器去跑實(shí)驗(yàn)迁央,這個時候就需要使用ssh將本地的代碼文件或是目錄上傳到server上面滥崩。但是每次都用scp去上傳總是有點(diǎn)麻煩夭委,所以這里就直接編寫了一個ST3的插件募强,讓插件自動完成代碼的上傳擎值。(這是受啟發(fā)于pycharm pro的功能)

前置條件:

  1. ssh已經(jīng)將你的公鑰上傳到server中逐抑,所以能夠?qū)崿F(xiàn)免密登錄。并且在terminal中scp的時候也可以不用輸密碼进每;
  2. 熟悉python編碼命斧;
  3. 本地代碼庫有專門的地址
  4. server上面有也專門的代碼庫国葬,一般是存放在你的個人用戶目錄下

預(yù)期結(jié)果:

  1. 打開文件編輯之后,通過鼠標(biāo)右鍵或是快捷鍵就能將剛才編輯的文件上傳到服務(wù)器上接奈。
  2. 通過再ST3的左邊的打開的目錄列表上通過鼠標(biāo)右鍵的菜單能夠?qū)⑦x中的目錄下的所有文件上傳到服務(wù)器上通孽。
  3. 可以設(shè)置多個服務(wù)器,當(dāng)服務(wù)器只有一個的時候默認(rèn)上傳到這個服務(wù)器上互捌;當(dāng)有多個服務(wù)器的時候糠惫,在使用菜單或是快捷鍵的時候會出現(xiàn)選擇服務(wù)器的界面硼讽,能夠?qū)⑽募蟼鞯街付ǖ姆?wù)器上固阁。

下一步實(shí)現(xiàn):

  1. 能夠在ST3的terminal中顯示scp的傳輸過程(python調(diào)用shell命令scp的時候不顯示過程)
  2. 將服務(wù)器的配置寫在配置文件中而不是硬編碼
  3. 將用戶名和密碼放在配置文件中

插件結(jié)果截圖:


傳輸單文件到server上面
將文件和文件夾傳遞到服務(wù)器

怎樣編寫插件

ST3的插件使用的語言主要是Python备燃,在ST3的安裝目錄中我們可以發(fā)現(xiàn)兩個python文件sublime.pysublime_plugin.py這兩個不同的插件并齐。這兩個module就是ST3在生成新插件的時候默認(rèn)導(dǎo)入的兩個模塊,里面包含了不同的class撕贞。通過繼承不同的class來完成插件的編寫测垛。

定義好了插件之后,還可以添加頂部菜單号涯,右鍵菜單以及編輯器左邊的sidebar的右鍵菜單锯七。同時還能夠定義不同的快捷鍵來調(diào)用相應(yīng)的功能。由于文件和文件夾通過scp使用的是不同的命令久又,所以這里需要定義兩個不同的插件效五。

首先畏妖,我們通過ST3的[tools]->[Developers]->[New Plugin] 來自動的建立一個插件,可以看出自動建立的插件是一個python的類半夷,并且這個類繼承的TextCommand類迅细,插件的主要功能代碼就是寫在run函數(shù)里面。將你需要實(shí)現(xiàn)的功能寫在這個run函數(shù)里面湘换。主要就是解析path统阿,然后構(gòu)造server上面的代碼的path。再添加到一個右鍵快捷菜單中帆离。

文件夾下的所有文件

此時并不能得到的一個特定的文件路徑结澄,如果需要將某個文件下的所有文件全部上傳到server上的話岸夯,那么scp中需要帶有一個-r的命令表示遞歸猜扮。需要找到文件夾的路徑破镰,我們在左側(cè)的project樹狀結(jié)構(gòu)中可以使用右鍵菜單压储,但是我們可以看到,系統(tǒng)自帶的只有[new file][rename][new folder][delete folder][find in folder]這幾種菜單孕似,通過查看API(非官方的API)可以看到通過定義一個Side Bar.sublime-menu 文件就能將菜單和功能相互連接起來了刮刑。

快捷鍵和郵件菜單

通過上圖我們可以看出sublime-keymap是快捷鍵的配置雷绢,sublime-menu是右鍵菜單的配置,Context指的是在文件編輯狀態(tài)下的右鍵菜單蔽氨,而Side Bar則是左邊的樹狀結(jié)構(gòu)中的右鍵菜單設(shè)置帆疟。

最后,通過編碼和連接菜單就能完成預(yù)期得功能自赔,接下來就是利用這個插件代替你打開命令行手敲scp命令了柳琢。happy coding

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末染厅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌尔苦,老刑警劉巖行施,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛾号,死亡現(xiàn)場離奇詭異鲜结,居然都是意外死亡活逆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門怒允,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纫事,“玉大人所灸,你說我怎么就攤上這事〖鼗#” “怎么了懦尝?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長琅轧。 經(jīng)常有香客問我踊挠,道長,這世上最難降的妖魔是什么睹酌? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任剩檀,我火速辦了婚禮,結(jié)果婚禮上辐啄,老公的妹妹穿的比我還像新娘。我一直安慰自己壶辜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布抵怎。 她就那樣靜靜地躺著反惕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪承璃。 梳的紋絲不亂的頭發(fā)上盔粹,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天程癌,我揣著相機(jī)與錄音,去河邊找鬼嵌莉。 笑死锐峭,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沿癞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼惫搏,長吁一口氣:“原來是場噩夢啊……” “哼筐赔!你這毒婦竟也來了揖铜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鳞绕,沒想到半個月后尸曼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體萄焦,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年茬射,在試婚紗的時候發(fā)現(xiàn)自己被綠了在抛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片萧恕。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡票唆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出走趋,到底是詐尸還是另有隱情,我是刑警寧澤簿煌,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布姨伟,位于F島的核電站,受9級特大地震影響授滓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜在孝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一私沮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仔燕,春花似錦造垛、人聲如沸五辽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽罪郊。三九已至尚洽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間癣疟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工争舞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留竞川,地道東北人叁熔。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像遭贸,于是被迫代替她去往敵國和親心软。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容