這巨集想分享很久了,一直忘了,趁現在忽然想起快來紀錄一下。
EMEDTIOR 軟體就不介紹了,直接來介紹巨集,該巨集的功能其實在許多 文字編輯器都可以看到,常常可以看到一些自動對齊的功能,讓我有點心癢癢的,後來自己想了一下邏輯,就自己寫了腳本來套用了。
以下是腳本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
var replace_str = '[[auto_space]]'; var max_strlength = 10; var strlength_push = 4; var str_data = []; document.selection.Replace("\\t"," ",eeFindNext | eeFindSaveHistory | eeFindReplaceEscSeq | eeReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace("\\s+(\\=\\>|\\=|\\,)"," $1 ",eeFindNext | eeFindSaveHistory | eeFindReplaceEscSeq | eeReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace(" (\\=\\>|\\=|\\,)\\s+",replace_str+"$1 ",eeFindNext | eeFindSaveHistory | eeFindReplaceEscSeq | eeReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace("= >","=>",eeFindNext | eeFindSaveHistory | eeFindReplaceEscSeq | eeReplaceSelOnly | eeReplaceAll | eeFindReplaceOnlyWord); document.selection.StartOfDocument(); while( document.selection.Find(replace_str,eeFindNext | eeFindSaveHistory |eeFindReplaceOnlyWord) ) { document.selection.StartOfLine(false,eeLineView | eeLineHomeText); document.selection.EndOfLine(true,eeLineView); var str_obj = str_space( document.selection.Text ); str_data.push(str_obj); document.selection.EndOfLine(false,eeLineView); } document.selection.StartOfDocument(); var line = 0; while( document.selection.Find(replace_str,eeFindNext | eeFindSaveHistory |eeFindReplaceOnlyWord) ) { document.selection.StartOfLine(false,eeLineView | eeLineHomeText); document.selection.EndOfLine(true,eeLineView); var str_obj = str_data[line]; var count_space = max_strlength - str_obj.front.length + strlength_push; document.selection.Text = str_obj.front + get_space(count_space) + str_obj.back; document.selection.EndOfLine(false,eeLineView); line++; } document.selection.Replace(replace_str,"",eeFindNext | eeFindSaveHistory | eeFindReplaceCase | eeReplaceAll); function str_space( str ) { var start_index = str.indexOf(replace_str); var front_word = str.substr(0,start_index); var back_word = str.substr(start_index+replace_str.length , str.length); max_strlength = Math.max(max_strlength,front_word.length); return {"front":front_word,"back":back_word} } function get_space(count){ var ret = '',i; for(i=1;i<=count;i++) { ret += ' '; } return ret; } |
可以看看操作影片
如果懶得自己存一個,可以從這邊下載: