FarCmds: быстрые префиксы

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
HaRT
Moderator
Posts: 8109
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 103 times

FarCmds: быстрые префиксы

Post by HaRT » Wed 24 May, 2006 11:20

[Основная тема по плагину FarCmds тут]

Предлагаю укомплектовать плагин FarCmds макросами т.н. “быстрых префиксов”, идею которых лично я почерпнул из поставки плагина NamedFolders.

Вот какие быстрые префиксы настроены сейчас у меня:
: “cd:” (NamedFolders)
/ “far:macro ”
? “far:whereIs ”
< “far:edit < ”
> “far:goto ”
Активизируются они только при пустой командной строке, т.е. как раз тогда, когда крайне маловероятно, что понадобится ввести какой-то из этих символов.

Кроме того, для : есть ещё макрос на Ж, который делает то же самое, но ещё и через плагин Something переключает раскладку на английскую. Подобрать такие пары для прочих префиксов у меня энтузиазма уже не хватило, т.ч. если кто-то поделится, буду благодарен.

Прилагаю файл с соответствующими макросами для FarCmds. При желании туда легко добавить проверку того, что плагин загружен, — через проверку наличия его горячей клавиши в меню конфигурации плагинов (лично у меня так и сделано, но это завязано, во-первых, на язык интерфейса и, во-вторых, на саму клавишу).
Attachments
FarCmds_FastPrefixes_0.1.7z
FarCmds: быстрые префиксы для популярных команд
(677 Bytes) Downloaded 502 times

User avatar
HaRT
Moderator
Posts: 8109
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 103 times

Post by HaRT » Mon 05 Feb, 2007 11:14

Обновил приложение в заглавном сообщении:
1. Теперь префикс вставляется даже при непустой командной строке, если курсор находится в её начале.
2. Добавлены префиксы:
 CtrlShift, (Ctrl<) “far:view < ”
 | “net: \\” (Network Browser)
 * “start /max ” (Windows command)
 & “%COMSPEC% /k ” (Windows command interpreter)

Yegor
Posts: 865
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA (Kharkov, UA)
Has thanked: 3 times
Been thanked: 7 times

Re: FarCmds: быстрые префиксы

Post by Yegor » Fri 07 May, 2010 08:36

Похоже в самом reg-файле написано "where" вместо "whereis".
[HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\?]
"Sequence"="F9 o u %c = CmdLine.Bof && CheckHotkey ( \"a\" ); Esc $If ( %c ) \"far:where \" $Else ? $End"
"DisableOutput"=dword:00000001
"Description"="FarCmds: Fast Prefix: \"far:where \""
@="FarCmds: Fast Prefix: \"far:where \""
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин

User avatar
HaRT
Moderator
Posts: 8109
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 103 times

Re: FarCmds: быстрые префиксы

Post by HaRT » Fri 07 May, 2010 10:04

Yegor wrote:Похоже в самом reg-файле написано "where" вместо "whereis".
Спасибо за замечание.
Но мне лень перевыкладывать.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 11397
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

FarCmds: быстрые префиксы

Post by John Doe » Thu 03 Jul, 2014 16:25

Макросы (из шапки) для Far 3
  1. local FastPrefixes = {
  2.  
  3.   --FarCmds
  4.   ["?"] = "whereis: ",
  5.   ["<"] = "edit: < ",
  6.   [">"] = "goto: < ",
  7.   ["CtrlShift,"] = "view: < ",
  8.  
  9.   --LuaMacro
  10.   ["/"] = "lua: ",
  11.   --["|"]="moon: ",
  12.  
  13.   --network
  14.   ["|"] = "net: \\\\",
  15.  
  16.   --cmd
  17.   ["&"] = "%COMSPEC% /k ",
  18.   ["*"] = "start /max ",
  19. }
  20.  
  21. for key,seq in pairs(FastPrefixes) do
  22.   Macro {
  23.     description=("Fast Prefix: %q = %q"):format(key,seq);
  24.     area="Shell"; key=key;
  25.     condition=function() return CmdLine.Bof end;
  26.     action=function() print(seq) end;
  27.   }
  28. end
  29.  
  30. local en_US = 0x4090409
  31. Macro {
  32.   description='Fast Prefix: ":" = "cd:" (NamedFolders)';
  33.   area="Shell"; key=":";
  34.   condition=function() return CmdLine.Bof end;
  35.   action=function()
  36.     print "cd: "
  37.     Far.KbdLayout(en_US)
  38.   end;
  39. }
Или так:
  1. local FastPrefixes = {
  2.  
  3.   --FarCmds
  4.   ["?"] = "whereis: ",
  5.   ["<"] = "edit: < ",
  6.   [">"] = "goto: < ",
  7.   ["CtrlShift,"] = "view: < ",
  8.  
  9.   --LuaMacro
  10.   ["/"] = "lua: ",
  11.   --["|"]="moon: ",
  12.  
  13.   --network
  14.   ["|"] = "net: \\\\",
  15.  
  16.   --cmd
  17.   ["&"] = "%COMSPEC% /k ",
  18.   ["*"] = "start /max ",
  19. }
  20.  
  21. local keys = ""; for key,seq in pairs(FastPrefixes) do keys = keys..key.." " end
  22.  
  23. Macro {
  24.   description="Fast Prefixes";
  25.   area="Shell"; key=keys;
  26.   condition=function() return CmdLine.Bof end;
  27.   action=function() print(FastPrefixes[akey(1)]) end;
  28. }
  29.  
  30. local en_US = 0x4090409
  31. Macro {
  32.   description='Fast Prefix: ":" = "cd:" (NamedFolders)';
  33.   area="Shell"; key=":";
  34.   condition=function() return CmdLine.Bof end;
  35.   action=function()
  36.     print "cd: "
  37.     Far.KbdLayout(en_US)
  38.   end;
  39. }
Предлагайте свои варианты быстрых префиксов
Last edited by HaRT on Tue 05 Apr, 2016 00:05, edited 2 times in total.
Reason: [codebox]; “where:”-->“whereis:”

User avatar
HaRT
Moderator
Posts: 8109
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 103 times

FarCmds: быстрые префиксы

Post by HaRT » Thu 24 Aug, 2017 12:55

John Doe wrote:
Thu 03 Jul, 2014 16:25
Макросы (из шапки) для Far 3
Я у себя в area дописал ShellAutoCompletion, а в action в начало вставил строку if Area.ShellAutoCompletion then Keys'Esc' end — чтобы работало и при открытом меню дополнения.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

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