.TH MCEDIT 1 "%DATE_OF_MAN_PAGE%" "ПН верзија %MAN_VERSION%" "ГНУ\-ов Поноћни наредник"
.SH НАЗИВ
mcedit \- Уграђени уређивач датотека ГНУ\-овог Поноћног наредника.
.SH УПОТРЕБА
.B mcedit
[\-bcCdfhstVx?] [+брлиније] [дато1] [дато2] ...
.PP
.B mcedit
[\-bcCdfhstVx?] дато1:брлиније[:] дато2:брлиније[:] ...
.SH ОПИС
.LP
mcedit је веза ка
.BR mc ,
главној извршној датотеци ГНУ\-овог Поноћног наредника. Извршавање ГНУ\-овог
Поноћног наредника преко овог имена покреће уграђени уређивач и отвара датотеке
које су задате у командној линији. Уређивач је заснован на терминалској верзији
.BR cooledit \-а
\- самосталног уређивача за Прозорски систем X.
.SH ОПЦИЈЕ
.TP
.I "+брлиније"
Иде на линију задату бројем (немојте стављати размак између знака
.I "+"
и броја). Дозвољено је више бројева линија, али само ће последњи бити коришћен,
и он ће се односити само на прву датотеку.
.TP
.I "\-b"
Намеће црно\-бели приказ.
.TP
.I "\-c"
Намеће режим боја ANSI на терминалима који делују као да немају подршку за боје.
.TP
.I "\-C <кљреч>=<бојапро>,<бојапоз>,<атрибути>:<кљреч>= ..."
Задаје другачији скуп боја. Видети одељак
.B Боје
у mc(1) за више информација.
.TP
.I "\-d"
Деактивира подршку за миша.
.TP
.I "\-f"
Приказује укомпајлиране путање за претрагу за датотеке са подацима ГНУ\-овог
Поноћног наредника.
.TP
.I "\-t"
Намеће употребу базе termcap уместо terminfo. Ова опција се примењује само ако
је ГНУ\-ов Поноћни наредник компајлиран са библиотеком S\-Lang уз подршку за
terminfo.
.TP
.I "\-V"
Приказује верзију програма.
.TP
.I "\-x"
Намеће xterm режим. Користи се на терминалима сагласним са xterm\-ом (два
екранска режима и способност за слање ескејп секвенци миша).
.SH ОДЛИКЕ
Уграђени уређивач датотека је потпуни прозорски уређивач. Он може да истовремено
уређује неколико датотека. Максимална величина сваке датотеке је 64 мегабајта.
Могу се уређивати бинарне датотеке. Одлике које тренутно подржава су: копирање
блокова, премештање, брисање, исецање, лепљење; опозив тастер\-по\-тастер;
падајући менији; убацивање датотека; макро наредбе; претрага и замена регуларним
изразима; означавање текста преко shift\-стрелица (ако је подржано од стране
терминала); смена уметања/преписивања; аутоматско увлачење; подесива величина
tab\-а; истицање синтаксе за разне врсте датотека, и опција за pipe\-овање
блокова текста наредбама љуске као што су indent и ispell.
.PP
Свака датотека се отвара у засебном прозору у режиму пуног екрана. Контрола
прозора у mcedit\-у је слична контроли прозора у другим вишепрозорским
програмима: двоструки притисак на наслов прозора максимизује прозор до пуног
екрана или враћа величину и положај прозора; притисак левим дугметом миша на
наслову прозора уз превлачење миша помера тај прозор у области уређивача;
притисак левим дугметом на доњи десни угао оквира уз превлачење мења величину
прозора. Ове акције се могу извести из менија „Прозор“.
.SH ПРЕЧИЦЕ
Уређивач је лак за коришћење и може се користити без учења. Падајући мени се
отвара притиском на F9. Можете научити остале пречице из менија и са натписа на
дугмадима са траке дугмади.
.PP
Уз то, Shift у комбинацији са стрелицама означава текст (ако то подржава
терминал):
.B Ctrl\-Ins
копира у датотеку
.BR ~/.cache/mc/mcedit/mcedit.clip ,
.B Shift\-Ins
лепи из
.BR ~/.cache/mc/mcedit/mcedit.clip ,
.B Shift\-Del
исеца у
.BR ~/.cache/mc/mcedit/mcedit.clip ,
а
.B Ctrl\-Del
брише означени текст. Означавање мишем такође функционише на неким терминалима.
Да бисте користили стандардну подршку за миша коју обезбеђује ваш терминал,
притисните тастер Shift. Имајте у виду да подршка за миша у терминалу не дели
клипборд са програмом
.BR mcedit .
.PP
Пречица за довршавање (обично
.B "Meta\-Tab"
или
.BR "Escape Tab" )
довршава реч под курсором користећи речи из датотеке.
.SH МАКРОИ
.PP
Да бисте дефинисали макро, притисните
.B Ctrl\-R
и онда укуцајте тастере које желите да извршите. Притисните
.B Ctrl\-R
поново када сте готови. Макро се може доделити било којој пречици притиском на
њу. Макро ће бити извршен када притиснете додељену пречицу.
.PP
Макро наредбе се смештају у одељак
.B [editor]
датотеке
.BR ~/.local/share/mc/mc.macros .
.PP
Спољашњи скриптови (филтери) се могу доделити било којој пречици уређивањем
.B mc.macros
на следећи начин:
.PP
.nf
[editor]
ctrl\-W=ExecuteScript:25;
.fi
.PP
Ово значи да пречица Ctrl\-W започиње акцију
.IR ExecuteScript(25) ,
а затим руковалац уређивачем преводи ово у извршавање скрипта љуске
.BR ~/.local/share/mc/mcedit/macros.d/macro.25.sh .
.PP
Спољашњи скриптови се чувају у директоријуму
.B ~/.local/share/mc/mcedit/macros.d/
и морају се називати
.B macro.XXXX.sh
где је
.B XXXX
број од 0 до 9999. Видети
.B Уреди датотеку менија
за више детаља о формату скрипта.
.PP
Могу се користити следеће дефиниције макроа и директиве:
.TP
.I #silent
Ако је постављена ова директива, скрипт се покреће без интерактивне подљуске.
.TP
.I %c
Број позиције колоне курсора.
.TP
.I %i
Увлачење размацима до колоне курсора.
.TP
.I %y
Врста синтаксе текуће датотеке.
.TP
.I %b
Назив блок датотеке.
.TP
.I %f
Назив текуће датотеке.
.TP
.I %n
Само назив текуће датотеке, без екстензије.
.TP
.I %x
Екстензија текуће датотеке.
.TP
.I %d
Назив текућег директоријума.
.TP
.I %F
Текућа датотека у неизабраном панелу.
.TP
.I %D
Назив директоријума неизабраног панела.
.TP
.I %t
Тренутно означене датотеке.
.TP
.I %T
Означене датотеке у неизабраном панелу.
.TP
.IR %u " и " %U
Слично макроима
.I %t
и
.IR %T ,
али као додатак датотекама које су означене. Можете користити овај макро само
једном по ставци менија или ставци датотеке са екстензијама, јер следећи пут
неће бити означених датотека.
.TP
.IR %s " и " %S
Изабране датотеке: Означене датотеке ако их има, иначе, текућа датотека.
.PP
По потреби, можете слободно уређивати ове датотеке. Ево примера екстерног
скрипта:
.PP
.nf
l избор коментара
TMPFILE=`mktemp ${MC_TMPDIR:\-/tmp}/up.XXXXXX` || exit 1
echo #if 0 > $TMPFILE
cat %b >> $TMPFILE
echo #endif >> $TMPFILE
cat $TMPFILE > %b
rm \-f $TMPFILE
.fi
.PP
Ако неки тастери не раде, можете користити
.B Научи тастере
у менију
.BR Опције .
.SH НАВИГАЦИЈА КОДОМ
.B mcedit
се може користити за навигацију кодом преко tags датотека креираних наредбом
etags или ctags. Ако нема датотеке TAGS, навигација кодом неће радити. На
пример, у случају exuberant\-ctags\-а за језик C, наредба ће бити:
.PP
ctags \-e \-\-language\-force=C \-R ./
.PP
.B Meta\-Enter
приказује листу за избор ставке под курсором (курсор треба да буде на крају
речи).
.PP
.BR Meta\-Минус ,
где је минус симбол „\-“, иде на претходну функцију у листи за навигацију (као
дугме Назад у веб читачу).
.PP
.BR Meta\-Једнако ,
где је једнако симбол „=“, иде на следећу функцију у листи за навигацију (као
дугме Напред у веб читачу).
.PP
.SH ИСТИЦАЊЕ СИНТАКСЕ
.B mcedit
подржава истицање синтаксе. То значи да ће кључне речи и контексти (нпр.
коментари у C\-у, константне ниске, итд.) бити истакнути у различитим бојама.
Следећи одељак објашњава формат датотеке
.BR ~/.local/share/mc/syntax/Syntax .
Ако ове датотеке нема, користиће се системска
.BR %pkgdatadir%/syntax/Syntax .
Датотека
.B ~/.local/share/mc/syntax/Syntax
ће бити поновно учитана при отварању сваке нове датотеке у уређивачу. Она садржи
правила за истицање, од којих је свако у засебној линији, и дефинише које кључне
речи ће бити истакнуте којом бојом.
.PP
Ова датотека је подељена у одељке, од којих сваки почиње линијом са наредбом
.BR file .
Одељци се обично смештају у засебне датотеке наредбом
.BR include .
.PP
Наредба
.B file
има три аргумента. Први аргумент је регуларни израз који се примењује на назив
датотеке да би се установило да ли је следећи одељак примењив на датотеку. Други
аргумент је опис врсте датотеке. Он се користи у
.BR cooledit \-у;
и будуће верзије
.BR mcedit \-а
га могу користити. Трећи опциони аргумент је регуларни израз који одговара првој
линији текста датотеке. Правила у следећем одељку се примењују ако их
задовољавају било назив датотеке било прва линија датотеке.
.PP
Одељак се завршава почетком другог. Сваки одељак се дели у контексте, а сваки
контекст садржи правила. Контекст је опсег текста коме одговара одређени скуп
правила. На пример, текст у оквиру коментара у стилу језика C (тј. између
.B /*
и
.BR */ )
има посебну боју. Ово је контекст, иако у оквиру себе нема других правила, јер
највероватније нема ничега што бисмо желели да истакнемо у оквиру C коментара.
.PP
Тривијални одељак за програмирање у C\-у може да буде:
.PP
.nf
file .\e*\e\e.c C\esProgram\esFile (#include|/\e\e\e*)
wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_
# подразумеване боје
define comment brown
context default
keyword whole if yellow
keyword whole else yellow
keyword whole for yellow
keyword whole while yellow
keyword whole do yellow
keyword whole switch yellow
keyword whole case yellow
keyword whole static yellow
keyword whole extern yellow
keyword { brightcyan
keyword } brightcyan
keyword '*' green
# C коментари
context /\e* \e*/ comment
# C претпроцесорске директиве
context linestart # \en red
keyword \e\e\en brightred
# C константне ниске
context " " green
keyword %d brightgreen
keyword %s brightgreen
keyword %c brightgreen
keyword \e\e" brightgreen
.fi
.PP
Сваки контекст почиње линијом облика:
.PP
.B context
.RB [ exclusive ]
.RB [ whole | wholeright | wholeleft ]
.RB [ linestart ]
.I раздвајач
.RB [ linestart ]
.I раздвајач
.RI [ прочеље ]
.RI [ позадина ]
.RI [ атрибути ]
.PP
Први контекст је изузетак. Он мора почети наредбом
.PP
.B context default
.RI [ прочеље ]
.RI [ позадина ]
.RI [ атрибути ]
.PP
иначе ће
.B mcedit
пријавити грешку. Опција
.B linestart
налаже да
.I раздвајач
мора почети на почетку линије. Опција
.B whole
значи да
.I раздвајач
мора бити цела реч. Да би се задало да реч мора почети на граници речи само
слева, можете користити опцију
.BR wholeleft ,
и, слично, реч која се мора завршити на крају речи се задаје са
.BR wholeright .
.PP
Скуп знакова који чине целу реч се може у сваком тренутку променити у датотеци
наредбом
.BR wholechars .
Леви и десни скуп знакова се могу задати одвојено преко
.PP
.B wholechars
.RB [ left | right ]
.I знакови
.PP
Опција
.B exclusive
налаже да текст између раздвајача буде истакнут, али не и раздвајачи.
.PP
Свако правило је линија у облику:
.PP
.B keyword
.RB [ whole | wholeright | wholeleft ]
.RB [ linestart ]
.I ниска прочеље
.RI [ позадина ]
.RI [ атрибути ]
.PP
Контекст или ниске кључних речи се интерпретирају, тако да можете укључити
tab\-ове и размаке преко секвенци \et и \es. Знакови за нови ред и обрнуте косе
црте се задају преко \en и \e\e, тим редом. Пошто се белине користе као
раздвајачи, не могу се користити директно. Такође, \e* се мора користити за
задавање звездице. Знак * је џокерски знак који одговара било којем броју
знакова. На пример,
.PP
.nf
keyword '*' green
.fi
.PP
боји све знаковне константе у C\-у зелено. Можете користити и
.PP
.nf
keyword "*" green
.fi
.PP
да бисте обојили константне ниске, али нисци која се упоређује неће бити
дозвољено да се простире преко неколико знакова за нови ред. Џокерски знак се
може користити и унутар раздвајача контекста, али не може бити последњи нити
први знак.
.PP
Битно је истаћи линију
.PP
.nf
keyword \e\e\en brightgreen
.fi
.PP
Ова линија дефинише кључну реч која садржи обрнуту косу црту и знак за нови ред.
Пошто се кључне речи упоређују пре раздвајача контекста, ова кључна реч спречава
завршавање контекста на крају линија које се завршавају обрнутом косом цртом,
дозвољавајући претпроцесорској директиви C\-а да се простире преко неколико
линија.
.PP
Могуће боје су: black, gray, red, brightred, green, brightgreen, brown, yellow,
blue, brightblue, magenta, brightmagenta, cyan, brightcyan, lightgray и white.
Посебна кључна реч „default“ значи подразумевану боју терминала. Друга посебна
кључна реч „base“ значи основну боју ПН\-а, и корисна је као заузимач места ако
желите да задате атрибуте без измене позадинске боје. Када је доступно 256 боја,
оне се могу задати било као color16 до color255, било као rgb000 до rgb555 и
gray0 до gray23.
.PP
Ако се датотеке синтаксе дели са програмом
.BR cooledit ,
могу се задати различите боје за
.B mcedit
и
.B cooledit
раздвајањем косом цртом, нпр.
.PP
.nf
keyword #include red/Orange
.fi
.PP
.B mcedit
користи боју пре косе црте. Видети cooledit(1) за боје које подржава
.BR cooledit .
.PP
Атрибути могу бити било која комбинација bold, italic, underline, reverse и
blink, уз додат знак плус ако се жели више од једног.
.PP
Коментари се могу додати у засебним линијама које почињу знаком тараба (#).
.PP
Ако описујете језик који не разликује мала и велика слова, морате користити
директиву
.BR caseinsensitive .
Њу треба задати на почетку датотеке синтаксе.
.PP
Због једноставности имплементације, постоји неколико детаља који неће бити
исправно решени, али је то мања непогодност. У целини, ова једноставна правила
покривају широки спектар веома компликованих ситуација. Добра је идеја да се
погледа датотека синтаксе да би се видели неки згодни трикови које можете
извести уз мало домишљатости. Ако вам не помажу правила која сам кодирао, а
сматрате да имате правило које би било корисно, пошаљите ми мејл са захтевом.
Ипак, немојте тражити подршку за регуларне изразе, јер је то просто немогуће.
.PP
Користан савет је да се ради што више са оним што можете уместо да се покушава
оно са чим се ова имплементација не може изборити. Такође, сетите се да је циљ
истицања синтаксе да се програмирање учини мање подложним грешкама, а не да се
код учини лепшим.
.PP
Истицање синтаксе се може сменити пречицом Ctrl\-s.
.SH БОЈЕ
Подразумеване боје се могу променити додавањем променљивој окружења
.BR MC_COLOR_TABLE .
Парови боја прочеља и позадине се могу задати, на пример, преко:
.PP
.nf
MC_COLOR_TABLE="$MC_COLOR_TABLE:\e
editnormal=lightgray,black:\e
editbold=yellow,black:\e
editmarked=black,cyan"
.fi
.SH ОПЦИЈЕ
Већина опција се може подесити из дијалога Опције. Видети мени
.BR Опције .
Следеће опције су дефинисане у
.B ~/.config/mc/ini
и имају очигледне парњаке у дијалогу. Можете их изменити да бисте променили
начин понашања уређивача, изменом датотеке. Осим уколико је другачије наведено,
1 укључује опцију, а 0 је искључује, као и обично.
.TP
.I use_internal_edit
Ова опција се игнорише при покретању
.BR mcedit \-а.
.TP
.I editor_tab_spacing
Интерпретира знак tab као да је ове дужине. Подразумевано је 8. Избегавајте да
користите више од 8, јер већина других уређивача и прегледача текста подразумева
величину 8. Можете користити
.B editor_fake_half_tabs
да бисте симулирали мању величину tab\-а.
.TP
.I editor_fill_tabs_with_spaces
Никад не убацује знак tab. Уместо тога, убацује размаке (ascii 32) да се попуни
жељена величина tab\-а.
.TP
.I editor_return_does_auto_indent
Притисак на return ће допунити увлачење тако да одговара првој линији изнад која
садржи текст.
.TP
.I editor_backspace_through_tabs
Чини да један притисак на backspace брише све размаке до леве маргине у случају
да нема текста између курсора и леве маргине.
.TP
.I editor_fake_half_tabs
Ово ће емулирати полу\-tab за оне који желе да програмирају са tab\-ом ширине 4,
али не желе да се величина tab\-а мења од 8 (тако да код буде форматиран на исти
начин када буде приказан од стране других програма). При уређивању између текста
и леве маргине, померање и додавање tab\-ова ће се вршити као да је величина
tab\-а 4, уз употребу размака и обичних tab\-ова за оптималну попуну. При
уређивању било где другде, убацује се обичан tab.
.TP
.I editor_option_save_mode
Могуће вредности су 0, 1 и 2. Режим чувања (такође видети мени Опције) вам
омогућава промену режима чувања датотеке. Брзо чување (0) чува датотеку одмах,
смањујући величину датотеке на диску на дужину нула (тј. бришући га), а затим
уписујући садржај у датотеку. Овај метод је брз али опасан, зато што ће
системске грешке током чувања датотеке парцијално уписати датотеку, потенцијално
учинивши податке немогућим за опоравак. При чувању, опција безбедног чувања (1)
допушта креирање привремене датотеке у коју се прво уписује садржај датотеке. У
случају проблема, полазна датотека остаје нетакнута. Када се привремена датотека
успешно упише, преименује се у назив полазне датотеке, заменивши је.
Најсигурнији метод је креирање резервних примерака (2): резервна датотека се
креира пре него што су учињене измене. Можете задати сопствену екстензију
резервних датотека у дијалогу. Приметите да ће чување два пута заменити и
резервну и полазну датотеку.
.TP
.I editor_word_wrap_line_length
Дужина линије на којој се прелама. Подразумевано је 72.
.TP
.I editor_backup_extension
Симбол који се додаје резервним датотекама. Подразумевано је „~“.
.TP
.I editor_line_state
Приказује статусну линију уређивача. За сада, она приказује број текуће линије
(у будућности ће можда приказивати ствари попут сажимања, тачака прекида, итд.).
M\-n смењује ову опцију.
.TP
.I editor_visible_spaces
Смењује „прикажи видљиве размаке на крају“. Ако је editor_visible_spaces=1, они
се приказују као „.“.
.TP
.I editor_visible_tabs
Смењује „прикажи видљиве tab\-ове“. Ако је editor_visible_tabs=1, tab\-ови се
приказују као „<\-\-\-\->“.
.TP
.I editor_persistent_selections
Не уклања изабрани блок после кретања курсором.
.TP
.I editor_drop_selection_on_copy
Поново поставља (уклања) избор после копирања на клипборд:
.TP
.I editor_cursor_beyond_eol
Дозвољава померање курсора после краја линије.
.TP
.I editor_cursor_after_inserted_block
Дозвољава померање курсора после убаченог блока.
.TP
.I editor_syntax_highlighting
Активира истицање синтаксе.
.TP
.I editor_edit_confirm_save
Приказује дијалог за потврду приликом чувања.
.TP
.I editor_option_typewriter_wrap
биће описано
.TP
.I editor_option_auto_para_formatting
биће описано
.TP
.I editor_option_save_position
Чува позицију датотеке приликом изласка.
.TP
.I source_codepage
Симболичка представа кодне стране датотеке (нпр. CP1251, ~ \- подразумевано).
.TP
.I editor_group_undo
Комбинује акције опозива за више акција исте врсте (убацивање/преписивање,
брисање, навигација, куцање)
.TP
.I editor_wordcompletion_collect_entire_file
Тражи кандидате за аутоматско довршавање у целој датотеци (1) или само од
почетка датотеке до позиције курсора (0).
.TP
.I editor_wordcompletion_collect_all_files
Тражи кандидате за аутоматско довршавање из свих учитаних датотека (1,
подразумевано), а не само из текуће (0).
.TP
.I spell_language
Језик за проверу правописа (en, en\-variant_0, ru, итд.) који је инсталиран са
пакетом aspell (пун списак се може добити користећи алат „aspell“). Користите
.B spell_language = NONE
за деактивирање подршке за aspell. Подразумевана вредност је „en“. Опција се
мора налазити у одељку [Misc].
.TP
.I editor_stop_format_chars
Скуп знакова за заустављање форматирања пасуса. Ако се један од тих знакова
налази на почетку линије, она и све наредне линије пасуса ће бити нетакнуте.
Подразумевана вредност је
"\fB-\fR\fB+\fR\fB*\fR\fB\e\fR\fB,\fR\fB.\fR\fB;\fR\fB:\fR\fB&\fR\fB>\fR".
.TP
.I editor_state_full_filename
Приказује пуну путању у статусној линији. Ако је деактивирано (подразумевано),
приказује се само основни назив датотеке.
.SH ДАТОТЕКЕ
.I %pkgdatadir%/help/mc.hlp
.IP
Датотека помоћи за овај програм.
.PP
.I %pkgdatadir%/mc.ini
.IP
Подразумевана системска подешавања ГНУ\-овог Поноћног наредника, која се користе
само ако не постоји корисничка датотека ~/.config/mc/ini.
.PP
.I %pkgdatadir%/mc.lib
.IP
Глобална подешавања Поноћног наредника. Подешавања у овој датотеци утичу на све
кориснике, без обзира на то да ли имају ~/.config/mc/ini или не.
.PP
.I %pkgdatadir%/syntax/*
.IP
Подразумеване системске датотеке синтаксе mcedit\-а, које се користе само ако не
постоји корисничка датотека у
.BR ~/.local/share/mc/syntax/ .
.PP
.I ~/.config/mc/ini
.IP
Корисничка подешавања. Ако је ова датотека присутна, онда се подешавања
учитавају одавде уместо из системске датотеке са подешавањима.
.PP
.I ~/.local/share/mc/mcedit/
.IP
Кориснички директоријум у коме се обрађују и чувају наредбе са блоковима, и у
коме су корисничке датотеке синтаксе.
.SH ЛИЦЕНЦА
Овај програм се расподељује под одредбама ГНУ\-ове опште јавне лиценце коју је
објавила Задужбина за слободни софтвер. Погледајте уграђену помоћ Поноћног
наредника за детаље о Лиценци и одсуству гаранције.
.SH ДОСТУПНОСТ
Најновија верзија овог програма се може наћи на адреси
https://ftp.osuosl.org/pub/midnightcommander/ .
.SH ВИДЕТИ И
cooledit(1), mc(1), gpm(1), terminfo(1), scanf(3).
.SH АУТОРИ
Пол Шир (Paul Sheer, psheer@obsidian.co.za) је првобитни аутор уграђеног
уређивача Поноћног наредника.
.SH ГРЕШКЕ
Грешке пријављивати на https://github.com/MidnightCommander/mc/issues .