Sublime鍋氫簡涓€涓彉閲忓悕缈昏瘧鎻掍欢銆傜洰鏍囨槸鐢ㄤ腑鏂囧啓涓€涓彉閲忓悕銆傞紶鏍囦笂绉伙紝璋冪敤鍛戒护灏嗕腑鏂囧崟璇嶇炕璇戞垚鍙橀噺鍚嶃€傞渶瑕侀€夋嫨鏄ぇ椹煎嘲銆佸皬椹煎嘲杩樻槸涓嬪垝绾裤€俆ools>Developer>NewPlugin...importsublimeimportsublime_pluginclassExampleCommand(sublime_plugin.TextCommand):defrun(self,edit):self.view.insert(edit,0,"Hello,World!")绗竴涓兂娉曟槸寰楀埌mousefirst鎵€鍦ㄧ殑鍗曡瘝銆傜敱浜巗ublime鏀寔澶氭父鏍囷紝view.sel()浼氬湪self.view.sel()涓繑鍥瀝egion鐨勬暟缁勶細print(region)ctrl+~鎵撳紑鎺у埗鍙帮紝杈撳叆view.run_command('example')鐪嬫墦鍗拌緭鍑恒€倀ip:sublime鎻掍欢鏈€鍚庣殑鍛戒护鍚嶆槸鍙栫被鍚嶇殑姣忎釜鍗曡瘝锛岀劧鍚庣敤涓嬪垝绾挎嫾鎺ワ紝鏈€鍚庡幓鎺塦command`瀛楃銆傚鏋滅被鍚嶆洿鏀逛负`TestCommand`锛屽垯搴旇緭鍏view.run_command('test')`濡傛灉绫诲悕鏇存敼涓篳TestDevCommand`锛屽垯搴旇緭鍏view.run_command('test_dev')`寰楀埌榧犳爣鐨勪綅缃紝閫氳繃view.word(regin)鍙互寰楀埌鏁翠釜鍗曡瘝鐨勪綅缃幇鍦ㄤ唬鐮佸涓嬶細forregioninself.view.sel():passselection=self.view.word(region)print(selection)璋冪敤APISublime鍙兘浣跨敤鍐呯疆妯″潡锛屾墍浠ヤ娇鐢╱rllib锛孉PI濡備笅锛歶rllib.request.urlopen(url,data)娉ㄦ剰锛氬鏋滄槸get璇锋眰锛岀浜屼釜鍙傛暟涓嶉渶瑕佸~鍐欙紝濡傛灉濉啓浜嗭紝琛ㄧず鏄痯ost璇锋眰銆傚浜巊et锛屾垜浠細鑷繁鎷兼帴url銆傚叧浜庣涓夋柟缈昏瘧骞冲彴锛屾垜鐢ㄧ殑鏄櫨搴︼紝鍥犱负鎴戝湪vscode閲屼篃鍋氫簡涓€涓竴妯′竴鏍风殑鎻掍欢锛屾墍浠ョ敤鐨勬槸API銆傝姹傜涓夋柟缈昏瘧骞冲彴浠g爜锛歩mporthashlibimportjsonfromurllibimportrequest,parsedeftranslateBaidu(self,q,fromq,to鈥嬧€?:appid='20200921000570318'secret='GLMeRH02ZIQHOCIPlJhW'salt=random.random()sign=appid+q+str(salt)+secreturl='https://fanyi-api.baidu.com/api/trans/vip/translate'data={"q":q,"appid":appid,"from":fromq,鈥渢o鈥濓細to锛屸€渟alt鈥濓細str锛坰alt锛夛紝鈥渟ign鈥濓細hashlib.md5锛坰ign.encode锛?utf-8'锛夛級銆俬exdigest锛堬級}encodeddata=parse.urlencode锛坉ata锛塸rint锛坋ncodeddata)req=request.Request(url+'?'+encodeddata)r=request.urlopen(req)print(r)瀛楃涓叉暣鍚堢炕璇戝悗宸笉澶氭槸杩欐牱鐨勶細aabbcc鎴戜滑闇€瑕佹牴鎹┖鏍兼潵鍒嗛殧鍗曡瘝锛屽拰鐒跺悗鎷兼帴璧锋潵灏辨槸涓€涓ぇ澶у皬灏忕殑椹煎嘲銆俤efbig_hump(self,s):arr=enumerate(s.split())arr=map(lambdax:x[1][0].upper()+x[1][1:],arr)res=''.join(list(arr))returnres#aaBbCcdefsmall_hump(self,s):defs1(x):ifx[0]==0:returnx[1][0].lower()+x[1][1:]鍚﹀垯锛氳繑鍥瀤[1][0].upper()+x[1][1:]arr=enumerate(s.split())arr=map(s1,arr)res=''.join(list(arr))returnresdefunderscore_hump(self,s):arr=enumerate(s.split())arr=map(lambdax:x[1].lower(),arr)res='_'.join(list(arr))returnres杩欓噷鍙互鐪嬪嚭鎴戜滑鐨勮嫳璇按骞虫湁寰呮彁楂橈紝鎵€浠ユ墠鍋氫簡杩欎釜鎻掍欢銆傛彁渚涘埗浣滈┘宄板拰涓嬪垝绾夸笁绉嶆牱寮忕殑閫夐」鍚庯紝闇€瑕佹彁渚涚粰鐢ㄦ埛閫夋嫨銆傝繖閲岃皟鐢ㄨ繖涓狝PI鏄剧ず涓€涓脊绐梫iew.show_popup_menu(list,done_func,index)鏈€鍚庡洜涓簊ublime娌℃湁vscode閭d箞闅撅紝鍙互涓婁紶鎻掍欢闅忎究鍐欙紝sublime鍖呮帶鎻掍欢闇€瑕佸鏋滆琚叾浠栦汉浣跨敤锛岃杩涜瀹℃煡銆備笅闈㈡槸鏁翠釜浠g爜锛岀洿鎺ヤ繚瀛樺湪%appdata%\SublimeText\Packages\User涓?appdata%\SublimeText\Packages\User鐩存帴澶嶅埗鍒拌祫婧愮鐞嗗櫒鎵撳紑鍗冲彲锛岎煒奿mportsublimeimportsublime_pluginimportrefromurllibimportrequest,parseimportrandomimporthashlibimportjsonclassTranslateCommand(sublime_plugin.TextCommand):word_list=[]region=None#瀹氫箟寮傚父澶勭悊defhandlingExceptions(code):codes={"52001":"璇锋眰瓒呮椂锛屾鏌ョ綉缁滈噸璇?,"52002":"绯荤粺閿欒锛屾煡鐪嬬櫨搴︾炕璇戝畼缃戝叕鍛?,"52003":"璇锋鏌ppid鎴栨湇鍔℃槸鍚﹀紑鍚?,"54000":"蹇呭~鍙傛暟涓虹┖","54001":"绛惧悕error","54003":"璁块棶棰戠巼鍙楅檺","54004":"璐︽埛浣欓涓嶈冻","54005":"闀挎煡璇㈣姹傞绻侊紝璇风缉鐭暱搴︽煡璇㈢殑鍙戦€侀鐜囷紝3s鍚庨噸璇?,"58000":"瀹㈡埛绔疘P鏃犳晥","58001":"涓嶆敮鎸佽璇█","58002":"鏈嶅姟褰撳墠宸插叧闂紝璇峰墠寰€鍒扮鐞嗘帶鍒跺彴鎵撳紑鏈嶅姟","90107":"Authenticationfailedornotvalid",}defon_done(self,index):ifindex!=-1:self.view.replace(self.editor,self.鍖哄煙锛宻elf.word_list[index])defbig_hump(self,s):arr=enumerate(s.split())arr=map(lambdax:x[1][0].upper()+x[1][1:],arr)res=''.join(list(arr))returnres#aaBbCcdefsmall_hump(self,s):defs1(x):濡傛灉x[0]==0:杩斿洖x[1][0].lower()+x[1][1:]鍚﹀垯锛氳繑鍥瀤[1][0].upper()+x[1][1:]arr=enumerate(s.split())arr=map(s1,arr)res=''.join(list(arr))returnresdefunderscore_hump(self,s):arr=enumerate(s.split())arr=map(lambdax:x[1].lower(),arr)res='_'.join(list(arr))returnres#璋冪敤缈昏瘧APIdeftranslateBaidu(self,q,fromq,to鈥嬧€?:appid='20200921000570318'secret='GLMeRH02ZIQHOCIPlJhW'salt=random.random()sign=appid+q+str(salt)+secreturl='https://fanyi-api.baidu.com/api/trans/vip/translate'data={"q":q,"appid":appid,"from":fromq,"to":to,"salt":str(salt),"sign":hashlib.md5(sign.encode('utf-8')).hexdigest()}缂栫爜鏁版嵁=parse.urlencode(data)req=request.Request(url+'?'+encodeddata)r=request.urlopen(req)灏濊瘯锛歞ata=json.loads(r.read().decode(r.info().get_param('charset')or'utf-8'))data=data['trans_result'][0]['dst']word_list=data.split()arr=[]iflen(word_list)>0:arr.append(self.small_hump(data))arr.append(self.big_hump(data))arr.append(self.underscore_hump(data))else:arr.append(data)returnarr闄や簡(IndexError,IndentationError):print('json瑙f瀽寮傚父')defrun(self,editor):self.editor=editorword_index=-1;瀵逛簬self.view.sel()涓殑鍖哄煙锛歸ord_index=regionifword_index!=-1:selection=self.view.word(word_index)self.region=selectionword=self.view.substr(selection)res=re.search('[\u4e00-\u9fa5]',word)ifres:data=self.translateBaidu(word,'zh','en')self.word_list=dataself.view.show_popup_menu(data,self.on_done,0)pass濡傛灉sublime鎶ラ敊锛岄偅涔堝簲璇ユ槸python鏂囦欢鐨勭缉杩涙湁闂锛宑trl+P璋冪敤鍛戒护Indentation:ConverttoTabs鐒跺悗鍒癙references->KeyBindings锛岀粦瀹氬揩鎹烽敭{"keys":["alt+n"],"command":"translate"}
