Code: Select all
;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;; Макрос удаления пробелов и табов из окончаний строк,
;; а также пустых строк из конца редактируемого файла
;; с сохранением/восстановлением состояния поиска по регэкспам
;;-------------------------------------------------------------------------------------------------
%comment="Макрос удаления конечных пробелов и табов и конечных пустых строк. (с) SimSU";
%comment="Назначается например на AltDel в редакторе.";
$IF(msgbox("SimSU trim","Удалить пробелы из окончаний строк\nи пустых строк из конца файла?",262144)==1)
%mm=mmode(1,1); editor.undo(0) %bm=bm.add();
%R=editor.set(18,1); %comment="НЕ РАБОТАЕТ!";
CtrlHome CtrlF7 CtrlY print("( |\\t)+$") Tab CtrlY Tab Tab Tab Subtract
Tab %R=dlg.getvalue(dlg.getvalue(0,6),0); Add %comment="Когда заработает то, что 'не работает!', эту строку можно будет убрать.";
Enter Tab Enter
CtrlF7 CtrlDown $IF (ItemCount>1) ShiftDel Esc $Else ShiftDel $End Esc %comment="Чистим историю.";
editor.set(18,%R) %comment="НЕ РАБОТАЕТ!";
CtrlF7 CtrlY Tab Tab Tab Tab Tab %R1=dlg.getvalue(dlg.getvalue(0,6),0); $IF (%R!=%R1) Space $END Enter %comment="Когда заработает то, что 'не работает!', эту строку можно будет убрать.";
CtrlEnd $WHILE ((Editor.Value=="")&&(editor.curline!=1)) ShiftUp $END ShiftDown Del %comment="Удпление строк.";
bm.next() bm.del(%bm) editor.undo(1) mmode(1,%mm)
$END