Переименование на месте - возможно?

Здесь обсуждается всё, что касается макросов.
User avatar
[e]Bu$ter
Posts: 792
Joined: Mon 30 May, 2005 23:05
Location: Беларусь, Минск
Contact:

Post by [e]Bu$ter »

Latest post of the previous page:

VictorVG wrote:[e]Bu$ter

А думать что уже необязательно? У Вас батенька действительно вышло что-то кошмарное. Я битый час пытался разобраться в том где у этого монстра хвост , где лапы, а где зубы и пришёл к выводу что Ваша оценка сего творения:
HaRT, DrKnS, использовал в своём кошмаре ваши наработки
абсолютно верна.


То что под всякими хитрыми шелами и другими осями Вы нефиговый шаман (я так понимаю вы для этого упомянули всё то), но при этом у вас не получается разобраться, как правильно сказал Kildor, с простым макросом, исключительно ваша проблема.
Почему вы обвиняете в этом меня?
VictorVG wrote:С этим же невозможно нормально работать!
Так и не нужно с этим работать, просто "проинстальте" себе, и всё. Или лучше вообще не трогайте - вручную батники править у вас, с ваших же слов, лучше получается.
User avatar
[e]Bu$ter
Posts: 792
Joined: Mon 30 May, 2005 23:05
Location: Беларусь, Минск
Contact:

Post by [e]Bu$ter »

Konstantin wrote:Поработал с макросом
...
заметил маленькую особенность. Когда при групповом переименовании файлов отменяешь команду мышкой, то до следующего клика задерживается вид линейки клавиш, адаптированный под команду. А если отменять с клавиатуры, то такого эффекта нет.
Я так понял, под отменой команды понимается закрытие диалога (спрашивающего чем переименовывать файлы). Вообще, какие-то странные термины вы испольузете...
Короче, описанное у меня не повторяется, или я вас не правильно понял. "Линейки клавиш" у меня в ходе вообще никак не меняется.
User avatar
Konstantin
Posts: 234
Joined: Wed 14 Jun, 2006 19:29
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 5 times

Post by Konstantin »

[e]Bu$ter

Хотя я не специалист, а простой пользователь (просто люблю Фар), Вы как специалист поняли меня верно. Пример того, о чем я имел ввиду, - на скрепке.

Любые Ваши замечания, пожелания и даже критики будут уместны. Желательно с развернутым пояснением как для ребенка.

За макрос большое спасибо.
Attachments
окноФараПриОтменеМакроса[e]Bu$ter_2007_02_06.7z
Пример торможения окна Фара после сброса диалога макроса [e]Bu$ter
(136.16 KiB) Downloaded 281 times
User avatar
[e]Bu$ter
Posts: 792
Joined: Mon 30 May, 2005 23:05
Location: Беларусь, Минск
Contact:

Post by [e]Bu$ter »

Понятно. Это FAR не перерисовывает строку функциональных клавиш, если диалог "показанный" из макроса закрывается мышкой.
Вы, можно сказать, обнаружили баг :)

Развёрнутое пояснение:
Макрос у вас вызывается через ShiftF6. Т.е. когда вы его вызываете, Shift нажат и FAR показывает соответствующую ему строку клавиш, которая и остаётся в таком виде под появившемся диалогом.
Когда диалог закрывается мышкой, FAR забывает вернуть обратно нормальную строку клавиш.
* когда нажимается клавиша (в этом случае для закрытия диалога), это происходит "само по себе" поэтому глюка как бы и нет

Вопрос к разработчикам: это сразу исправят, или тоже нужно на мантис записывать?


P.S. Konstantin, такой способ склеивания картинок ещё нужно было придумать! :D
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

[e]Bu$ter wrote:Вопрос к разработчикам: это сразу исправят, или тоже нужно на мантис записывать?
А то! Естественно на мантис - мантис он на то и поднят, чтобы документировать... блаблабла (об этом уже не раз писалось)
User avatar
[e]Bu$ter
Posts: 792
Joined: Mon 30 May, 2005 23:05
Location: Беларусь, Минск
Contact:

Post by [e]Bu$ter »

dmgorsky
Posts: 2
Joined: Tue 15 Jan, 2008 10:18

Выделение имени файла до расширения по Shift+F6 - опция

Post by dmgorsky »

По аналогии можно задуматься о подобных опциях (автовыделения различных частей пути) и в других диалогах операций с файлами.
dmgorsky
Posts: 2
Joined: Tue 15 Jan, 2008 10:18

Post by dmgorsky »

DrKnS wrote:Или заведи себе в юзерменю пункт ren "!\!.!" "!?New Name:?(!)!.!`"

2CrOm:
Настали смутные времена, и имя файла теперь может содержать точки... :)
Обрабатывать лучше с конца - ShiftF6 CtrlLeft Left ShiftHome
Если в том, что переименовываем, нет точек, то курсор просто станет на ближайший пробел или какой там еще может быть разделитель.
Если пробелов/разделителей тоже нет - станет в начало строки.
User avatar
Tim Sobolev
Posts: 729
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 7 times

Re: Переименование на месте - возможно?

Post by Tim Sobolev »

Собственно с использованием современных макротехнологий 8)

Code: Select all

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Far2\KeyMacros\Shell\AltShiftF6]
"Sequence"="%F=APanel.Current;  %N=fsplit(%F,4); %E=fsplit(%F,8); %S=prompt(\"│\"+%N+\"│\"+%E,\"Change name to:\",0x30, %N); $If (%S!=\"\") ShiftF6 print(%S+%E); Enter $End"
"Description"="# Change file name"
"DisableOutput"=dword:00000001
alex_itd
Posts: 15
Joined: Sun 28 Dec, 2008 21:00

Re: Переименование на месте - возможно?

Post by alex_itd »

Вариант для MacroLib. Повесил на F2
Attachments
ChangeFileName.fml.7z
(340 Bytes) Downloaded 160 times
newbie011
Posts: 5
Joined: Sat 05 Oct, 2013 18:29

Re: Переименование на месте - возможно?

Post by newbie011 »

Вариант для Far3 (Lua):

Code: Select all

Macro {
  area="Shell"; key="ShiftF6"; flags="NoPluginPanels|NoPluginPPanels|NoSendKeysToPlugins"; description="Rename";
  action=function()
  File = APanel.Current 
  N = mf.fsplit(APanel.Current, 0x04)
  E = mf.fsplit(APanel.Current, 0x08)
  S = mf.prompt(N.."|"..E.."|",'Change name to:                (Empty string for standart dialog)',0x30, N)
  if ((S~="") and (S ~= false)) then
  	Keys("ShiftF6")
  	print(S .. E)
  	Keys("Enter")
  end
  if (S=="") then
  	Keys("ShiftF6")
  end
  end;
}
Заменяет стандартный диалог по ShiftF6, выделенным оказывается имя файла, расширение скрыто.
Если нужно менять расширение, посылаем Enter в пустую строку — выводится стандартный диалог.
Сохранять как .lua файл в папку \Profile\Macros\scripts
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

Re: Переименование на месте - возможно?

Post by siberia-man »

Моя вариация на тему (оригинал отсюда). Результат работы макроса максимально приближен к тому, что происходит в Проводнике при переименовании файла/каталога. Макрос рассматривает имя файла на соответствие формату *.*. Если расширение есть (вторая вездочка) и "чистое" имя файла непустая строка (первая звездочка), то выделяется только имя файла (непустая подстрока от начала строки до символа, предшествующего последней точке). В остальных случаях - выделяется вся строка. Курсор позиционируется на последнем символе выделенной области строки.
  1. Macro {
  2.  
  3.     area = "Shell";
  4.  
  5.     key = "ShiftF6";
  6.  
  7.     flags = "";
  8.  
  9.     description = "Shell: Highlight the filename of the file to be renamed";
  10.  
  11.     action = function()
  12.  
  13.         Keys("AKey Home ShiftEnd");
  14.  
  15.         local text = Dlg.GetValue();
  16.  
  17.         if regex.match(text, ".+\\..+") then
  18.  
  19.             Keys("CtrlShiftLeft ShiftLeft");
  20.  
  21.         end;
  22.  
  23.     end;
  24.  
  25. }
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

Re: Переименование на месте - возможно?

Post by siberia-man »

Не понял как тут можно изменить свое сообщение. Хотел всего лишь чуть поправить код: добавил проверку на указатель вернего каталога.
  1. Macro {
  2.  
  3.     area = "Shell";
  4.  
  5.     key = "ShiftF6";
  6.  
  7.     flags = "";
  8.  
  9.     description = "Shell: Highlight the filename of the file to be renamed";
  10.  
  11.     action = function()
  12.  
  13.         if APanel.Current == ".." then
  14.  
  15.             return;
  16.  
  17.         end;
  18.  
  19.         Keys("AKey Home ShiftEnd");
  20.  
  21.         local text = Dlg.GetValue();
  22.  
  23.         if regex.match(text, ".+\\..+") then
  24.  
  25.             Keys("CtrlShiftLeft ShiftLeft");
  26.  
  27.         end;
  28.  
  29.     end;
  30.  
  31. }
User avatar
John Doe
Бюрократ
Posts: 13861
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Переименование на месте - возможно?

Post by John Doe »

siberia-man wrote:Не понял как тут можно изменить свое сообщение.
Эта возможно только при достижении какого-то числа сообщений.
siberia-man wrote:Хотел всего лишь чуть поправить код: добавил проверку на указатель вернего каталога.
А разве проводник у папок при переименовании выделяет имя?
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

Re: Переименование на месте - возможно?

Post by siberia-man »

John Doe wrote:Эта возможно только при достижении какого-то числа сообщений.
Примерно так и подумал.
John Doe wrote:А разве проводник у папок при переименовании выделяет имя?
Ваша правда - не выделяет. Надо будет подумать еще.
User avatar
John Doe
Бюрократ
Posts: 13861
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Переименование на месте - возможно?

Post by John Doe »

siberia-man wrote:Ваша правда - не выделяет. Надо будет подумать еще.
А что думать, флаг NoFolders
Post Reply

Return to “Обсуждение макросов”