англійськафранцузькаіспанська

Ad


Значок OnWorks

FvwmPerl - онлайн у хмарі

Запустіть FvwmPerl у постачальнику безкоштовного хостингу OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда FvwmPerl, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS.

ПРОГРАМА:

ІМ'Я


FvwmPerl - fvwm perl маніпулятор і препроцесор

СИНТАКСИС


FvwmPerl має бути створений fvwm(1) для нормальної роботи.

Щоб запустити цей модуль, розмістіть цю команду десь у конфігурації:

Модуль FvwmPerl [параметри]

або:

ModuleSynchronize FvwmPerl [параметри]

якщо ви хочете негайно почати надсилати команди до FvwmPerl.

ОПИС


Цей модуль призначений для розширення команд fvwm за допомогою сценаріїв perl. Це дозволяє
для вбудовування виразів perl у файли конфігурації fvwm і створення команд fvwm.

ІНВОКАЦІЯ


Якщо ви хочете викликати унікальний і постійний екземпляр FvwmPerl, пропонується
зробити це з StartFunction. Викликати його зверху також можливо, але це вимагає
деякі питання тут не обговорюються.

AddToFunc StartFunction I модуль FvwmPerl

Існує кілька перемикачів командного рядка:

FvwmPerl [ --eval рядок ] [ -- навантаження файл ] [ -- попередня обробка [ --цитата символ ] [ --winid wid ] [
--cmd ] [ --nosend ] [ --не видаляти ] [ рядок | файл ] ] [ --експорт [імена] ] [ -- залишитися ] [
--nolock ] [ псевдонім ]

Довгі перемикачі можуть скорочуватися до коротких однолітерних перемикачів.

-e|--eval рядок - оцінити заданий код Perl

-l|-- навантаження file - оцінити Perl-код у даному файлі

-p|-- попередня обробка [ файл ] - попередня обробка даного файлу конфігурації fvwm

Наступні 5 варіантів дійсні лише разом із -- попередня обробка варіант.

-c|--cmd рядок - команда fvwm для попередньої обробки замість файлу

-q|--цитата char - змінити цитату "%" за замовчуванням

-w|--winid wid - встановити явний контекст вікна (повинен починатися з цифри, може бути в жовтні або
шестигранна форма; цей ідентифікатор вікна замінює неявний контекст вікна, якщо такий є)

--nosend - не надсилати попередньо оброблений файл fvwm та цінності Читатиing, за замовчуванням є надсилання.
Корисно для попередньої обробки файлів конфігурації, які не є fvwm.

--не видаляти - не видаляйте попередньо оброблений файл після його відправлення fvwm та цінності Читатиing, the
за замовчуванням – видалити. Корисно для налагодження.

-x|--експорт [назви] - визначити функції ярликів fvwm (за замовчуванням дві функції імен
"Eval" і "."). Цей варіант має на увазі -- залишитися.

-s|-- залишитися - продовжує страту після --eval, -- навантаження or -- попередня обробка обробляються. За
за замовчуванням модуль у цьому випадку не є постійним, тобто --ностій передбачається.

--nolock - коли надано один із 3 варіантів дій, ця опція викликає розблокування fvwm
негайно. За замовчуванням запитувана дія виконується синхронно; це тільки робить
різниця при виклику, наприклад:

ModuleSynchronous FvwmPerl --попередньо обробляти someconfig.ppp

If --nolock додано тут, МодульСинхронний негайно повертається. Зауважте, що Модулі Умови повернення
негайно, незалежно від цього варіанту.

ВИКОРИСТАННЯ ALIAS


Псевдоніми дозволяють мати кілька викликів модулів і працювати окремо з усіма викликами,
ось приклад:

МодульSynchronous FvwmPerl FvwmPerl-JustTest
SendToModule FvwmPerl-JustTest eval $a = 2 + 2; $b = $a
SendToModule FvwmPerl-JustTest eval cmd("Echo 2 + 2 = $b")
KillModule FvwmPerl FvwmPerl-JustTest

ПЕРЕДОБРОБНА ОБРОБКА приклад


Одним з ефективних рішень обробки є передача всієї конфігурації fvwm
вбудований код perl у "FvwmPerl --preprocess". Альтернативний підхід — написати perl
сценарій, який створює команди fvwm і надсилає їх на виконання, цей сценарій може бути завантажений
за допомогою "FvwmPerl --load". Однак існують проміжні рішення, які лише попередньо обробляють
окремі рядки конфігурації (або, як альтернатива, виконайте окремі команди perl, які
створювати команди fvwm).

Наступний фрагмент коду додає можливість арифметики та написання рядкових сценаріїв до певних
рядки, які цього потребують. Щоб використовувати це, ви хочете запустити FvwmPerl як свою першу команду
що інші команди можна попросити попередньо обробити.

ModuleSynchronize FvwmPerl

AddToFunc .
+ Я SendToModule FvwmPerl попередньої обробки -c -- $*

. Exec exec xterm -name xterm-%{++$i}% # використовувати унікальне ім'я

. GotoDesk 0 %{ $[desk.n] + 1 }% # перейти до наступного столу

. Exec exec %{ -x "/usr/bin/X11/aterm" ? "aterm" : "xterm" }% -sb

# центрувати вікно
Далі (Моє вікно) . Перемістити \
%{($WIDTH - $[w.width]) / 2}%p %{($HEIGHT - $[w.height]) / 2}%p

. Exec exec xmessage %{2 + 2}% # простий калькулятор

. %{main::show_message(2 + 2, "Ще один калькулятор"); ""}%

ДІЇ


Існує кілька дій, які може виконувати FvwmPerl:

евал perl-код
Оцініть рядок коду perl.

Особлива функція cmd("команда") може використовуватися в коді Perl для відправки команд назад
fvwm.

Якщо код perl містить помилку, він друкується в стандартному потоці помилок за допомогою файлу
[FvwmPerl][eval]: заголовок додається.

загрузка ім'я файлу
Завантажте файл коду perl. Якщо файл не є повністю кваліфікованим, він шукається в
каталог користувача $FVWM_USERDIR (зазвичай ~/.fvwm) і загальносистемний каталог даних
$FVWM_DATADIR.

Особлива функція cmd("команда") може використовуватися в коді Perl для відправки команд назад
fvwm.

Якщо код perl містить помилку, він друкується в стандартному потоці помилок за допомогою файлу
[FvwmPerl][завантаження]: заголовок додається.

попередній процес [-q|--цитата символ] [-c|--cmd] [лінія | файл]
Попередня обробка конфігурації fvwm файл або (якщо вказано --cmd) лінія. Цей файл містить рядки, які
не торкаються (зазвичай команди fvwm) і спеціально попередньо відформатований код Perl, тобто
оброблено та замінено. Текст вкладений %{ ... }% роздільники, які можуть починатися де завгодно
на рядку і закінчується в будь-якому місці на тому ж чи іншому рядку, це код Perl.

Команда цитувати параметр змінює роздільники коду Perl. Якщо вказано один символ, наприклад
'@', роздільники є @{ ... }@. Якщо вказана цитата складається з 2 символів, лайк <>, цитати
він має <{ ... }>

Результат його оцінки замінюється кодом perl. Тобто %{$a = "c"; ++$a}%
замінюється на «d».

Оцінка не схожа евал та загрузка виконується в пакеті PreprocessNamespace
і без використання строгий, тож ви можете використовувати будь-які імена змінних без страху
конфлікти. Просто не використовуйте неініціалізовані змінні для позначення undef або порожнього списку (вони
може бути фактично ініціалізовано попередньою дією попередньої обробки), і виконайте очищення if
необхідний. Змінні та функції в основний пакет ще доступний, як
::cmd() або ::пропустити(), але це просто не гарна ідея, щоб отримати до них доступ під час
попередня обробка.

Є спеціальна функція включати(файл), який завантажує файл, попередньо обробляє його та
повертає результат попередньої обробки. Уникайте рекурсії.

Якщо будь-який вбудований perl-код містить помилку, він друкується зі стандартною помилкою
потік і додається до [FvwmPerl][попередній процес]: заголовок. Результат від
заміна в цьому випадку порожня.

У коді perl можна використовувати наступні змінні:

$USER, $DISPLAY, $WIDTH, $HEIGHT, $FVWM_VERSION, $FVWM_MODULEDIR, $FVWM_DATADIR,
$FVWM_USERDIR

Наведені нижче директиви на основі рядків розпізнаються під час попередньої обробки. Вони є
обробляється після заміни коду perl (якщо є).

%Повторювати вважати
Спричиняє повторення наступних рядків вважати раз.

%ModuleConfig назва модуля [знищити]
Інтерпретує наступні рядки як задану конфігурацію модуля. Якщо
"destroy" вказано, що попередня конфігурація модуля знищується першою.

%префікс префікс
До наступних рядків ставиться префікс у лапках префікс.

%кінець будь-який необов'язковий коментар
Завершує будь-яку з описаних вище директив, може бути вкладеною.

Приклади:

%Префікс "AddToFunc SwitchToWindow I"
Iconify вимкнено
Windowshade off
піднімати
WarpToWindow 50 50
% Кінець

%ModuleConfig FvwmPager знищити
Набір кольорів 0
Шрифт lucidasans-10
Настільна шкала 28
Міні-іконки
%End ModuleConfig FvwmPager

%Префікс "All (MyWindowToAnimate) ResizeMove"
100 100 %{($WIDTH - 100) / 2}% %{($HEIGHT - 100) / 2}%
%Повторити %{$count}%
br w+2c w+2c w-1c w-1c
% Кінець
%Повторити %{$count}%
br w-2c w-2c w+1c w+1c
% Кінець
% Кінцевий префікс

Також можуть бути вказані додаткові параметри попередньої обробки --nosend та --noremove. Побачити їх
опис у верхній частині.

експорт [назви функцій]
Відправити fvwm визначення функцій швидкого доступу, які допомагають активувати різні
дії модуля (тобто евал, загрузка та попередній процес).

Назви функцій (назви функцій) можна відокремлювати комами та/або пробілами. За замовчуванням,
дві функції "Eval" і "." припускаються.

Фактична дія, визначена у функції, вгадується з назви функції, якщо можливо,
де ім'я функції "." зарезервовано для попередній процес дії.

Наприклад, будь-яка з цих двох команд fvwm

SendToModule MyPerl експорт PerlEval,PP
FvwmPerl --експорт PerlEval,PP MyPerl

визначте такі дві функції швидкого доступу:

DestroyFunc PerlEval
AddToFunc I SendToModule MyPerl eval $*
DestroyFunc PP
AddToFunc I SendToModule MyPerl попередній процес -c -- $*

Ці 4 дії можна запросити одним із 3 способів: 1) у командному рядку, коли FvwmPerl
викликаний (у цьому випадку FvwmPerl є короткочасним, якщо -- залишитися or --експорт також дається), 2)
відправивши відповідне повідомлення в конфігурації fvwm за допомогою SendToModule, 3) за допомогою виклику
відповідна функція perl у коді perl.

ФУНКЦІЇ


Існує кілька функцій, які може викликати Perl-код:

cmd($fvwm_command)
В випадку евал or загрузка - відправити назад до fvwm рядок $fvwm_command. В випадку
попередній процес - додати рядок $fvwm_command на вихідний код вбудованого perl.

do_eval($perl_code)
Ця функція еквівалентна евал функціональність на струні $perl_code,
описано вище.

навантаження ($filename)
Ця функція еквівалентна загрузка описана функціональність у файлі $filename
вище.

попередня обробка(@params, ["-c $command"] [$filename])
Ця функція еквівалентна попередній процес функціональність із заданими параметрами
і описаний вище файл $filename.

експорт ($func_names, [$do_unexport])
Ця функція еквівалентна експорт функціональність із заданими $func_names,
описано вище. Може також неекспортувати імена функцій, якщо другий параметр істинний.

Назви функцій слід розділяти комами або/або пробілами. Якщо $func_names is
порожній, потім функції "Eval" і "." припускаються.

Стоп()
Завершує роботу модуля.

пропустити()
Пропускає решту коду зворотного виклику події, тобто модуль повертається для прослуховування нового
модульні події.

розблокувати()
Розриває синхронізацію зворотного виклику події з fvwm. Це може бути корисно для запобігання тупикових ситуацій,
тобто зазвичай fvwm вбиває модуль, що не відповідає, якщо зворотний виклик події не є
закінчив у ModuleTimeout секунд. Це перешкоджає цьому.

Цей приклад змушує FvwmPerl призупинити своє виконання на одну хвилину:

SendModule FvwmPerl eval unlock(); сон(60);

Однак переконайтеся, що fvwm не може надіслати нове повідомлення, поки модуль працює
зайнятий, і fvwm надто довго залишається заблокованим для цього нового повідомлення. Дивіться також від'єднати
рішення, якщо вам потрібні тривалі операції.

від'єднати ()
Розгалужується та від’єднується решта коду зворотного виклику події від основного процесу. Це може
бути корисним, щоб запобігти знищенню модуля, якщо його зворотний виклик події триватиме багато часу
завершити, і це можна зробити у відокремленої дитини. Відокремлена дитина може ще
надсилати команди до fvwm (не покладайтеся на це), але не отримувати події, звичайно, це
виходить відразу після завершення виконання зворотного виклику.

Якщо ви використовуєте від'єднати (), краще надсилати команди fvwm лише в одному процесі (основному або
відокремлений), інакше часто може викликати конфлікти.

show_message($msg, $title[, $use_stderr_too=1])
Показує діалогове вікно з даним повідомленням, використовуючи будь-який інструмент X, знайдений у
системи.

Читати FVWM::Модуль::Інструментарій::показати_повідомлення для отримання додаткової інформації.

ЗМІННІ


Існує кілька глобальних змінних основний простір імен, який може використовуватися в perl
Код:

$a, $b, ... $h
@a, @b, ... @h
%a, %b, ... %h

Усі вони ініціалізуються порожнім значенням і можуть використовуватися для збереження стану між ними
різні виклики дій FvwmPerl (евал та загрузка).

Якщо вам потрібні більш читабельні імена змінних, напишіть «без строгих 'vars';» на початку
кожен Perl-код або використовуйте для цього хеш, наприклад:

$h{id} = $h{first_name} . " " . $h{second_name}

або використовуйте назву пакета, наприклад:

@MyMenu::terminals = qw( xterm rxvt);
$MyMenu::item_num = @MyMenu::термінали;

Може бути опція конфігурації, щоб увімкнути та вимкнути суворість.

ПОВІДОМЛЕННЯ


FvwmPerl може отримувати повідомлення за допомогою команди fvwm SendToModule. Назви, значення і
параметри повідомлень такі ж, як і відповідні дії, описані вище.

Додатково повідомлення СТОП призводить до завершення роботи модуля.

Повідомлення неекспортувати [назви функцій] скасовує ефект експорт, описані в ДІЯХ
.

Повідомлення дамп видає вміст змінених змінних (поки що немає).

ПРИКЛАДИ


Простий тест:

SendToModule FvwmPerl eval $h{dir} = $ENV{HOME}
SendToModule FvwmPerl eval load($h{dir} . "/test.fpl")
SendToModule FvwmPerl завантажує $[HOME]/test.fpl
SendToModule FvwmPerl попередньої обробки config.ppp
SendToModule FvwmPerl експорт Eval,PerlEval,PerlLoad,PerlPP
SendToModule FvwmPerl деекспортувати PerlEval,PerlLoad,PerlPP
Зупинка SendToModule FvwmPerl

Наступний приклад обробляє кореневий фон у fvwmrc. Усі ці команди можна додати
до StartFunction.

Модуль FvwmPerl --експорт PerlEval

# знайти всі фонові піктограми для подальшого використання
PerlEval $a = $ENV{HOME} . "/bg"; \
opendir DIR, $a; @b = grep { /xpm$/ } readdir(DIR); закритий DIR

# створити меню фонових піктограм
AddToMenu MyBackgrounds "Мої фони" Назва
PerlEval foreach $b (@b) \
{ cmd("AddToMenu MyBackgrounds '$b' Exec fvwm-root $a/$b") }

# виберіть випадковий фон для завантаження під час запуску
PerlEval cmd("AddToFunc \
InitFunction + I Exec exec fvwm-root $a/" . $b[int(random(@b))])

ВТЕЧА


SendToModule як і будь-які інші команди fvwm, розширюють кілька змінних із префіксом у доларах.
Це може зіткнутися з доларами, які використовує Perl. Ви можете уникнути цього, додавши префікс SendToModule
з провідним тире. Наступні 2 рядки в кожній парі еквівалентні:

SendToModule FvwmPerl eval $$d = "$[DISPLAY]"
-SendToModule FvwmPerl eval $d = "$ENV{DISPLAY}"

SendToModule FvwmPerl eval \
cmd("Echo desk=$d, display=$$d")
Попередній процес SendToModule FvwmPerl -c \
Echo desk=%("$d")%, дисплей=%{$$d}%

Іншим рішенням, щоб уникнути екранування спеціальних символів, таких як долари та зворотні косі риски, є
створити файл perl у ~/.fvwm а потім завантажте його:

SendToModule FvwmPerl завантажує файл build-menus.fpl

Якщо вам потрібно попередньо обробити одну команду, яка починається з тире, вам слід перед цим використати
"--".

# це друкує поточний стіл, тобто "0"
Попередній процес SendToModule FvwmPerl -c Echo "$%{$a = "c"; ++$a}%"
# це друкує "$d"
Попередній процес SendToModule FvwmPerl -c -- -Echo "$%{"d"}%"
# це друкує "$d" (SendToModule розширює $$ до $)
Попередній процес SendToModule FvwmPerl -c -- -Echo "$$%{"d"}%"
# це друкує "$$d"
-SendToModule FvwmPerl попередній процес -c -- -Echo "$$%{"d"}%"

Знову ж таки, пропонується помістити вашу команду(и) у файл і натомість попередньо обробити файл.

ПЕРЕКЛАДИ


FvwmPerl написаний на perl і має справу з perl, слід відомому девізу perl:
«Є більше ніж один спосіб зробити це», тому вибір за вами.

Ось більше пар еквівалентних рядків:

Модуль FvwmPerl --load "my.fpl" --stay
Модуль FvwmPerl -e 'load("my.fpl")' -s

Попередній процес SendToModule FvwmPerl -- цитата '@' my.ppp
SendToModule FvwmPerl eval preprocess({quote => '@'}, "my.ppp");

Попередження, ви можете вплинути на роботу FvwmPerl, оцінивши відповідний код Perl, це
вважається особливістю, а не помилкою. Але, будь ласка, не робіть цього, напишіть свій власний модуль fvwm
натомість у perl.

Використовуйте FvwmPerl онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

  • 1
    ЛАГІТ
    ЛАГІТ
    SWIG – це інструмент розробки програмного забезпечення
    що з'єднує програми, написані на C і
    C++ з різноманітними високорівневими
    мови програмування. SWIG використовується з
    інший...
    Завантажити SWIG
  • 2
    Тема WooCommerce Nextjs React
    Тема WooCommerce Nextjs React
    Тема React WooCommerce, створена за допомогою
    Next JS, Webpack, Babel, Node і
    Express, використовуючи GraphQL і Apollo
    Клієнт. Магазин WooCommerce в React(
    містить: Продукти...
    Завантажте тему WooCommerce Nextjs React
  • 3
    archlabs_repo
    archlabs_repo
    Сховище пакетів для ArchLabs Це
    додаток, який також можна отримати
    від
    https://sourceforge.net/projects/archlabs-repo/.
    Його розміщено в OnWorks у...
    Завантажити archlabs_repo
  • 4
    Проект Зефір
    Проект Зефір
    Проект Zephyr – це нове покоління
    операційна система реального часу (RTOS).
    підтримує декілька апаратних засобів
    архітектури. Він заснований на а
    ядро малої площі...
    Завантажити Zephyr Project
  • 5
    SCONS
    SCONS
    SCons - це інструмент для створення програмного забезпечення
    що є кращою альтернативою
    класичний інструмент "Make" для створення
    ми всі знаємо і любимо. SCons є
    впроваджено...
    Завантажити SCons
  • 6
    PSeInt
    PSeInt
    PSeInt - це інтерпретатор псевдокоду для
    іспаномовні студенти програмування.
    Його головне призначення – бути інструментом для
    навчання та розуміння основ
    концепція...
    Завантажити PSeInt
  • Детальніше »

Команди Linux

Ad