Помогите написать макрос
Помогите написать макрос
Требуется помощь в написании макроса для запуска утилиты ExamDiff.
Командная строка: ExamDiff File1 File2
Исходное состояние:
Курсор на файле в левой панели. В правой панели есть одноименный файл.
Делаю CtrlJ для первого файла потом пытаюсь взять в буфер его имя,
потом перехожу на правую панель и пытаюсь найти одноименный файл в правой панели и сделать ему CtrlJ
Нифига не выходит.
Помогите плиз.
Командная строка: ExamDiff File1 File2
Исходное состояние:
Курсор на файле в левой панели. В правой панели есть одноименный файл.
Делаю CtrlJ для первого файла потом пытаюсь взять в буфер его имя,
потом перехожу на правую панель и пытаюсь найти одноименный файл в правой панели и сделать ему CtrlJ
Нифига не выходит.
Помогите плиз.
Точнее выходит, но не совсем так как надо
После выполнения макроса в командной строке появляются имена файлов без путей и в examdiff грузятся две копии одного и того же файла (с той панели где осталась "шпала")
Вот текст макроса:
CtrlJ CtrlO ShiftHome CtrlC CtrlO /*опускаем имя файла в командную строку, выключаем панель и копируем имя в буфер*/
Esc /*чистим командную строку*/
e x a m d i f f Space CtrlJ /* пишем имя утилиты и указываем первым параметром файл с текущей панели*/
Tab AltF7 CtrlV Enter Enter /*переходим на другую панель, открываем поиск, вставляем имя, закрываем поиск*/
CtrlJ Enter /*переносим имя найденного файла во второй параметр и жмем заключительный Enter*/
Все замечательно, кроме имен файлов.
Подскажите, как опустить в командную строку полное имя файла?
После выполнения макроса в командной строке появляются имена файлов без путей и в examdiff грузятся две копии одного и того же файла (с той панели где осталась "шпала")
Вот текст макроса:
CtrlJ CtrlO ShiftHome CtrlC CtrlO /*опускаем имя файла в командную строку, выключаем панель и копируем имя в буфер*/
Esc /*чистим командную строку*/
e x a m d i f f Space CtrlJ /* пишем имя утилиты и указываем первым параметром файл с текущей панели*/
Tab AltF7 CtrlV Enter Enter /*переходим на другую панель, открываем поиск, вставляем имя, закрываем поиск*/
CtrlJ Enter /*переносим имя найденного файла во второй параметр и жмем заключительный Enter*/
Все замечательно, кроме имен файлов.
Подскажите, как опустить в командную строку полное имя файла?
Как то эта тема уже проходила и все решалось отлично с помощью FARCmds. Вот что я могу предложить (Farmenu.ini):
Code: Select all
G: Compare files
{
A: Compare files on panels with 'Araxis merge'
if exist "!#!\!^!.!" AraxisCompare /max "!^!\!.!" "!#!\!^!.!"
if not exist "!#!\!^!.!" AraxisCompare /max "!^!\!.!" "!#!\!.!"
B: Compare files on panels with 'diff'
if exist "!#!\!^!.!" far:edit <diff "!^!\!.!" "!#!\!^!.!"
if not exist "!#!\!^!.!" far:edit <diff "!^!\!.!" "!#!\!.!"
C: Compare files on panels with 'File compare'
if exist "!#!\!^!.!" far:edit <fc "!^!\!.!" "!#!\!^!.!"
if not exist "!#!\!^!.!" far:edit <fc "!^!\!.!" "!#!\!.!"
D: Compare files on panels with 'Visual file compare'
if exist "!#!\!^!.!" vfcw "!^!\!.!" "!#!\!^!.!"
if not exist "!#!\!^!.!" vfcw "!^!\!.!" "!#!\!.!"
-:
E: Compare panels with 'Araxis merge'
AraxisCompare /max "!^!\" "!#!\"
}
Помогите написать макрос: создание файла
Помогите написать макрос: Хочу чтобы при нажатии Alt+D создавался файл read.me и в него заносилось имя с расширением файла, на котором стоит курсор.
Вот первая попытка - но она не работает. Я постоянно сваливаюсь в быстрый поиск : (
REGEDIT4
[HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\AltD]
"Sequence"="ShiftF4 \"read.me\" Enter $End"
"DisableOutput"=dword:00000001
"NoPluginPanels"=dword:00000001
"NoFolders"=dword:00000001
Вот первая попытка - но она не работает. Я постоянно сваливаюсь в быстрый поиск : (
REGEDIT4
[HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\AltD]
"Sequence"="ShiftF4 \"read.me\" Enter $End"
"DisableOutput"=dword:00000001
"NoPluginPanels"=dword:00000001
"NoFolders"=dword:00000001
А нафиг вообще по букве писать? Как я понимаю SirStefan юзает какую-то альфу. Значит можно проще: $Text \"readme.txt\".
Вот ещё из хелпа вырезка:
А вообще, макросы - это ИМХО наверное лучшее что есть в FAR'e, т.ч. их обязательно нужно знать.
Вот ещё из хелпа вырезка:
Хотя, его нужно было прочитать до того как здесь писать.Фразу "$Text" можно не указывать, т.е. произвольный текст в двойных кавычках макродвижок воспримет как $Text. Исключение составляет ситуация, когда после двойной кавычки идет пробел - в этом случае "$Text" указывать обязательно.
А вообще, макросы - это ИМХО наверное лучшее что есть в FAR'e, т.ч. их обязательно нужно знать.
Сенк. Понял. По поводу $Text - Сперва так и делал - но не шло че-то. Потом нашел как записывать макросы, да и в инете macro.chm скачал.
ЗЫ: Если кому надо. Окончательно так:
"$if (fexist("read.me")) ShiftF4 r e a d . m e Enter CtrlEnd Enter $Text APanel.Current $Text " " $Else ShiftF4 r e a d . m e Enter $Text APanel.Current $Text " " $End"
ЗЫ: Если кому надо. Окончательно так:
"$if (fexist("read.me")) ShiftF4 r e a d . m e Enter CtrlEnd Enter $Text APanel.Current $Text " " $Else ShiftF4 r e a d . m e Enter $Text APanel.Current $Text " " $End"
редактор: как макросом узнать/проверить символ под курсором?
А если бы без копирования в буфер - вообще замечательно.
- zg
- zero-gravity
- Posts: 6035
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
чего там ждать. можно макрос сделать:Zeroes wrote:ждем-с
Code: Select all
REGEDIT4
[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\CtrlShiftZ]
"Sequence"="$IClip %a=Editor.Set(9,2); CtrlO Esc $MMode 1 AltIns End PgUp ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft Enter %a=Editor.Set(9,%a); %pos=0; $While(!Shell) F12 Up Enter %pos=%pos+1; $End F2 Ins Enter Down $Text "FAR Editor Symbol" Down $Text "set FAREDITORSYMBOL=" ShiftIns $IClip CtrlEnter Enter F2 Del Enter Esc F12 $Rep(%pos) Down %pos=%pos-1; $End Enter %a=Env("FAREDITORSYMBOL"); $If(index(%a,":")==7) %a=substr(%a,0,2); $Else %a=substr(%a,7,2); $End msgbox("",%a,0)"
"Description"="show hex code of symbol under cursor"
"DisableOutput"=dword:00000000
Разные макросы на одном хоткее.
Подскажите, пожалуйста, как повесить разные макросы на один и тотже хоткей в одной "области видимости".
Например, для разных действий при наличии выделения, и без.
Где-то была информация о том, что хоткей в реестре парсится до символа "@", но сейчас такие хоткеи вообще не срабатывают.
Тест. на "1.70 alpha 6 build 2051" Win2k RU SP4, WinXP EN SP2.
Например, для разных действий при наличии выделения, и без.
Где-то была информация о том, что хоткей в реестре парсится до символа "@", но сейчас такие хоткеи вообще не срабатывают.
Тест. на "1.70 alpha 6 build 2051" Win2k RU SP4, WinXP EN SP2.