Posted: Wed Jul 28, 2010 9:00 am
Подскажите, пожалуйста, можно ли как-то через скрипт изменить размер табуляции? Я хочу подвесить на хоткей...
Человек нужно. Он же остальных не заставляет.Зачем это?
Я не перекрещиваю)) Мне интересно для чего? А вдруг что-то мега-полезное, так чего бы и самому не пользоваться?FeyFre wrote:Человек нужно. Он же остальных не заставляет.
Размер табуляции, если это табуляция, роли не играет. Если у меня я ставил табы размером 8, то у Вас они же будут отображаться размером 4.[Yustas.NeO] wrote:Ну, например, я привык к размеру табуляции 4, а файлы *.coder сохранены с размером 8 - вот и хотел для оперативности повесить на хоткей...
Может тогда есть еще какой-нибудь способ?
Code: Select all
AkelPad.SetSel(0, -1);
pContent = AkelPad.GetSelText();
pContent = pContent.replace(/\t\t/g, "\t");
AkelPad.ReplaceSel(pContent);Try this:[Yustas.NeO] wrote:С помощью скрипта нужно ближайшую вверх по тексту "единичку" заменить на "двойку", а ближайшую вниз по тексту "тройку" заменить на "четверку".
Пишу:
var nSelStart=AkelPad.GetSelStart();
var nSelEnd=AkelPad.GetSelEnd();
AkelPad.SetSel(nSelStart, nSelStart);
q=AkelPad.TextReplace(AkelPad.GetEditWnd(), '1', '2', 0x00100000, false);
AkelPad.SetSel(nSelEnd, nSelEnd);
a=AkelPad.TextReplace(AkelPad.GetEditWnd(), "3", "4", 0x00000001, false);
AkelPad.MessageBox(AkelPad.GetMainWnd(), q+ ' : ' + a, "", 64 /*MB_ICONINFORMATION*/);
Вбиваю текст:
1313131313131313131313
UI-примочки надо использовать в крайнем случае, это хороший тон.[Yustas.NeO] wrote:...
a=AkelPad.TextReplace(AkelPad.GetEditWnd(), "3", "4", 0x00000001, false);
...
Code: Select all
pContent = AkelPad.GetSelText();
pContent = pContent.replace(/1/, "2");
pContent = pContent.replace(/3/, "4");
AkelPad.ReplaceSel(pContent);Code: Select all
AkelPad.SetSel(nSelStart, nSelStart);Code: Select all
AkelPad.SetSel(nSelStart, nSelStart+1);Code: Select all
AkelPad.SetSel(nSelEnd, nSelEnd);Code: Select all
AkelPad.SetSel(nSelEnd, nSelEnd+1);А если подумать, то для ближайшей вверх Вам нужно делать выделениеStart position - number of first selected character
End position - number of first non-selected character immediately after selection
Code: Select all
AkelPad.SetSel(0, nSelStart);Code: Select all
AkelPad.SetSel(nSelEnd, -1);Thanks, but i need to replace only nearest, not all.KDJ wrote:q=AkelPad.TextReplace(AkelPad.GetEditWnd(), "1", "2", 0x00100000, true);
a=AkelPad.TextReplace(AkelPad.GetEditWnd(), "3", "4", 0x00000001, true);
Это нужно чтобы учесть и выделение и просто постановку курсора, и заменить ближайшие вверх-вниз символы.FeyFre wrote:(Только зачем это нужно в контексте задачи я не понял)
А для чего это всё?[Yustas.NeO] wrote:Это нужно чтобы учесть и выделение и просто постановку курсора, и заменить ближайшие вверх-вниз символы.FeyFre wrote:(Только зачем это нужно в контексте задачи я не понял)
...
Да, но при этом потеряется табличный вид. Вот и приходится каждый раз менять туда-сюда.VladSh wrote:Если у меня я ставил табы размером 8, то у Вас они же будут отображаться размером 4.
Я правильно понимаю, что replace() заменяет только первое вхождение?VladSh wrote:pContent = pContent.replace(/1/, "2");
ТренируюсьVladSh wrote:А для чего это всё?
Потому и говорю - лучше обработать скриптом под себя 1 раз.[Yustas.NeO] wrote:Да, но при этом потеряется табличный вид. Вот и приходится каждый раз менять туда-сюда.
Такая запись - да.[Yustas.NeO] wrote:Я правильно понимаю, что replace() заменяет только первое вхождение?Code: Select all
pContent = pContent.replace(/1/, "2");
Code: Select all
pContent = pContent.replace(/1/g, "2");Уже написаны: CommentsAdd.js и toggleComments.js.[Yustas.NeO] wrote:В данном случае пытаюсь написать скрипт комментирования строк задействованных в выделении.
Sorry, I misunderstood.[Yustas.NeO] wrote:Thanks, but i need to replace only nearest, not all.
Code: Select all
var nSelStart=AkelPad.GetSelStart();
var nSelEnd=AkelPad.GetSelEnd();
AkelPad.SetSel(nSelStart, nSelStart);
var q=AkelPad.TextReplace(AkelPad.GetEditWnd(), "1", "2", 0x00100000, false);
if (q > -1)
AkelPad.TextReplace(AkelPad.GetEditWnd(), "1", "2", 0x00500000, false);
AkelPad.SetSel(nSelEnd, nSelEnd);
var a=AkelPad.TextReplace(AkelPad.GetEditWnd(), "3", "4", 0x00000001, false);
if (a > -1)
AkelPad.TextReplace(AkelPad.GetEditWnd(), "3", "4", 0x00400001, false);
AkelPad.SetSel(nSelStart, nSelEnd);