Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore 2013_vi_vim_ru

2013_vi_vim_ru

Published by faustkeller, 2017-09-07 00:23:54

Description: 2013_vi_vim_ru

Search

Read the Text Version

Редакторы vi, ex и Vim 451sourceso fileСчит­ ыв­ ае­ т и вып­ олн­ я­ет ко­ман­ды ex из файл­ а file.Пример :so $HOME/.exrcsplit[count] sp [+num] [filename]Разд­ ел­ я­ет тек­ ущ­ ее окн­ о и заг­ руж­ а­ет в но­вое окн­ о файл filename или те­ку­щий бу­фер, есл­ и filename не за­дан. Выс­ о­та но­во­го ок­на за­дае­ т­ся рав­ной count или, есл­ и count не указ­ ан, ок­но раз­де­ля­етс­ я на равн­ ые час­ти.При нал­ и­чии арг­ ум­ ент­ а +num ред­ ак­тир­ ов­ ан­ ие на­чи­на­ет­ся со стро­киnum. Кром­ е тог­ о, num мож­ ет быть шаб­ло­ном вид­ а /pattern. {Vim}sprevious[count] spr [+num]Разд­ е­ляе­ т тек­ ущ­ ее ок­но и на­чин­ а­ет ред­ акт­ и­ро­ва­ние пре­дыд­ ущ­ е­го фай­ла в спи­ске арг­ ум­ ент­ ов ком­ андн­ ой стро­ки. Ес­ли ука­зан count, ре­дак­ти­ру­ет­ся count-й пре­ды­ду­щий файл в  спис­ ке. При нал­ и­чии ар­гу­мен­та+num ред­ акт­ и­ро­ван­ ие на­чин­ ае­ т­ся со строк­ и num. Кро­ме то­го, num мо­жет быть шаб­ло­ном ви­да /pattern. {Vim}stopstПри­ост­ а­навл­ и­ва­ет тек­ ущ­ ий сеа­ нс ред­ акт­ ир­ ов­ а­ния. Дей­ств­ ие ана­лог­ ич­но CTRL-Z. Для восс­ тан­ ов­ле­ния се­анс­ а введ­ ит­ е ко­манд­ у обол­ очк­ и fg.substitute[address] s [/pattern/replacement/] [options] [count]Зам­ ен­ я­ет пер­вое вхож­ ­де­ние pattern в  каж­дой из ука­занн­ ых строк наreplacement. Есл­ и pattern и replacement не указ­ ан­ ы, по­вто­ряе­ т пос­ лед­нюю за­мен­ у. count опр­ ед­ е­ляе­ т ко­лич­ е­ств­ о строк, в ко­то­рых нуж­но про­изв­ о­дить за­ме­ну, нач­ ин­ ая с  address. (Нес­ ок­ ра­щен­ная фор­ма ком­ анд­ ыне раб­ от­ ае­ т в Solaris vi.)Опции c При кажд­ ой зам­ е­не зап­ раш­ ив­ а­ет под­твер­жден­ ие. g За­ме­няе­ т все вхо­жд­ е­ния pattern в кажд­ ой стро­ке (гло­бальн­ ая за­ ме­на). p Вы­вод­ ит пос­ лед­нюю стро­ку, в кот­ о­рой бы­ла сдел­ ан­ а зам­ е­на.

452 Приложение A Примеры Зам­ ен­ ить текст в перв­ ых 10 строк­ ах :1,10s/yes/no/g Глоб­ аль­ная зам­ ен­ а с подт­ верж­ ден­ и­ем :%s/[Hh]ello/Hi/gc Сдел­ ать в сле­дую­щих трех стро­ках :s/Fortran/\U&/ 3 про­писн­ ые бу­кв­ ы у «Fortran» Кажд­ ой стро­ке, нач­ ин­ ающ­ ей­ся с одн­ ой :g/^[0-9][0-9]*/s//Line &:/ или нес­ коль­ких цифр, прип­ ис­ ать «Line» и двоет­ оч­ ие suspend su При­ос­тан­ ав­ли­ва­ет те­кущ­ ий се­анс ре­дакт­ и­ро­ва­ния. Ко­манд­ а ана­лог­ ич­ на CTRL-Z. Для вос­ста­новл­ ен­ ия се­ан­са вве­дит­ е ко­манд­ у обо­лоч­ки fg. sview [count] sv [+num] [filename] Эк­вив­ ал­ ентн­ а ком­ ан­де split, но для нов­ о­го бу­фер­ а ус­та­навл­ ив­ ае­ тс­ я оп­ ция readonly. {Vim} t [address] t destination Коп­ ир­ уе­ т строк­ и, со­держ­ ащ­ иес­ я в  address, в  (to) указ­ анн­ ый адр­ ес destination. t экв­ ив­ а­лентн­ а copy. Пример Коп­ ир­ у­ет файл и до­бавл­ яе­ т его в кон­ ец :%t$ tag [address] ta tag В файл­ е tags нах­ од­ ит файл и строк­ у, соо­ тв­ етс­ тв­ ую­щую тег­ у tag, по­сле чег­ о на­чи­нае­ т ре­дакт­ ир­ ов­ а­ние от­туд­ а. Пример За­пуст­ и­те ctags, за­тем пе­ре­ключ­ ит­ есь в файл, сод­ ер­жащ­ ий myfunction: :!ctags *.c :tag myfunction tags tags Вы­вод­ ит спи­сок тег­ ов из стек­ а тег­ ов. {Vim}

Редакторы vi, ex и Vim 453unabbreviateuna wordУбр­ ать сло­во word из спис­ ка аб­брев­ иа­тур.undouОтм­ ен­ ить изм­ е­не­ния, про­дел­ анн­ ые по­след­ней ко­манд­ ой ред­ акт­ ир­ ов­ а­ния. В vi ком­ анд­ а отм­ ен­ ы от­ме­няе­ т сам­ у се­бя, так­ им об­ра­зом прои­ зв­ о­дя вос­стан­ овл­ ен­ ие. Vim подд­ ер­жив­ а­ет нес­ коль­ко уровн­ ей отм­ е­ны. Дляпов­ торн­ ог­ о прим­ е­нен­ ия отм­ ен­ ен­но­го дейс­ т­вия в Vim ис­польз­ уй­те redo.unhide[count] unhРаз­де­ля­ет экр­ ан так, чтоб­ ы в кажд­ ом окн­ е был пок­ а­зан ак­тивн­ ый бу­фер из спис­ ка бу­фе­ров. Есл­ и ука­зан count, то он ог­ран­ и­чив­ ае­ т ко­ли­че­ств­ о окон. {Vim}unmapunm[!] stringУда­лить строк­ у string из спи­ска мак­ро­сов кла­виа­тур­ ы. Для удал­ ен­ иямак­рос­ а реж­ им­ а ввод­ а исп­ оль­зуе­ тс­ я !.v[address] v/pattern/[command]Вы­пол­ня­ет ком­ ан­ду command для всех строк, не со­дер­жа­щих pattern.Ес­ли command не указ­ ан­ а, эти стро­ки вы­вод­ ятс­ я. v эк­вив­ ал­ ентн­ а g!. Смglobal ран­ ее в этом спи­ске.Пример Уда­лить все строк­ и, за иск­ люч­ ен­ ие­ м строк с «#include» :v/#include/dversionveВы­во­дит тек­ ущ­ ую верс­ ию ред­ ак­то­ра и дат­ у пос­ ледн­ ег­ о из­мен­ ен­ ия.viewvie[[+num] filename]Экв­ ив­ ал­ ент­на ко­ман­де edit, но для фай­ла уст­ а­нав­лив­ а­етс­ я опц­ ия read­only. Ес­ли вы­пол­нить в реж­ им­ е ex, воз­вращ­ ае­ т в норм­ аль­ный или виз­ у­аль­ный ре­жим. {Vim}

454 Приложение A visual [address] vi [type] [count] За­пуск­ а­ет виз­ у­аль­ный реж­ им (vi) на строк­ е, ука­занн­ ой в address. Вер­ нуть­ся в реж­ им ex можн­ о, наж­ ав Q. type за­мен­ я­ет­ся на -, ^ или . (см. ко­ ман­ду z ниж­ е в этом разд­ ел­ е). visual vi [+num] file Нач­ ать ред­ ак­тир­ ов­ ан­ ие файл­ а в виз­ у­аль­ном ре­жим­ е (vi), опционально – на строк­ е num. Кром­ е то­го, num мож­ ет быть шаб­ло­ном вид­ а /pattern. {Vim} vsplit [count] vs [+num] [filename] Ана­ло­гич­на ко­манд­ е split, но экр­ ан раз­де­ля­ет­ся верт­ ик­ аль­но. Ар­гу­ мент count мо­жет ис­польз­ о­вать­ся для ука­за­ния шир­ ин­ ы нов­ о­го окн­ а. {Vim} wall wa[!] За­пи­сы­ва­ет все изм­ ен­ енн­ ые бу­фер­ ы в файл­ ы. Для за­пис­ и бу­фер­ ов, по­ ме­чен­ных как readonly, исп­ оль­зуй­те !. {Vim} wnext [count] wn[!] [[+num] filename] Сох­ ра­няе­ т те­ку­щий бу­фер и от­кры­ва­ет сле­дую­щий файл из спи­ска ар­ гу­мен­тов ли­бо count-й след­ ую­щий файл при за­дан­ном count. Есл­ и при­ вед­ ен­ о имя фай­ла filename, то этот файл ред­ акт­ ир­ у­ет­ся сле­дующ­ им. При нал­ ич­ ии арг­ у­мент­ а +num ред­ ак­ти­ров­ а­ние нач­ и­на­етс­ я на стро­ке num. num так­же мо­жет быть шабл­ о­ном вида /pattern. {Vim} wq wq[!] Сох­ ра­нен­ ие файл­ а и вых­ од од­ним дейс­ т­вие­ м. Зап­ ись фай­ла прои­ с­хо­дит все­гда. Флаг ! го­во­рит ред­ ак­тор­ у прои­ з­вес­ ти зап­ ись пов­ ерх тек­ ущ­ е­го со­держ­ и­мог­ о фай­ла. wqall wqa[!]

Редакторы vi, ex и Vim 455Зап­ и­сыв­ а­ет все не­со­хран­ енн­ ые бу­фе­ры и  вых­ о­дит из ре­дакт­ о­ра. Приуказ­ ан­ ии ! за­пись прои­ сх­ о­дит даж­ е у бу­фе­ров, по­меч­ ен­ных как readonly.xall – друг­ ой псев­дон­ им для этой ко­манд­ ы. {Vim}write[address] w[!] [[>>] file]Зап­ ис­ ыв­ а­ет стро­ки, указ­ анн­ ые в address (либ­ о все со­дер­жим­ ое буф­ ер­ а,ес­ли address не ука­зан), в файл file. При отс­ ут­ств­ ии file сод­ ерж­ им­ ое бу­фер­ а зап­ и­сы­вае­ тс­ я в те­кущ­ ий файл. Ес­ли ис­польз­ у­ет­ся >> file, к этом­ уфай­лу доп­ ис­ ыв­ аю­ т­ся стро­ки. Чтоб­ ы ре­дакт­ ор за­пи­сал пов­ ерх те­ку­щег­ осод­ ерж­ им­ о­го фай­ла, по­ставьт­ е !.Примеры Ко­пир­ о­вать перв­ ые 10 строк в файл name_list А теп­ ерь прип­ ис­ ать в не­го строк­ у 50 :1,10w name_list :50w >> name_listwrite[address] w !commandПер­ е­дать стро­ки, оп­ре­дел­ ен­ные в address, в ком­ анд­ у command.Пример Пе­чат­ ать пер­вую стран­ иц­ у фай­ла :1,66w !pr -h myfile | lpXXЗап­ ро­сить ключ шифр­ о­ван­ ия. Это мо­жет оказ­ атьс­ я пред­поч­ти­тельн­ ей,чем :set key, по­сколь­ку в конс­ о­ли ввод клю­ча не отоб­ раж­ а­етс­ я. Чтоб­ ыудал­ ить ключ шиф­ро­ва­ния, про­сто уст­ а­нов­ ит­ е опц­ ии key пус­тое зна­че­ние. {Vim}xitxСо­хран­ ить файл, ес­ли он мен­ ялс­ я со вре­ме­ни по­след­не­го сох­ ран­ е­ния,а за­тем выйт­ и.yank[address] y [char] [count]Пом­ ест­ ить строк­ и, оп­ред­ ел­ ен­ные в  address, в  име­но­ванн­ ый ре­гистрchar. Имен­ а регистров – строч­ные бу­кв­ ы от a до z. При исп­ ольз­ о­ван­ иипро­пис­ных букв текст буд­ ет доб­ авл­ ен к  со­от­ветс­ т­вую­щем­ у ре­ги­ст­ру.

456 Приложение A Ес­ли char не зад­ ан, строк­ и по­мещ­ а­ютс­ я в об­щий ре­гистр. count оп­ре­де­ ляе­ т ко­лич­ е­ст­во ко­пи­руе­мых строк, нач­ и­ная с address. Пример Коп­ ир­ ов­ ать строк­ и 100–200 в ре­гистр «a» :101,200 ya a z [address] z [type] [count] Вы­вод­ ит текс­ то­вое ок­но, в ко­то­ром зад­ анн­ ая в address стро­ка по­мещ­ а­ етс­ я на са­мый верх. count оп­ред­ е­ляе­ т ко­лич­ е­ств­ о выв­ о­ди­мых строк. Тип + Пом­ е­щае­ т ука­зан­ную стро­ку на сам­ ый верх окн­ а (по умол­ча­нию). - Пом­ е­щае­ т указ­ анн­ ую строк­ у в низ окн­ а. . По­ме­щае­ т указ­ анн­ ую строк­ у в центр окн­ а. ^ Вы­во­дит пред­ ы­ду­щий вид. = По­ме­щае­ т ука­занн­ ую строк­ у в центр ок­на и дел­ а­ет ее те­ку­щей. & [address] & [options] [count] По­втор­ яе­ т пре­ды­ду­щую ком­ анд­ у зам­ ен­ ы (s). count опр­ ед­ е­ля­ет числ­ о строк, в кот­ о­рых нужн­ о про­изв­ е­сти зам­ ен­ у, на­чин­ ая с address. options те же, что в ком­ ан­де за­ме­ны. Примеры Од­но­крат­ная зам­ е­на в тек­ ущ­ ей стро­ке По­втор зам­ ен­ ы во всех стро­ках с «Status» :s/Overdue/Paid/ :g/Status/& @ [address] @ [char] Вы­полн­ яе­ т со­держ­ им­ ое рег­ ис­ тр­ а, на кот­ о­рый указ­ ы­ва­ет char. Есл­ и за­ дан address, то снач­ ал­ а курс­ ор пе­ре­мещ­ ае­ тс­ я по этом­ у ад­рес­ у. Ес­ли в char ука­зан симв­ ол @, то по­вто­ряе­ тс­ я по­следн­ яя ком­ ан­да @. = [address] = Вы­во­дит но­мер строк­ и, кот­ ор­ ая зад­ а­етс­ я в address. По умол­ча­нию это но­мер пос­ лед­ней строк­ и.

Редакторы vi, ex и Vim 457![address] !commandВы­полн­ яе­ т в обол­ оч­ке ком­ ан­ду UNIX command. Ес­ли ука­зан address,то в кач­ ес­ тв­ е стан­дарт­но­го ввод­ а для ком­ ан­ды command ис­поль­зу­ютс­ ястро­ки, сод­ ерж­ ащ­ иес­ я по этом­ у ад­рес­ у, кот­ о­рые пот­ ом зам­ е­няю­ т­ся навыв­ од ко­ман­ды и  ошиб­ ок. (Это наз­ ы­ва­етс­ я фильтр­ а­ци­ей текс­ та че­резком­ ан­ду.)Примеры Вы­вес­ти спи­сок файл­ ов в тек­ ущ­ ем ка­та­лог­ е От­сор­тир­ о­вать стро­ки 11–20 в те­ку­щем фай­ле :!ls :11,20!sort -f<>[address] < [count]или[address] > [count]Сме­щае­ т строк­ и, опр­ ед­ ел­ ен­ные в  address, нал­ е­во (<) ли­бо нап­ рав­ о (>).При сме­ще­нии до­бавл­ яю­ т­ся/удал­ я­ют­ся тольк­ о пер­вые про­бе­лы и таб­ у­ля­ции. count опр­ е­де­ляе­ т кол­ и­чес­ т­во сме­щаем­ ых строк, нач­ и­ная с add­ress. Опц­ ия shiftwidth управл­ яе­ т числ­ ом столбц­ ов, на кот­ о­рое идет сме­ще­ние. Пов­ тор­ е­ние < или > увел­ ич­ ив­ а­ет ве­ли­чи­ну сдвиг­ а. Нап­ рим­ ер,:>>> смес­ тит в три раза даль­ше, чем :>.~[address] ~ [count]За­ме­няе­ т по­след­нее ис­польз­ о­вавш­ еес­ я рег­ у­ляр­ное выр­ аж­ е­ние (да­жев текс­ те по­иск­ а, но не из ко­манд­ ы s) на текст за­мен­ ы из пос­ лед­ней ко­манд­ ы s. Это опи­сан­ ие дов­ ольн­ о аб­стр­ акт­но; за подр­ об­нос­ тя­ми об­ра­ти­тесь к гла­ве 6.addressaddressВы­вод­ ит стро­ки, указ­ ан­ные в address.ENTERВы­во­дит сле­дующ­ ую стро­ку файл­ а. (Тольк­ о в ex, в при­гла­ше­нии : vi нера­бо­тае­ т.)

BУстановка опцийГлава B.В этом при­ло­же­нии опи­сыв­ а­ют­ся важ­ные оп­ции ко­ман­ды set для So­laris vi, nvi 1.79, elvis 2.2, Vim 7.1 и vile 9.6.Опции Solaris viТаблица B.1 со­держ­ ит крат­кие опи­са­ния важ­ных опц­ ий ком­ ан­ды set.В пер­вом столб­це пер­ еч­ ис­лен­ ы опц­ ии в алф­ а­витн­ ом пор­ ядк­ е. Ес­ли оп­ция до­пус­ка­ет со­кра­ще­ние, то аб­брев­ иат­ у­ра при­во­дитс­ я в  круг­лыхскобк­ ах. Во вто­ром столб­це пок­ аз­ ан­ о зна­чен­ ие по умолч­ а­нию, ис­поль­зуе­мое vi до выз­ ов­ а ко­ман­ды set (вручн­ ую или по­средс­ тв­ ом фай­ла .exrc).В пос­ лед­нем столбц­ е опи­сыв­ а­ет­ся дей­ств­ ие опц­ ии при ее включ­ ен­ ии.Таб­лиц­ а B.1. Оп­ции set для Solaris viОп­ция Зна­че­ние Опис­ а­ниеautoindent (ai) noai В ре­жи­ме встав­ки каж­дая стро­ка по­луч­ а­ет та­ кой же отс­ туп, как в строк­ е выш­ е или ниж­ е.autoprint (ap) ap Исп­ оль­зу­етс­ я с оп­цие­ й shiftwidth.autowrite (aw) noaw Ото­бра­жае­ т из­ме­не­ния по­сле кажд­ ой ком­ анд­ ы ре­дакт­ о­ра. (При глоб­ альн­ ой за­ме­не ото­бра­жа­beautify (bf) nobf етс­ я по­следн­ яя зам­ ен­ а.)directory (dir) /tmp Авт­ о­мат­ и­чес­ ки за­пи­сы­ва­ет (сох­ ран­ я­ет) изм­ е­ нен­ный файл при от­кры­тии друг­ ог­ о с пом­ ощ­ ью :n или при выз­ ов­ е ко­манд­ ы UNIX :!. Игн­ о­ри­ро­вать все управ­ляю­щие симв­ ол­ ы во врем­ я ввод­ а (кро­ме tab, нов­ ой стро­ки или пер­ е­ во­да стра­ни­цы). Зад­ а­ет ка­тал­ ог, где ex/vi хран­ ит фай­лы бу­фе­ров. (Вы долж­ны иметь прав­ а зап­ ис­ и в этот кат­ ал­ ог.)

Установка опций 459Опц­ ия Знач­ е­ние Опи­сан­ иеedcompatible noedcompatible За­пом­ и­на­ет флаг­ и, исп­ оль­зов­ ав­шиес­ я в  по­ следн­ ей ко­ман­де зам­ ен­ ы (гло­баль­ная, подт­ вер­ жде­ние), и исп­ оль­зу­ет их в след­ ую­щей ком­ ан­де за­мен­ ы. Нес­ мот­ря на на­зва­ние, ни в одн­ ой из вер­сий ed так не про­исх­ о­дит.errorbells (eb) errorbells Вклю­ча­ет зву­ков­ ой сиг­нал при ошиб­ке.exrc (ex) noexrc Раз­ре­шае­ т вы­полн­ е­ние фай­ла .exrc, расп­ о­ло­ жен­ног­ о за пре­де­ла­ми до­машн­ е­го кат­ ал­ о­га польз­ ов­ ат­ е­ля.flash (fp) nofp Вклю­чае­ т ми­га­ние эк­ран­ а вмес­ то сис­тем­ног­ о сиг­нал­ а.hardtabs (ht) 8 Опр­ ед­ е­ляе­ т гра­ниц­ ы для апп­ а­ратн­ ых таб­ ул­ я­ ций терм­ ин­ а­ла.ignorecase (ic) noic Не обр­ ащ­ ать вни­ма­ние на рег­ истр во врем­ я по­ ис­ка.lisp nolisp Вставл­ я­ет от­ступ­ ы в со­отв­ ет­ств­ ующ­ ем Lisp фор­ мат­ е. ( ), { }, [[ и ]] ме­ня­ют­ся так, что­бы иметь смысл для Lisp.list nolist Таб­ у­ля­ции печ­ ат­ а­ютс­ я как ^I, а конц­ ы строк отм­ еч­ а­ютс­ я с по­мо­щью $. (Что­бы указ­ ать, что за­верш­ ающ­ ий симв­ ол явл­ я­етс­ я про­бе­лом или та­бу­ляц­ ие­ й, ис­польз­ уйт­ е listp.)magic magic Сим­во­лы маск­ и . (точк­ а), * (звезд­ оч­ка) и  [] (квад­рат­ные скоб­ки) по­лу­чаю­ т спец­ и­альн­ ое знач­ ен­ ие в шабл­ о­нах.mesg mesg При ре­дакт­ ир­ ов­ ан­ ии в vi разр­ е­шае­ т ото­бра­же­ ние сис­темн­ ых со­об­ще­ний в терм­ ин­ а­ле.novice nonovice Тре­бу­ет исп­ оль­зо­вать длинн­ ые имен­ а ко­манд ex, нап­ рим­ ер copy или read.number (nu) nonu Ото­браж­ ае­ т ном­ ер­ а строк в ле­вой час­ти экр­ а­на во вре­мя се­анс­ а ре­дак­тир­ ов­ а­ния.open open Раз­реш­ а­ет вход в отк­ рыт­ ый или виз­ уа­ льн­ ый реж­ им из ex. Хо­тя в Solaris vi этог­ о нет, та­кая опц­ ия тра­диц­ ио­ н­но включ­ ае­ т­ся в vi и мо­жет прис­ утс­ тв­ о­вать в вер­сии vi на ваш­ ем UNIX.optimize (opt) noopt Отм­ е­ня­ет воз­врат кар­ етк­ и в кон­це строк­ и при печ­ ат­ и нес­ коль­ких строк. Это ус­кор­ я­ет раб­ от­ у на мед­ленн­ ых терм­ и­нал­ ах при печ­ а­ти строк с проб­ ельн­ ы­ми симв­ ол­ ам­ и (про­бе­ла­ми или та­ бул­ я­циям­ и), стоящ­ им­ и в нач­ ал­ е.paragraphs IPLPPPQP Опр­ ед­ е­ляе­ т разд­ е­лит­ ел­ и абзаца для пер­ ем­ ещ­ е­(para) LIpplpipbp ния по { или }. Па­ры симв­ о­лов, стоя­щие в зна­ че­нии этой опц­ ии, яв­ля­ютс­ я име­на­ми мак­ро­ сов troff, кот­ ор­ ые оп­ред­ е­ляю­ т нач­ а­ло абзаца.

460 Приложение B Оп­ция Знач­ е­ние Табл­ и­ца B.1 (продолжение) prompt prompt Опи­сан­ ие readonly (ro) noro Ото­браж­ ае­ т при­гла­шен­ ие ex (:) при ввод­ е ко­ redraw (re) манд­ ы vi Q. remap remap Все зап­ ис­ и файл­ а бу­дут выд­ ав­ ать ошиб­ку, ес­ли report 5 толь­ко не исп­ ольз­ о­вать ! по­сле write (ра­бо­та­ет с w, ZZ или autowrite). scroll [½ window] Пер­ е­рис­ ов­ ыв­ а­ет эк­ран при кажд­ ой прав­ке (дру­ sections (sect) SHNHH HU ги­ми сло­вам­ и, реж­ им встав­ки по­мещ­ а­ет сим­во­ лы к сущ­ е­ст­вую­щим, а удал­ енн­ ые строк­ и сраз­ у shell (sh) /bin/sh же ис­чез­ а­ют). Ус­та­нов­ка по умолч­ ан­ ию зав­ ис­ ит от ско­рос­ ти лин­ ии и ти­па терм­ ин­ а­ла. noredraw shiftwidth (sw) 8 по­лезн­ а при ма­лых скор­ ос­ тях и медл­ ен­ных тер­ showmatch (sm) nosm мин­ ал­ ах: уда­ленн­ ые стро­ки ото­браж­ а­ютс­ я как @, а вставл­ енн­ ые симв­ ол­ ы по­явл­ я­ют­ся пов­ ерх showmode noshowmode имею­щих­ся, по­ка вы не на­жмет­ е ESC. Разр­ е­ша­ет влож­ ен­ные по­след­ о­ват­ ельн­ ос­ ти ото­ браж­ е­ний. Отоб­ раж­ а­ет со­об­щен­ ие в строк­ е со­стоян­ ия при кажд­ ой прав­ке, зат­ ра­гив­ аю­щей как мин­ им­ ум указ­ анн­ ое кол­ ич­ ес­ т­во строк. На­прим­ ер, 6dd вы­даст «6 lines deleted». Кол­ ич­ е­ств­ о строк, на ко­тор­ ое про­круч­ ив­ ае­ тс­ я экр­ ан ко­ман­да­ми ^D и ^U. Опр­ е­дел­ я­ет раз­дел­ ит­ е­ли раз­де­ла для пер­ ем­ е­ще­ ния по [[ или ]]. Пар­ ы симв­ ол­ ов, стоя­щие в зна­ че­нии этой опц­ ии, явл­ я­ютс­ я име­нам­ и макр­ ос­ ов troff, опр­ ед­ ел­ яющ­ и­ми нач­ а­ло раз­дел­ а. Имя пут­ и к обо­лоч­ке, исп­ ольз­ уе­мое для вы­ход­ а в обол­ очк­ у (:!) и в ко­ман­де обол­ очк­ и (:sh). Зна­ че­ние по умол­ча­нию опр­ ед­ е­ля­етс­ я из окр­ у­же­ ния обол­ оч­ки. На разн­ ых сист­ ем­ ах это знач­ е­ ние буд­ ет от­лич­ атьс­ я. Оп­ре­де­ля­ет ко­ли­че­ств­ о проб­ е­лов в  об­ратн­ ых (backward) (^D) таб­ ул­ я­ци­ях при исп­ ольз­ о­ва­нии опц­ ии autoindent, а так­же в ком­ ан­дах << и >>. В vi при вво­де ) или } курс­ ор «на сек­ унд­ очк­ у» пер­ е­ме­щае­ т­ся на соо­ тв­ етс­ т­вующ­ ую ( или {. (Ес­ ли соо­ т­вет­ст­вующ­ ей скоб­ки нет, выд­ ае­ тс­ я сис­ тем­ный сиг­нал.) Опц­ ия очень по­лез­на в  про­ грамм­ ир­ ов­ ан­ ии. В ре­жи­ме вставк­ и в строк­ е при­глаш­ е­ния ото­ браж­ ае­ т со­общ­ ен­ ие, ука­зы­ваю­щее на тип встав­ ки, на­при­мер «OPEN MODE» или «APP­ END MODE».

Установка опций 461Опц­ ия Зна­че­ние Опис­ ан­ иеslowopen (slow) Зад­ ерж­ и­вае­ т ото­бра­же­ние во врем­ я вставк­ и. Знач­ ен­ ие по умол­ча­нию зав­ и­сит от ско­ро­сти лин­ ии и тип­ а тер­мин­ ал­ а.tabstop (ts) 8 Опр­ е­дел­ яе­ т ко­ли­че­ст­во проб­ е­лов, ко­тор­ ые встав­ляю­ т­ся при на­жат­ ии та­бул­ я­ции во вре­мя ред­ ак­тир­ ов­ а­ния. (Прин­тер все рав­но ис­поль­зу­ ет сис­тем­ную та­бу­ля­цию, равн­ ую 8.)taglength (tl) 0 Оп­ре­дел­ я­ет кол­ ич­ е­ст­во симв­ о­лов, кот­ о­рые яв­ ля­ютс­ я зна­чим­ ы­ми для тег­ ов. Зна­чен­ ие по умол­ча­нию (ноль) озн­ а­ча­ет, что знач­ и­мы все сим­вол­ ы.tags tags /usr/lib/ Опр­ е­дел­ яе­ т путь к файл­ у, со­держ­ ащ­ е­му тег­ и tags (см. ко­манд­ у ctags для UNIX). По умол­ча­нию vi ищет файл tags в те­ку­щем ка­та­лог­ е и в /usr/ lib/tags.tagstack tagstack Включ­ а­ет стек по­ло­же­ний тег­ ов.term Уст­ а­навл­ ив­ ае­ т тип тер­ми­нал­ а.terse noterse Вы­во­дит бол­ ее кор­ отк­ ие соо­ б­ще­ния об ошиб­ ках.timeout (to) timeout При исп­ ольз­ ов­ а­нии ото­браж­ ен­ ия кла­виш пре­ крат­ ить ожид­ ан­ ие сле­дующ­ ег­ о сим­вол­ а по­сле 1-й секундыa.ttytype Зад­ а­ет тип тер­ми­нал­ а. Экв­ ив­ а­лентн­ а term.warn warn Ото­бра­жае­ т пре­дуп­ реж­ ­ден­ ие «No write since last change».window (w) По­каз­ ы­вае­ т оп­ред­ е­лен­ное ко­ли­чес­ т­во строк фай­ла на эк­ра­не. Зна­че­ние по умол­чан­ ию зав­ и­ сит от скор­ о­сти лин­ ии и тип­ а терм­ и­на­ла.wrapmargin (wm) 0 Пра­вая гра­ниц­ а текс­ та. Есл­ и знач­ е­ние боль­ше ну­ля, по его дост­ иж­ е­нии ав­то­мат­ ич­ е­ски встав­ ляе­ тс­ я воз­врат кар­ ет­ки, что­бы раз­бить строк­ у.wrapscan (ws) ws При дос­ти­же­нии кон­ца фай­ла пои­ ск прод­ олж­ а­ етс­ я с его на­чал­ а.writeany (wa) nowa Раз­ре­ша­ет за­пись в прои­ з­вольн­ ый файл.a Есл­ и вы ис­польз­ ует­ е ото­бра­жен­ ие из не­сколь­ких кла­виш (на­прим­ ер, :map zzz 3dw), то лучш­ е включ­ ить notimeout, инач­ е при­дет­ся наб­ рать zzz в теч­ е­ние од­ной сек­ ун­ды. При на­лич­ ии отоб­ раж­ е­ния для курс­ ор­ной клав­ и­ши в  ре­ жим­ е встав­ки (нап­ ри­мер, :map! ^[OB ^[ja) це­лес­ оо­ б­разн­ о ус­тан­ о­вить timeout. В  про­тивн­ ом слу­чае vi не буд­ ет реаг­ и­ров­ ать на ESC, пок­ а вы не на­жме­те еще как­ ую-ни­будь кла­виш­ у.

462 Приложение BОпции nvi 1.79 Все­го в nvi 1.79 есть 78 опц­ ий, оп­ред­ е­ляю­щих его пов­ е­де­ние. В табл. B.2 прив­ е­ден­ ы тольк­ о са­мые важ­ные из них. Больш­ ая часть оп­ций из табл. B.1 здесь не по­втор­ я­етс­ я. Таб­лиц­ а B.2. Опц­ ии set для nvi 1.79 Опц­ ия Знач­ е­ние Опис­ ан­ ие backup Стро­ка, опи­сыв­ ающ­ ая ис­поль­зуе­мый ре­зервн­ ый cdpath файл. Те­кущ­ ее со­держ­ и­мое фай­ла буд­ ет сох­ ра­ cedit нять­ся в ре­зервн­ ый файл пер­ ед зап­ и­сью нов­ ых дан­ных. Пер­вый сим­вол N зас­ тавл­ я­ет nvi вклю­ comment чать но­мер вер­сии в ко­нец файл­ а; но­мер­ а вер­сий directory всег­ да воз­рас­таю­ т. Раз­ ум­ным прим­ ер­ ом яв­ля­етс­ я (dir) \"N%.bak\". extended filec Пер­ е­мен­ная ок­ Путь пои­ ск­ а для ко­ман­ды :cd. ру­жен­ ия CDPATH или те­кущ­ ий ка­тал­ ог Ког­ да пер­вый сим­вол этой строк­ и вво­дитс­ я в ко­ манд­ную строк­ у с двое­то­чи­ем, nvi отк­ ры­ва­ет но­ вое ок­но ис­то­рии ком­ анд, кот­ о­рые можн­ о ре­дак­ тир­ о­вать. На­жа­тие ENT­ ER на лю­бой стро­ке при­ вод­ ит к ее вы­пол­не­нию. Хо­рош­ им прим­ е­ром зна­ чен­ ия та­кой оп­ции служ­ ит ESC (для его вво­да наж­ ми­те ^V ^[). nocomment Ес­ли пер­вая неп­ ус­тая стро­ка нач­ ин­ а­етс­ я с /*, // или #, nvi про­пус­кае­ т текст ком­мент­ а­рия пер­ ед отоб­ раж­ ен­ ие­ м файл­ а. Это из­бавл­ я­ет от по­каз­ а длинн­ ых скуч­ных увед­ омл­ ен­ ий. Пе­ре­мен­ная Ка­та­лог, где nvi раз­мещ­ а­ет свои вре­менн­ ые фай­ окр­ уж­ ен­ ия лы. TMPDIR или /tmp noextended При по­ис­ке исп­ ольз­ ую­ тс­ я расш­ ир­ ен­ные ре­гу­ляр­ ные вы­ра­жен­ ия в сти­ле egrep. Ко­гда пер­вый симв­ ол этой строк­ и ввод­ ит­ся в ко­ мандн­ ую стро­ку с двое­то­чи­ем, nvi расс­ мат­ри­ва­ет отд­ е­ленн­ ое проб­ ел­ ом слов­ о пер­ ед кур­со­ром, как есл­ и бы к не­му был прип­ ис­ ан знак *, и вып­ ол­ня­ ет подс­ тан­ овк­ у в стил­ е обол­ очк­ и. ESC так­же под­ ход­ ит для этой оп­ции в кач­ е­ст­ве при­ме­ра (что­бы ввес­ ти его, наж­ ми­те ^V ^[.) Ес­ли этот симв­ ол та­ кой же, как у опц­ ии cedit, ре­дакт­ и­ро­ва­ние ист­ о­ рии нач­ и­нае­ тс­ я, толь­ко ес­ли пер­вый симв­ ол cedit одн­ о­врем­ енн­ о яв­ля­ет­ся пер­вым и  в  ком­ андн­ ой стро­ке с двоет­ о­чи­ем.

Установка опций 463Опц­ ия Зна­че­ние Опис­ ан­ иеiclower noiclower Дел­ а­ет все пои­ ск­ и с рег­ у­ляр­ным­ и выр­ аж­ ен­ ия­миleftright noleftright неч­ ув­ст­вит­ ельн­ ым­ и к ре­гис­ тр­ у, ес­ли шаб­лон по­lock lock ис­ка не сод­ ерж­ ит проп­ ис­ных букв.octal nooctal Длин­ные строк­ и прок­ руч­ и­ваю­ т­ся на экр­ а­не сле­ ва на­прав­ о, а не пе­ре­нос­ ятс­ я.path nvi пы­та­ет­ся пол­ у­чить экс­клю­зив­ный дос­тупrecdir /var/tmp/ к файл­ у. Есл­ и это не­возм­ ож­но, для нег­ о отк­ рыв­ а­ vi.recover ет­ся сеа­ нс в ре­жи­ме «тольк­ о для чте­ния».ruler noruler Не­опо­знан­ные симв­ о­лы ото­браж­ а­ют­ся в восьм­ е­ рич­ном, а не шес­ тн­ а­дца­те­рич­ном ви­де.searchincr nosearchincr Спи­сок ка­та­ло­гов, раз­де­ленн­ ых за­пят­ ы­ми, гдеsecure nosecure nvi буд­ ет иск­ ать файл для ре­дак­тир­ ов­ а­ния.shellmeta ~{[*?$`'\"\ Кат­ ал­ ог, в кот­ ор­ ом хра­нятс­ я файл­ ы для восс­ та­ нов­лен­ ия.showmode noshowmode(smd) Ото­браж­ ае­ т строк­ у и стол­бец курс­ ор­ а.sidescroll 16 Вы­пол­ня­етс­ я инк­ ре­ментн­ ый пои­ ск.taglength 0 Вык­ лю­ча­етс­ я дос­туп к внеш­ним прог­ рамм­ ам для(tl) фильт­ра­ции текс­ та, отк­ люч­ а­ют­ся ко­манд­ ы ! и ^Z реж­ им­ а vi, а так­же ко­манд­ ы !, shell, stop и su­tags (tag) tags /var/db spend реж­ им­ а ex. По­сле уст­ а­нов­ки этой опц­ ии ееtildeop /libc.tags/sys уже нель­зя отк­ лю­чить. /kern/tags Ес­ли в арг­ ум­ ен­те, пред­став­ляющ­ ем имя фай­ла notildeop в ко­манд­ е ex, встреч­ ае­ т­ся один из этих сим­во­лов, арг­ ум­ ент под­ставл­ я­ет­ся прог­ рам­мой, за­дан­нойwraplen 0 в опц­ ии shell.(wl) В  строк­ е сос­ тоя­ния ото­бра­жае­ тс­ я те­ку­щий ре­ жим. Есл­ и файл из­мен­ ен, то пок­ аз­ ыв­ ае­ тс­ я *. Кол­ и­че­ств­ о столбц­ ов, на кот­ ор­ ые сме­ща­етс­ я экр­ ан влев­ о или впра­во при за­данн­ ой опц­ ии left­right. Опр­ е­де­ляе­ т ко­лич­ ес­ тв­ о симв­ ол­ ов, кот­ ор­ ые яв­ля­ ютс­ я зна­чи­мым­ и для тег­ ов. Знач­ е­ние по умол­ча­ нию (ноль) гов­ ор­ ит, что зна­чим­ ы все симв­ ол­ ы. Спи­сок возм­ ож­ных фай­лов те­гов. Ком­ ан­да ~ «по­ни­ма­ет» идущ­ ее сле­дом за ней пе­ ре­мещ­ ен­ ие, а не тольк­ о пред­шес­ тв­ ующ­ ее ко­лич­ е­ ст­во по­втор­ ен­ ий. Оп­ция ана­лог­ ичн­ а wrapmargin, за иск­ люч­ е­ни­ем то­ го, что она ука­зыв­ ае­ т ко­лич­ ес­ тв­ о симв­ ол­ ов, счи­ тая от лев­ о­го по­ля, по дос­ти­жен­ ии кот­ ор­ ог­ о стро­ ка бу­дет раз­би­та. Знач­ е­ние wrapma­rg­in от­ме­ня­ет wraplen.

464 Приложение BОпции elvis 2.2 В  elvis 2.2 имее­ тс­ я 225 опц­ ий, оп­ред­ е­ляющ­ их по­вед­ е­ние ре­дак­тор­ а. В табл. B.3 пред­став­ле­ны тольк­ о сам­ ые важ­ные из них. Больш­ ая часть опц­ ий опи­са­на в табл. B.1 и здесь не пов­ тор­ яе­ тс­ я. Табл­ иц­ а B.3. Опц­ ии set для elvis Опц­ ия Знач­ ен­ ие Опи­са­ние autoiconify noautoiconify Стар­ ое ок­но сво­рач­ ив­ а­ет­ся при разв­ о­рач­ и­ва­ (aic) нии нов­ о­го. Тольк­ о в X11. backup (bk) nobackup Соз­да­вать ре­зервн­ ый файл (xxx.bak) пер­ ед зап­ и­ сью но­во­го фай­ла на диск. binary (bin) Данн­ ые бу­фе­ра не яв­ля­ютс­ я тек­стов­ ы­ми. Эта оп­ция ус­та­навл­ ив­ а­етс­ я ав­том­ ат­ и­чес­ ки. boldfont (xfb) Имя по­луж­ ирн­ о­го шрифт­ а. Тольк­ о в X11. bufdisplay (bd) normal Реж­ им отоб­ раж­ ен­ ия по умолч­ ан­ ию для бу­фер­ а (hex, html, man, normal, syntax или tex). ccprg (cp) cc ($1?$1:$2) Ко­манд­ а обол­ оч­ки для :cc. directory (dir) Ука­зы­вае­ т ме­сто хра­не­ния вре­менн­ ых фай­лов. Знач­ е­ние по умолч­ а­нию зав­ и­сит от сис­те­мы. display (mode) normal Имя тек­ ущ­ е­го ре­жи­ма ото­браж­ е­ния, за­дав­ ае­ мое ком­ ан­дой :display. elvispath Спи­сок кат­ ал­ о­гов, в  кот­ ор­ ых нужн­ о иск­ ать (epath) конф­ иг­ у­рац­ и­онн­ ые файл­ ы. Знач­ е­ние по умол­ чан­ ию зав­ ис­ ит от сис­те­мы. focusnew (fn) focusnew Фок­ ус клав­ иат­ у­ры пе­рен­ о­ситс­ я на нов­ ое ок­но. Толь­ко в X11. font (fnt) Наз­ ван­ ие обыч­ног­ о шрифт­ а (для инт­ ерф­ ей­сов Windows и X11). gdefault (gd) nogdefault Ком­ ан­да зам­ ен­ ы мен­ яе­ т все вхо­ж­де­ния. home (home) $HOME Дом­ ашн­ ий ка­тал­ ог для подс­ тан­ ов­ки знак­ а ~ в име­нах фай­лов. italicfont (xfi) Имя курс­ ивн­ ог­ о шрифт­ а. Тольк­ о в X11. locked (lock) nolocked Бу­фер пе­ре­вод­ ит­ся в реж­ им «тольк­ о для чте­ ния», по­сле че­го все ме­няю­щие его ком­ ан­ды не смог­ ут вып­ ол­нятьс­ я. Обычн­ о уст­ ан­ авл­ ив­ ае­ т­ся авт­ о­ма­тич­ ес­ ки для HTML-файл­ ов с  прав­ ам­ и «толь­ко для чтен­ ия». lpcolor (lpcl) nolpcl Ис­поль­зов­ ать цвет при пе­чат­ и; для :lpr. lpcolumns 80 Шир­ и­на стран­ и­цы прин­те­ра; для :lpr. (lpcols) lpcrlf (lpc) nolpcrlf Принт­ ер тре­буе­ т CR/LF для нов­ ой строк­ и в файл­ е; для :lpr.

Установка опций 465Опц­ ия Зна­чен­ ие Опи­сан­ иеlpformfeed nolpformfeed По­сле по­след­ней стра­ни­цы пос­ ыл­ а­ет­ся зап­ рос(lpff) на под­ ач­ у стра­ниц­ ы; для :lpr.lpheader (lph) nolph Вверх­ у стра­ни­цы пе­чат­ а­етс­ я заг­ ол­ ов­ ок; для :lpr.lplines (lprows) 60 Дли­на стра­ни­цы принт­ ер­ а; для :lpr.lpout (lpo) Файл или фильтр для принт­ ер­ а, для :lpr. Обыч­ но зна­чен­ ие рав­но !lpr. Зна­чен­ ие по умол­ча­нию за­ви­сит от сис­тем­ ы.lptype (lpt) dumb Тип прин­тер­ а; для :lpr. При­ним­ а­ет од­но из сле­ дующ­ их зна­чен­ ий: ps, ps2, epson, pana, ibm, hp, cr, bs, dumb, html или ansi.lpwrap (lpw) lpwrap Си­мул­ яц­ ия пер­ е­но­са стро­ки; для :lpr.makeprg (mp) make $1 Ко­манд­ а обо­лочк­ и для :make.prefersyntax never Конт­ ро­лир­ у­ет исп­ оль­зо­ван­ ие синт­ акс­ и­че­ско­го(psyn) ре­жим­ а. По­лез­но, ког­ да в HTML и стра­ни­цах man нужн­ о по­каз­ ы­вать сод­ ерж­ им­ ое вме­сто от­ форм­ а­ти­ров­ ан­но­го тек­ста. Ес­ли зна­че­ние рав­но never, синт­ ак­си­чес­ кий реж­ им ни­ког­ да не ис­ поль­зуе­ т­ся; ес­ли writable, то он ус­та­нав­ли­вае­ т­ ся для зап­ и­сы­ваем­ ых фай­лов; ес­ли local – ус­ та­навл­ и­вае­ тс­ я для файл­ ов тек­ у­ще­го ка­тал­ о­га; при зна­че­нии always синт­ ак­сич­ ес­ кий реж­ им ис­ польз­ уе­ т­ся всег­ да.ruler (ru) noruler Ото­браж­ а­ет стро­ку и стол­бец курс­ ор­ а.security (sec) normal Одн­ о из знач­ ен­ ий normal (станд­ артн­ ое по­вед­ е­ ние vi), safer (пы­та­етс­ я пре­дот­вра­тить на­пис­ а­ ние вре­до­нос­ных скрипт­ ов) или restricted (пы­ та­ет­ся сдел­ ать elvis безо­ пасн­ ым ред­ акт­ о­ром с огр­ а­нич­ ен­ иям­ и). Во­об­ще го­во­ря, зна­че­ние оп­ ции ус­тан­ ав­ли­ва­етс­ я ко­ман­дой :safe­ly, так что не мен­ яйт­ е его вручн­ ую.showmarkups noshowmarkups Для ре­жи­мов man и html разм­ ет­ка ото­браж­ а­етс­ я(smu) на поз­ и­ции курс­ о­ра и ниг­ де боль­ше.sidescroll (ss) 0 Ве­ли­чин­ а прок­ рут­ки по го­риз­ онт­ а­ли. Ну­ле­вое знач­ е­ние – под­ра­жа­ние vi (стро­ки пер­ ен­ ос­ ятс­ я).smartargs (sa) nosmartargs По­сле вво­да имен­ и функц­ ии и симв­ ол­ а funct­ion (обычн­ о это отк­ ры­ваю­щая кругл­ ая скобк­ а) на эк­ран выв­ од­ ятс­ я ар­гу­мент­ ы функц­ ии, пол­ у­ ченн­ ые из фай­ла тег­ ов.spell (sp) nospell Не­пра­виль­но нап­ ис­ ан­ные слов­ а под­све­чи­ваю­ т­ ся. Это такж­ е раб­ о­та­ет с прог­ рамм­ ам­ и на осн­ о­ ве дан­ных из файл­ а tags.

466 Приложение B Оп­ция Зна­че­ние Таб­лиц­ а B.3 (продолжение) taglength (tl) 0 Опис­ ан­ ие tags (tagpath) tags Оп­ре­дел­ яе­ т кол­ и­чес­ тв­ о сим­во­лов, ко­тор­ ые важ­ tagstack (tsk) tagstack ны для тег­ ов. Зна­че­ние по умол­чан­ ию (ноль) указ­ ы­вае­ т, что важн­ ы все сим­вол­ ы. undolevels (ul) 0 Спи­сок воз­мож­ных фай­лов tags. warpback (wb) nowarpback Зап­ ом­ и­нае­ т исх­ одн­ ые по­зиц­ ии, отк­ у­да про­ис­ warpto (wt) don't ход­ ил пои­ ск тег­ а в стек­ е. Оп­ред­ ел­ я­ет кол­ и­че­ст­во от­ме­няе­мых ко­манд. Ну­ле­вое зна­че­ние восп­ рои­ з­вед­ ет по­ве­ден­ ие vi. Име­ет смысл ус­тан­ ов­ ить знач­ е­ние по­больш­ е. При вы­хо­де пер­ ем­ е­ща­ет указ­ ат­ ель мыш­ и об­ рат­но в xterm, от­ку­да был зап­ ущ­ ен elvis. Толь­ ко в X11. За­дае­ т спос­ об пер­ е­мещ­ ен­ ия ука­за­тел­ я мыш­ и при по­мощ­ и ^W. don't указ­ ыв­ ае­ т на за­прет дви­ же­ния, scrollbar пе­рен­ о­сит указ­ ат­ ель к по­лос­ е прок­ рут­ки, origin пе­рем­ е­ща­ет его в  лев­ ый верх­ний угол, а corners – в сам­ ый даль­ний и са­ мый ближ­ний угл­ ы (по от­нош­ ен­ ию к тек­ у­щей по­зиц­ ии курс­ о­ра). При этом дисп­ лей X пан­ о­ра­ ми­ру­етс­ я, га­рант­ и­руя, что все окн­ о по­па­дет на эк­ран.Опции Vim 7.1 В Vim 7.1 есть 295(!) опц­ ий, влияю­щих на его по­ве­де­ние. В табл. B.4 обоб­ щен­ ы са­мые важ­ные. Боль­шая часть оп­ций опи­сан­ а в табл. B.1 и здесь не по­вто­ряе­ тс­ я. Опис­ а­ние опц­ ий в  этой табл­ и­це приш­ лось дел­ ать крат­ким. Бол­ ее по­ дроб­ную инф­ ор­ма­цию можн­ о пол­ уч­ ить в он­лайн-справк­ е Vim. Таб­лиц­ а B.4. Оп­ции set для Vim 7.1 Опц­ ия Зна­чен­ ие Опис­ а­ние autoread (ar) noautoread Опр­ ед­ е­ля­ет, был ли файл, отк­ ры­тый в Vim, background (bg) dark или light из­мен­ ен внешн­ ей прог­ рамм­ ой, и ав­то­мат­ и­ че­ски об­новл­ яе­ т бу­фер ред­ ак­то­ра но­вой верс­ и­ей файл­ а. Про­грамм­ а пыт­ а­ет­ся исп­ ольз­ ов­ ать наи­бо­ лее под­хо­дящ­ ие для дан­но­го тер­мин­ а­ла цвет­ а шрифт­ а и фо­на. Знач­ е­ния по умол­ча­ нию за­ви­сят от те­кущ­ е­го терм­ ин­ а­ла и окон­ ной сис­тем­ ы.

Установка опций 467Оп­ция Знач­ ен­ ие Опи­сан­ иеbackspace (bs) 0 Управ­ляе­ т возм­ ожн­ ос­ тью прой­ти че­рез но­ вую стро­ку или точ­ку на­ча­ла встав­ки, на­ жим­ ая Backspace. Зна­че­ния так­ о­вы: 0 – со­ вмес­ти­мость с vi, 1 – пер­ е­ход че­рез симв­ ол­ ы но­вой строк­ и и от­сту­пы, 2 – пе­ре­ход че­рез на­чал­ о встав­ки, сим­вол­ ы нов­ ой строк­ и и от­сту­пы.backup (bk) nobackup Де­ла­ет ре­зервн­ ую ко­пию пер­ ед пе­рез­ а­пи­ сью фай­ла и ост­ ав­ля­ет ее, ес­ли файл был ус­пеш­но сох­ ра­нен. Чтоб­ ы иметь рез­ ервн­ ый файл тольк­ о во вре­мя со­хра­нен­ ия, ис­поль­ зуйт­ е оп­цию writebackup.backupdir ., ~/tmp/, ~/ Спи­сок ка­тал­ ог­ ов для рез­ ервн­ ых фай­лов,(bdir) раз­дел­ ен­ных за­пя­ты­ми. По воз­мож­нос­ ти рез­ ервн­ ый файл соз­да­етс­ я в перв­ ом ка­та­ло­ ге это­го спис­ ка. Ес­ли спи­сок пуст, вы не смо­же­те соз­дать ре­зервн­ ый файл. Имя . (точ­ка) дае­ т ко­ман­ду ис­поль­зо­вать кат­ а­лог с ред­ акт­ ир­ уем­ ым фай­лом.backupext (bex) ~ Стро­ка, ко­тор­ ая прип­ ис­ ы­ва­ет­ся к  име­ни файл­ а для пол­ у­чен­ ия имен­ и файл­ а рез­ ерв­ ной ко­пии.binary (bin) nobinary Ме­ня­ет не­скольк­ о друг­ их опц­ ий, что­бы об­ лег­чить ред­ акт­ ир­ о­ван­ ие двои­ ч­ных файл­ ов. Прош­ лые знач­ е­ния этих оп­ций за­пом­ и­на­ ют­ся и вос­стан­ авл­ ив­ а­ют­ся, ко­гда bin вновь от­клю­чае­ тс­ я. В  каж­дом буф­ е­ре хран­ ит­ся свой на­бор со­хран­ ен­ных знач­ ен­ ий оп­ций. Эту опц­ ию сле­дуе­ т ус­та­нов­ ить при ред­ ак­ти­ ров­ а­нии двои­ ч­ных файл­ ов. Так­же мож­но ис­поль­зов­ ать ключ -b ком­ анд­ной строк­ и.cindent (cin) nocindent Вклю­ча­ет авт­ о­ма­ти­че­скую «умн­ ую» рас­ стан­ ов­ку от­ступ­ ов для про­грамм­ ы на C.cinkeys (cink) 0{,0},:,0#,!^F,o,O,e Спи­сок клав­ иш, при наж­ а­тии ко­то­рых в ре­жим­ е встав­ки в те­кущ­ ей строк­ е буд­ ет изм­ ен­ ен от­ступ. Ра­бот­ ае­ т, ес­ли зад­ ан­ а оп­ ция cindent.cinoptions Управл­ яе­ т расс­ та­новк­ ой от­сту­пов в  про­(cino) грамм­ ах C при по­мо­щи cindent. За подр­ об­ но­стя­ми обр­ ат­ и­тесь к он­лайн-справк­ е.cinwords (cinw) if, else, while, do, Эти клю­чев­ ые сло­ва на­чин­ аю­ т нов­ ый от­ for, switch ступ в след­ ую­щей стро­ке, ко­гда вклю­чен­ ы smartindent или cindent. Для cindent это про­ де­лы­ва­етс­ я тольк­ о в опр­ е­дел­ ен­ных мес­тах (внутр­ и {...}).

468 Приложение B Оп­ция Знач­ ен­ ие Таб­лиц­ а B.4 (продолжение) comments (com) cp; nocp, ес­ли Опи­сан­ ие найд­ ен файл compatible .vimrc Разд­ е­лен­ный зап­ я­тым­ и спис­ ок строк, на­чи­ (cp) наю­щих комм­ ен­тар­ ий. За подр­ об­но­стя­ми об­ ра­ти­тесь к онл­ айн-справ­ке. completeopt menu,preview (cot) aABceFs Vim на­чи­на­ет вест­ и себ­ я как vi во мног­ их си­ туа­ци­ях, кот­ о­рые нев­ озм­ ож­но здесь опи­сать. cpoptions По умол­чан­ ию оп­ция вклю­че­на, чтоб­ ы не вы­ (cpo) зыв­ ать удив­ле­ния. На­лич­ ие файл­ а .vimrc от­ ключ­ а­ет сов­ мес­тим­ ость. Обыч­но это жел­ ае­ cursorcolumn nocursorcolumn мый поб­ оч­ный эфф­ ект. (cuc) Спис­ ок оп­ций для ав­тоз­ а­верш­ ен­ ия в реж­ им­ е cursorline nocursorline вставк­ и, разд­ е­ленн­ ых зап­ ят­ ы­ми. (cul) Спи­сок од­но­сим­воль­ных флаг­ ов, кажд­ ый из define (def) ^#\s*define ко­то­рых зад­ а­ет кон­кретн­ ую обл­ асть, в ко­то­ рой Vim буд­ ет или не бу­дет вес­ти себ­ я как vi. directory ., ~/tmp, /tmp Ес­ли спис­ ок пуст, ис­поль­зу­ют­ся уст­ а­новк­ и (dir) Vim по умол­чан­ ию. За под­робн­ о­стям­ и обр­ а­ти­ тесь к онл­ айн-справ­ке. equalprg (ep) Подс­ веч­ и­ва­ет столб­ ец эк­ран­ а, на ко­то­ром сто­ ит кур­сор, подс­ ветк­ ой Cursor­Co­lumn. Оп­ция по­ лезн­ а при упо­ря­доч­ и­ва­нии текс­ та по верт­ ик­ а­ ли. Мо­жет зам­ ед­лить отоб­ ра­же­ние текс­ та. Под­све­чив­ ае­ т строк­ у экр­ ан­ а, на ко­тор­ ой стои­ т курс­ ор, подс­ вет­кой CursorRow. Обл­ ег­ча­ет пои­ ск тек­ у­щей стро­ки во вре­мя ред­ акт­ и­ро­ва­ния. Вме­сте с  cursorcolumn да­ет эф­фект пер­ ек­ ре­ стия. Мо­жет за­медл­ ить ото­бра­же­ние текс­ та. Шабл­ он по­ис­ка, опи­сы­ваю­щий опр­ ед­ е­ле­ния макр­ о­сов. Зна­че­ние по умолч­ ан­ ию бе­рет­ся для про­грамм на C. Для C++ ис­поль­зуйт­ е ^\(#\s*define\ |[a-z]*\s*const\s*[a-z]*\). При ис­ поль­зов­ а­нии с ко­манд­ ой :set обр­ атн­ ые кос­ ые чер­ты нужн­ о удв­ аив­ ать. Спис­ ок раз­де­ленн­ ых за­пя­тым­ и имен ка­та­ло­ гов для файл­ а под­качк­ и. Он буд­ ет соз­дан в пер­вом ка­та­лог­ е, где это возм­ ожн­ о. Есл­ и спи­ сок пуст, файл не бу­дет созд­ ан, что сдел­ ае­ т восс­ тан­ овл­ ен­ ие нев­ озм­ ожн­ ым! Зна­че­ние . (точ­ка) озн­ а­ча­ет, что файл под­кач­ки бу­дет по­ мещ­ ен в ка­тал­ ог с ред­ акт­ ир­ уе­мым файл­ ом. Ре­ ко­менд­ уе­ тс­ я по­ста­вить точк­ у (.) пер­вой в спи­ ске, чтоб­ ы пов­ торн­ ое ред­ акт­ и­ров­ а­ние файл­ ов при­ве­ло к пред­ у­преж­ д­ ающ­ ем­ у соо­ бщ­ е­нию. Внеш­няя про­грамм­ а, ис­поль­зуем­ ая ко­манд­ ой =. Есл­ и опц­ ия пуст­ а, применяютс­ я внутр­ ен­ ние функц­ ии фор­ма­ти­ро­ва­ния.

Установка опций 469Оп­ция Зна­чен­ ие Опи­са­ниеerrorfile (ef) errors.err Имя фай­ла ошиб­ ок для ре­жим­ а quickfix. При ис­польз­ ов­ ан­ ии ключ­ а ком­ андн­ ой стро­ки -q знач­ ен­ ие errorfile ус­та­навл­ ив­ а­ет­ся по его ар­ гу­мент­ у.errorformat (Слишк­ ом Опи­сан­ ие фор­мат­ а строк в  фор­ма­те scanf в файл­ е ошиб­ ок.(efm) длинн­ ое)expandtab (et) noexpandtab При вставк­ е таб­ ул­ я­ции она за­мен­ я­ет­ся подх­ о­ дя­щим числ­ ом про­бел­ ов.fileformat unix Опис­ ыв­ ае­ т со­глаш­ ен­ ие, ка­саю­щее­ся за­вер­ше­(ff) ния стро­ки в  тек­ у­щем бу­фе­ре. Воз­мож­ные зна­чен­ ия: dos (CR/LF), unix (LF) и  mac (CR). Обычн­ о Vim уст­ ан­ ав­ли­вае­ т эту оп­цию ав­том­ а­ тич­ е­ски.fileformats dos,unix Спи­сок сог­ ла­ше­ний по зав­ ер­шен­ ию стро­ки,(ffs) ко­то­рые Vim пыт­ ае­ тс­ я прим­ ен­ ить при чтен­ ии фай­ла. Ука­зан­ ие нес­ кольк­ их пунк­тов вклю­ ча­ет авт­ ом­ а­ти­чес­ кое рас­по­знав­ ан­ ие кон­ца строк­ и при чтен­ ии файл­ а.formatoptions Vim по умол­ча­ По­сле­дов­ ат­ ель­ность букв, оп­ре­де­ляющ­ ая, как(fo) нию: tcq; про­де­лы­ва­ет­ся авт­ ом­ ат­ ич­ ес­ кое фор­мат­ и­ров­ а­ vi по умолч­ а­ ние. За под­роб­нос­ тя­ми об­ра­тит­ есь к онл­ айн- справ­ке. нию: vtgdefault (gd) nogdefault Ко­ман­да зам­ ен­ ы ме­няе­ т все вхож­ ­ден­ ия.guifont (gfn) Спис­ ок шриф­тов, разд­ ел­ ен­ных за­пя­тым­ и, ко­ тор­ ые Vim пыт­ а­ет­ся ис­поль­зо­вать при стар­те граф­ ич­ е­ской вер­сии.hidden (hid) nohidden При выг­ руз­ке бу­фе­ра из ок­на он не уда­ля­ет­ся, а скры­ва­етс­ я.history (hi) Vim по умолч­ а­ Оп­ре­дел­ я­ет, сколь­ко ко­манд, строк по­ис­ка нию: 20; и выр­ аж­ е­ний хран­ ит­ся в ис­тор­ ии ко­манд. vi по умолч­ а­ нию: 0hlsearch nohlsearch Подсвечивает все вхождения самого последне-(hls) го шаблона поиска.icon noicon Vim пы­та­етс­ я смен­ ить имя знач­ка, связ­ ан­но­ го с окн­ ом, в кот­ о­ром он зап­ ущ­ ен. Дейс­ тв­ ие этой опц­ ии отм­ ен­ я­ет­ся опц­ ие­ й iconstring.iconstring Строк­ а, исп­ оль­зующ­ ая­ся в  кач­ е­ст­ве име­ни знач­ка для окн­ а.include (inc) ^#\s*include Опр­ ед­ ел­ я­ет шаб­лон для по­иск­ а ко­манд inclu­ de. Зна­че­ние по умол­ча­нию под­ход­ ит для про­ грамм на C.incsearch (is) noincsearch Включ­ а­ет ин­крем­ ент­ный по­иск.

470 Приложение B Табл­ иц­ а B.4 (продолжение) Опц­ ия Зна­чен­ ие Опис­ а­ние isfname (isf) @,48-57,/,.,-,_, Спис­ ок симв­ о­лов, кот­ ор­ ые мож­но вклю­чать +,,,$,:,~ в имя фай­ла и путь к файл­ у. В не-UNIX-сис­ тем­ ах наб­ ор этих сим­вол­ ов раз­лич­ ае­ тс­ я. Знак @ отв­ е­ча­ет лю­бо­му ал­фав­ ит­но-циф­ров­ о­ му сим­вол­ у. Он так­же ис­поль­зу­ет­ся в друг­ их опц­ ия­ х isXXX, опи­сан­ных ниж­ е. isident (isi) @,48-57,_,192-255 Спи­сок сим­во­лов, кот­ ор­ ые можн­ о исп­ ольз­ о­ вать как идент­ иф­ ик­ а­тор­ ы. В не-UNIX-сис­те­ мах на­бор этих сим­вол­ ов разл­ ич­ а­ет­ся. iskeyword (isk) @,48-57,_,192-255 Спи­сок сим­вол­ ов, кот­ ор­ ые можн­ о вклю­чать в клю­че­вые сло­ва. В не-UNIX-сис­тем­ ах на­ бор этих сим­вол­ ов разл­ и­ча­ет­ся. Ключ­ е­вые сло­ва исп­ ольз­ ую­ тс­ я при по­иск­ е мно­гим­ и ко­ ман­да­ми, та­ким­ и как w и [i. isprint (isp) @,161-255 Спис­ ок симв­ ол­ ов, не­пос­ редс­ т­вен­но ото­бра­ жаем­ ых на экр­ ан­ е. В не-UNIX-сис­тем­ ах на­ бор этих симв­ о­лов раз­лич­ а­ет­ся. makeef (mef) /tmp/vim##.err Имя фай­ла ошиб­ ок для ком­ анд­ ы :make. В не- UNIX-сис­те­мах на­бор этих сим­во­лов раз­ли­ чае­ т­ся. Знак­ и ## зам­ е­няю­ тс­ я на чис­ло, что­ бы имя бы­ло уник­ альн­ ым. makeprg (mp) make Прог­ рам­ма, ис­польз­ уе­мая ком­ ан­дой :make. Сим­во­лы % и # в зна­чен­ ии пар­ а­мет­ра бу­дут подс­ тавл­ ять­ся. modifiable (ma) modifiable Ес­ли вы­ключ­ ить эту оп­цию, то в буф­ ер­ е нель­ зя бу­дет дел­ ать изм­ е­не­ния. mouse Включ­ а­ет мышь в  нег­ ра­фи­чес­ ких вер­си­ях Vim. Раб­ от­ а­ет в MS-DOS, Win32, QNX pterm и xterm. За под­робн­ о­стям­ и об­рат­ и­тесь к он­ лайн-справк­ е. mousehide (mh) nomousehide Пря­чет ука­за­тель мыш­ и при на­бо­ре текс­ та и вновь по­каз­ ы­ва­ет его при движ­ ен­ ии мыш­ и. paste nopaste Ме­няе­ т больш­ ое кол­ и­че­ст­во опц­ ий так, что­ бы вставк­ а тек­ста в  окн­ о Vim при пом­ о­щи мы­ши не иск­ а­жал­ а вставл­ яем­ ый текст. Вы­ клю­чен­ ие восс­ тан­ авл­ ив­ ае­ т про­шлые зна­че­ ния этих оп­ций. За подр­ об­нос­ тям­ и обр­ а­ти­ тесь к он­лайн-справ­ке. ruler (ru) noruler Пок­ а­зы­ва­ет стро­ку и стол­бец по­зи­ции кур­ со­ра. secure nosecure Вы­ключ­ ае­ т ко­манд­ ы оп­ре­дел­ ен­ног­ о ти­па в старт­ ов­ ом фай­ле. Вклю­ча­ет­ся ав­том­ а­тич­ е­ ски, есл­ и вы не явл­ яет­ есь вла­дель­цем фай­ лов .vimrc и .exrc.

Установка опций 471Опц­ ия Знач­ ен­ ие Опи­са­ниеshellpipe (sp) Строк­ а обо­лочк­ и, исп­ ольз­ уем­ ая для за­хва­та вы­во­да из :make в файл. Зна­че­ние по умолч­ а­ нию зав­ ис­ ит от обо­лочк­ и.shellredir Строк­ а обол­ очк­ и, исп­ оль­зуем­ ая для за­хва­та(srr) выв­ од­ а из фильт­ра во врем­ енн­ ый файл. Зна­ чен­ ие по умол­ча­нию зав­ ис­ ит от обол­ очк­ и.showmode (smd) Vim по умолч­ а­ По­мещ­ а­ет соо­ б­щен­ ие в строк­ у сос­ тоян­ ия для нию: smd; реж­ и­мов вставк­ и и за­мещ­ ен­ ия, а так­же ви­ vi по умол­ча­ зуа­ льн­ о­го реж­ им­ а. нию: nosmdsidescroll (ss) 0 Оп­ре­дел­ я­ет, скольк­ о столбц­ ов прок­ руч­ и­ва­ ет­ся в го­риз­ он­тальн­ ом на­прав­лен­ ии. Ну­ле­ вое зна­че­ние по­мещ­ ае­ т курс­ ор в се­ре­дин­ у эк­ ран­ а.smartcase (scs) nosmartcase Пе­ре­опр­ е­дел­ я­ет дейс­ тв­ ие опц­ ии ignorecase, есл­ и строк­ а пои­ с­ка со­дер­жит проп­ ис­ные бук­вы.spell nospell Включ­ ае­ т пров­ ер­ку орф­ ог­ ра­фии.suffixes *.bak,~,.o,.h,. Ес­ли при за­вер­ше­нии име­ни файл­ а шаб­лон­ у info,.swp удов­лет­ вор­ яю­ т не­сколь­ко файл­ ов, знач­ е­ние этой пе­рем­ енн­ ой ус­тан­ авл­ и­вае­ т для них при­ орит­ ет, что­бы выб­ рать файл, кот­ ор­ ый буд­ ет исп­ ольз­ ов­ атьс­ я Vim.taglength (tl) 0 Опр­ е­дел­ яе­ т кол­ ич­ ес­ т­во сим­во­лов, зна­чи­мых для те­гов. Знач­ е­ние по умол­чан­ ию (ноль) указ­ ыв­ ае­ т, что зна­чим­ ы все сим­вол­ ы.tagrelative Vim по умолч­ а­ Име­на файл­ ов в фай­ле tags расс­ мат­рив­ аю­ т­ся(tr) нию: tr; от­нос­ ит­ ельн­ о кат­ а­ло­га с этим файл­ ом. vi по умолч­ а­ нию: notrtags (tag) ./tags,tags Имен­ а фай­лов для ком­ анд­ ы :tag, разд­ е­лен­ ные проб­ е­ла­ми или зап­ я­тым­ и. Симв­ о­лы ./, стоящ­ ие в  нач­ ал­ е, зам­ ен­ яю­ тс­ я на полн­ ый путь тек­ у­щег­ о файл­ а.tildeop (top) notildeop Ко­ман­да ~ раб­ о­та­ет как опе­ра­тор.undolevels (ul) 1000 Мак­си­мальн­ ое кол­ и­че­ств­ о из­ме­не­ний, кот­ о­ рые мож­но от­ме­нить. Знач­ е­ние 0 уст­ ан­ авл­ и­ вае­ т со­вмес­ти­мость с vi, при ко­тор­ ом u от­ме­ няе­ т са­му се­бя на перв­ ом уров­не отм­ е­ны. Знач­ ен­ ия по умолч­ а­нию в не-UNIX-сис­те­мах мо­гут быть раз­ным­ и.

472 Приложение B Опц­ ия Знач­ е­ние Табл­ и­ца B.4 (продолжение) viminfo (vi) Опис­ а­ние writebackup writebackup (wb) При стар­те счи­ты­вае­ т файл viminfo, а  при вых­ о­де зап­ и­сыв­ а­ет в  нег­ о. Оп­ция имее­ т слож­ное знач­ е­ние: она конт­ ро­лир­ уе­ т инф­ ор­ мац­ ию раз­но­го род­ а, ко­то­рую Vim хран­ ит в этом фай­ле. За под­робн­ о­стя­ми об­ра­тит­ есь к онл­ айн-справк­ е. Созд­ ав­ ать ре­зервн­ ую коп­ ию пе­ред пер­ ез­ ап­ и­ сью фай­ла. Коп­ ия удал­ яе­ тс­ я пос­ ле усп­ еш­но­ го со­хран­ ен­ ия фай­ла, есл­ и толь­ко не вклю­ чен­ а оп­ция backup.Опции vile 9.6 vile 9.6 со­дер­жит 167 опц­ ий (в этом ред­ акт­ ор­ е они на­зыв­ аю­ тс­ я «ре­жим­ а­ ми»), ко­то­рые подр­ азд­ е­ля­ют­ся на уни­вер­сальн­ ые (universal), бу­ферн­ ые (buffer) и  оконн­ ые (window) в  за­ви­си­мо­сти от их ис­польз­ ов­ а­ния. Такж­ е есть 101 пер­ ем­ енн­ ая ок­руж­ ен­ ия, которые бо­лее при­годн­ ы для прим­ ен­ е­ ния в скрип­тах, неж­ е­ли для не­пос­ ред­ств­ ен­но­го из­ме­не­ния польз­ о­ва­те­ лем1. Не все опц­ ии дос­тупн­ ы на всех платф­ ор­мах – не­кот­ ор­ ые при­м­ ен­ я­ ютс­ я толь­ко в X11 или Win32. В табл. B.5 по­ка­за­ны сам­ ые важ­ные опц­ ии vile, а такж­ е знач­ е­ния по умолч­ а­нию, зад­ а­ваем­ ые на эта­пе комп­ и­ля­ции. Скрип­ты иниц­ иал­ и­за­ ции, так­ ие как vileinit.rc, пе­ре­опр­ е­де­ляю­ т нек­ от­ о­рые из этих зна­че­ ний. Боль­шая часть опц­ ий опи­сан­ а в табл. B.1 и здесь не пов­ то­ряе­ т­ся. Табл­ иц­ а B.5. Оп­ции set для vile 9.6 Опц­ ия Знач­ е­ние Опи­сан­ ие alt-tabpos (atp) noatp Опр­ е­де­ляе­ т рас­пол­ ож­ ен­ ие курс­ ор­ а на про­ animated animated бельн­ ом симв­ о­ле, пред­став­ляю­щем та­бу­ ля­цию (на пра­вом или лев­ ом его кон­це). autobuffer (ab) autobuffer Авт­ ом­ ат­ и­чес­ ки об­новл­ яе­ т сод­ ер­жи­мое ра­ боч­ их бу­фер­ ов при их из­мен­ е­нии. Ис­польз­ у­ет бу­фер­ ы «по врем­ ен­ и об­ра­ще­ ния». Буф­ е­ры отс­ орт­ ир­ ов­ а­ны в по­рядк­ е их исп­ ольз­ ов­ ан­ ия либ­ о ред­ ак­тир­ о­ва­ния. 1 Сю­да вход­ ят пе­ре­менн­ ые, ко­то­рые уст­ а­нав­ли­ва­ют­ся или ис­польз­ ую­ т­ся в кач­ ес­ тв­ е по­бочн­ ог­ о эфф­ ект­ а от дей­ст­вия дру­гих ком­ анд. По­скольк­ у они орие­ нт­ и­ро­ва­ны на скрипт­ ы, их опис­ ан­ ие очень гром­ оздк­ ое и то­же не подх­ о­ дит для этой таб­ли­цы. За подр­ обн­ ос­ тям­ и обр­ а­тит­ есь к онл­ айн-справк­ е.

Установка опций 473Оп­ция Зна­че­ние Опи­сан­ иеautocolor (ac) 0 Ав­то­ма­ти­чес­ кая под­свет­ка синт­ ак­сис­ а.autosave (as) Ес­ли сто­ит зна­чен­ ие ноль, она отк­ лю­чен­ а. Ина­че этой опц­ ии нуж­но прис­ вои­ ть не­autosavecnt больш­ ое по­ло­жит­ ельн­ ое чис­ло, оп­ред­ е­(ascnt) ляющ­ ее кол­ и­че­ст­во милл­ ис­ е­кунд ожи­да­backspacelimit ния в «ин­тер­ва­ле тиш­ ин­ ы» пер­ ед за­пус­ком(bl) auto­color-hook.backup-style noautosave Ав­том­ ат­ ич­ ес­ кое сох­ ра­не­ние фай­ла. За­bcolor пись прои­ зв­ о­дитс­ я по­сле вво­да оче­редн­ ог­ оbyteorder-mark кол­ и­чес­ тв­ а сим­вол­ ов текс­ та, указ­ ан­ног­ о(bom) в autosavecnt.check-modtime 256 Ус­тан­ авл­ и­вае­ т, сколь­ко симв­ ол­ ов нуж­но ввес­ ти для вы­полн­ ен­ ия авт­ о­ма­ти­чес­ ко­гоcindent со­хра­нен­ ия.cindent-chars backspacelimit Ес­ли оп­ция от­клю­чен­ а, вы мо­жет­ е прой­ти чер­ ез точк­ у нач­ а­ла вво­да, на­жи­мая Back­ space. off Опр­ ед­ е­ля­ет, как­ им об­ра­зом соз­даю­ тс­ я ре­ зерв­ные коп­ ии при со­хра­нен­ ии фай­ла. Воз­можн­ ые зна­че­ния: off, .bak для рез­ ерв­ ных ко­пий в стил­ е DOS и tilde для ре­зерв­ ных коп­ ий в UNIX в стил­ е Emacs hello.c~. default Уст­ а­навл­ ив­ ае­ т цвет фон­ а в тех сис­те­мах, где это подд­ ерж­ ив­ а­етс­ я. auto Управл­ я­ет про­вер­кой преф­ икс­ а, ис­поль­ зуе­мо­го для рас­поз­ нав­ ан­ ия разл­ ич­ных ти­ пов ко­ди­ровк­ и UTF. Зна­чен­ ие по умол­ча­ нию auto пред­пи­сы­вае­ т vile про­вер­ ить файл; кон­крет­ное знач­ е­ние предп­ и­сыв­ а­ет прог­ рамм­ е исп­ оль­зо­вать это зна­че­ние. nocheck-modtime Выд­ ае­ т пред­ у­преж­ д­ е­ние «file newer than buffer», ес­ли файл был изм­ ен­ ен с мо­мент­ а пос­ ледн­ ег­ о чтен­ ия или за­пи­си, и  про­сит ввес­ ти подт­ вер­жден­ ие. nocindent Вклю­ча­ет от­ступ­ ы в стил­ е C, что пом­ ож­ ет при ввод­ е расс­ тавл­ ять от­ступ­ ы авт­ о­ма­ти­ че­ски, как с autoindent. :#{}( )[] Спис­ ок симв­ ол­ ов, ин­терп­ ре­ти­руем­ ых в ре­ жи­ме cindent. Сюд­ а вход­ ят # для отс­ ту­па до столб­ца 1 и : для бол­ ее да­ле­ко­го отс­ ту­па, как по­сле метк­ и. Па­ра симв­ о­лов, расп­ ол­ о­ жен­ных в fence-pairs, при­вод­ ит к то­му, что за­ключ­ енн­ ый в эту пар­ у текст пол­ у­ча­ет до­ пол­нит­ ельн­ ый отс­ туп.

474 Приложение B Таб­ли­ца B.5 (продолжение) Оп­ция Зна­чен­ ие Опис­ ан­ ие cmode color-scheme off Встрое­ н­ный ос­нов­ной реж­ им для код­ а на C. (cs) comment-prefix default За­дае­ т име­но­ванн­ ый наб­ ор знач­ е­ний fcolor, bcol­or, video-attrs и $palette, опр­ е­дел­ енн­ ый comments ко­манд­ ой define-color-scheme. cursor-tokens ^\s*\(\(\s*[#*>] Опр­ е­дел­ яе­ т нач­ аль­ные сим­вол­ ы строк, кот­ о­ \)\|\(///*\)\)\+ рые ост­ а­нут­ся на мес­те при пе­реф­ орм­ ат­ ир­ о­ dirc ва­нии комм­ ент­ а­ри­ев. Зна­че­ния по умол­ча­ dos нию хо­ро­шо подх­ од­ ят для ком­мен­та­ри­ев в фай­лах Makefile, обол­ оч­ке и в про­грам­мах fcolor на C, а так­же в файл­ ах элек­трон­ной почт­ ы. fence-begin fence-end ^\s*/\?\ Рег­ ул­ яр­ное вы­ра­жен­ ие, опр­ ед­ е­ляющ­ ее раз­ fence-if (\s*[#*>/]\)\+/ гра­ни­чит­ ел­ и зак­ ом­мент­ и­ров­ ан­ных абзацев. fence-elif \?\s*$ Це­лью явл­ я­ет­ся сох­ ра­не­ние абзацев внут­ри fence-else комм­ ент­ а­рие­ в при пер­ еф­ орм­ а­ти­ров­ ан­ ии. fence-fi fence-pairs regex Зад­ ае­ т спо­соб вып­ олн­ ен­ ия ред­ ак­то­ром vile ана­ли­за симв­ о­лов эк­ра­на для раз­лич­ных ко­ file-encoding манд: с  пом­ ощ­ ью ре­гул­ яр­ных выр­ а­же­ний или по клас­сам симв­ ол­ ов. Ис­поль­зуе­ т пе­ре­ чис­ле­ние: both, cclass и regex. nodirc При скан­ ир­ ов­ а­нии ка­та­лог­ ов для за­верш­ ен­ ия име­ни файл­ а vile пров­ е­ряе­ т кажд­ ое встреч­ ен­ ное имя. Эта опц­ ия по­звол­ я­ет разл­ ич­ ать в при­гла­ше­нии имен­ а фай­лов и ка­та­лог­ ов. nodos При счит­ ыв­ а­нии фай­лов уда­ляе­ т CR из па­ры CR/LF, а при за­пис­ и по­мещ­ ае­ т их об­ратн­ о. Но­ вые бу­фе­ры для нес­ ущ­ ес­ тв­ ую­щих пок­ а фай­ лов нас­ ле­ду­ют тип кон­ца стро­ки из опер­ а­ци­ онн­ ой сис­тем­ ы не­за­ви­сим­ о от зна­чен­ ия dos. default Уст­ а­навл­ ив­ а­ет цвет шрифт­ а в сист­ ем­ ах, ко­ то­рые его под­держ­ и­ваю­ т. /\* Ре­гул­ ярн­ ые вы­раж­ ен­ ия для на­ча­ла и кон­ца \*/ прос­ тых не­вло­жен­ных заг­ раж­ ­даю­щих мет­ ок (fences), на­прим­ ер ком­мент­ а­рие­ в в C. ^\s*#\s*if Ре­гул­ ярн­ ые вы­раж­ е­ния, отм­ еч­ ающ­ ие нач­ а­ ^\s*#\s*elif\> ло, «else if», «else» и кон­ ец строч­ных влож­ ен­ ных за­граж­ ­дающ­ их мет­ ок (fences), так­ их как ^\s*#\s*else\> ком­ анд­ ы преп­ ро­цесс­ ор­ а C. ^\s*#\s*endif\> {}( )[] Каж­дая па­ра симв­ о­лов обоз­ на­ча­ет на­бор за­ граж­ д­ аю­щих мет­ ок, со­отв­ ет­ств­ ую­щих друг друг­ у при вво­де %. auto Оп­ре­дел­ яе­ т ко­ди­ров­ку симв­ ол­ ов буф­ е­ра и прин­ им­ а­ет одн­ о из след­ ую­щих зна­че­ний: 8bit, ascii, auto, utf-8, utf-16 или utf-32.

Установка опций 475Опц­ ия Зна­чен­ ие Опис­ а­ниеfiltername (fn) За­дае­ т фильтр для подс­ ветк­ и син­такс­ и­са для данн­ о­го осн­ овн­ ог­ о реж­ и­ма.for-buffers (fb) mixed Оп­ред­ е­ляе­ т, что имен­но исп­ оль­зуе­ тс­ я в ко­glob !echo %s ман­дах for-buffers и kill-buffer для выб­ о­ра имен­ и буф­ ер­ а: маск­ и (globbing) или ре­гу­ляр­highlight (hl) highlight ные вы­ра­же­ния.history (hi) history Зад­ ае­ т, как об­ра­щатьс­ я с сим­вол­ а­ми мас­ки (на­прим­ ер, * и ?) в при­гла­ше­нии имен­ и фай­horizscroll (hs) horizscroll ла. Знач­ е­ние off вы­клю­ча­ет под­ста­нов­ку, а on включ­ а­ет внутр­ енн­ ий мех­ ан­ изм, подд­ ерж­ и­ignoresuffix \(\.orig\|~\)$ вающ­ ий обычн­ ые маск­ и обол­ очк­ и и ~. Зна­че­(is) ние по умол­чан­ ию в  UNIX гар­ ан­тир­ у­ет со­ вмес­тим­ ость с ва­шей обо­лочк­ ой.linewrap (lw) nolinewrap Включ­ ае­ т или вык­ люч­ ае­ т подс­ ветк­ у син­так­maplonger nomaplonger си­са в со­от­ветс­ т­вующ­ их буф­ е­рах.meta-insert- mib Со­хра­ня­ет ком­ ан­ды, введ­ енн­ ые в ко­мандн­ ойbindings (mib) строк­ е с двоет­ оч­ и­ем (ми­ни-­буф­ е­ре) в буф­ ер­ е [History].mini-hilite (mh) reverse Пер­ е­мещ­ ае­ т к кон­цу длинн­ ой строк­ и и сме­ ща­ет весь эк­ран в сто­ро­ну. Есл­ и опц­ ия не ус­ та­нов­лен­ а, смещ­ ае­ т­ся тольк­ о тек­ ущ­ ая стро­ ка. Удал­ яе­ т данн­ ый шабл­ он из имен­ и файл­ а пе­ ред пои­ с­ком соо­ тв­ ет­ст­вия для суфф­ ик­сов ос­ новн­ о­го реж­ им­ а. Пе­рен­ о­сит длинн­ ые стро­ки на не­скольк­ о эк­ ран­ных строк. Функц­ ия ото­браж­ е­ния вы­бир­ а­ет са­мую длинн­ ую отоб­ раж­ енн­ ую пос­ ле­до­ва­тельн­ ость, а не са­мую кор­ от­кую. Управ­ля­ет пов­ ед­ ен­ и­ем 8-разр­ яд­ных сим­во­ лов во вре­мя встав­ки. Как пра­вил­ о, при­вязк­ и клав­ иш ра­бо­та­ют тольк­ о в ком­ анд­ном ре­жи­ ме. В реж­ им­ е вставк­ и все симв­ ол­ ы вставл­ я­ют сам­ и се­бя. Есл­ и этот реж­ им включ­ ен и вво­ дит­ся мет­ ас­ им­вол (то есть симв­ ол с ус­та­нов­ ленн­ ым восьм­ ым би­том), при­вяз­ ан­ный к  функц­ ии, то пред­почт­ ен­ ие буд­ ет отд­ а­но этой функ­ции, и она буд­ ет вы­зван­ а из ре­жи­ ма вставк­ и. Все нес­ вя­занн­ ые мет­ а­симв­ ол­ ы бу­дут по-преж­не­му вставл­ ять са­ми се­бя. Оп­ре­де­ля­ет ат­ри­бут подс­ вет­ки, кот­ о­рый ис­ польз­ уе­ тс­ я при пе­ре­клю­чен­ ии поль­зо­ват­ е­лем ре­жим­ а ре­дакт­ ир­ о­ва­ния в ми­ни-буф­ ер­ е.

476 Приложение B Табл­ иц­ а B.5 (продолжение) Оп­ция Знач­ ен­ ие Опи­са­ние modeline nomodeline modelines 5 Управл­ я­ет под­держ­кой строк­ и с ин­фор­ overlap-matches overlap-matches мац­ ие­ й о реж­ и­ме (modeline) в сти­ле vi. percent-crlf 50 percent-utf8 90 За­да­ет ко­лич­ ес­ т­во строк, кот­ ор­ ые бу­дут скан­ и­ро­ватьс­ я в нач­ а­ле и кон­це бу­фе­ра popup-choices (pc) delayed в по­ис­ках строк­ и mo­deline в сти­ле vi. popup-msgs (pm) nopopup-msgs Мен­ я­ет подс­ ветк­ у, ис­польз­ уем­ ую visual- recordseparator lfa matches для управ­ле­ния по­ка­зом пе­ре­ (rs) кры­ваю­щихс­ я сов­пад­ е­ний. resolve-links noresolve-links Про­цент­ное со­от­нош­ е­ние для строк тип­ а ruler noruler CR/LF, что­бы vile авт­ о­ма­тич­ е­ски прео­ б­ раз­ ов­ ал буф­ ер record­sep­a­ra­tor в crlf. Проц­ ентн­ ое со­от­но­ше­ние для сим­вол­ ов, сод­ ерж­ а­щих встрое­ н­ные ну­ли, что дел­ а­ ет их схож­ им­ и с сим­вол­ а­ми в код­ и­ров­ке UTF-16 или UTF-32. Ес­ли опц­ ия file-en­co­ ding уст­ ан­ овл­ е­на в auto, а со­отн­ о­шен­ ие боль­ше ука­зан­но­го, vile за­гру­зит дан­ ные буф­ ер­ а как UTF-8. Управ­ля­ет ис­поль­зов­ а­ние­ м всплыв­ аю­ ще­го окн­ а, по­мог­ ающ­ ег­ о при ав­тоз­ ав­ ер­ шен­ ии. Зна­чен­ и­ем мо­жет быть off, что­ бы ок­но не поя­ вл­ я­лось, immediate для не­ мед­ленн­ ог­ о по­явл­ е­ния ли­бо delayed, что­ бы ожи­дал­ ось пов­ торн­ ое наж­ ат­ ие на Tab. Есл­ и эта опц­ ия вклю­чен­ а, vile выв­ о­дит буф­ ер [Messages], где пок­ а­зан текст, зап­ и­ сан­ный в строк­ е со­общ­ ен­ ий. Опр­ е­де­ля­ет форм­ ат файл­ ов, кот­ о­рые vile счит­ ыв­ ае­ т и  за­пис­ ы­ва­ет. Воз­можн­ ые форм­ ат­ ы: lf (для UNIX), crlf (для DOS), cr (для Macintosh) и default (lf или crlf, в за­вис­ им­ ос­ ти от плат­форм­ ы). Есл­ и оп­ция ус­тан­ ов­ле­на, то vile рас­кры­ ва­ет имен­ а файл­ ов, ком­пон­ ент­ ы пут­ ей ко­то­рых явл­ яю­ т­ся сим­воль­ны­ми ссыл­ ка­ми. Это по­мог­ а­ет изб­ еж­ ать мног­ ок­ рат­ ных прав­ ок од­ног­ о и то­го же файл­ а из-за раз­ных пут­ ей к нем­ у. Ото­бра­жае­ т но­мер тек­ ущ­ ей стро­ки и столбц­ а в стро­ке сос­ тоя­ния, а такж­ е оп­ ре­де­ляе­ т, как­ ое про­цент­ное со­отн­ о­ше­ние строк бу­фер­ а нах­ од­ ит­ся вы­ше кур­сор­ а. a Зав­ ис­ ит от плат­форм­ ы, на ко­тор­ ой был ском­пи­ли­ров­ ан vile.

Установка опций 477Оп­ция Зна­че­ние Опи­са­ниеshowchar (sc) noshowchar По­каз­ ыв­ а­ет знач­ е­ние тек­ у­щег­ о симв­ о­showformat (sf) foreign ла в строк­ е со­стоя­ния.showmode (smd) showmode Зад­ а­ет спос­ об и врем­ я отоб­ раж­ е­ния ин­ форм­ а­ции о recordseparator в строк­ е со­sideways 0 стоя­ния. Зна­че­ния опц­ ии: always, dif­ fers (пок­ а­зы­вать, ко­гда лок­ аль­ный ре­tabinsert (ti) tabinsert жим отл­ ич­ а­етс­ я от глоб­ альн­ ог­ о), local (по­ка­зыв­ ать всег­ да, ко­гда зад­ ан ло­tagignorecase notagignorecase каль­ный ре­жим), foreign (пок­ а­зы­вать,(tc) 0 ког­ да recordseparator отл­ и­ча­ет­ся от род­ но­го) и never.taglength (tl) Отоб­ раж­ ае­ т в стро­ке сос­ тоян­ ия ин­ди­tagrelative notagrelative кат­ ор, обоз­ нач­ аю­щий ре­жим­ ы встав­ки(tr) и зам­ е­ны.tags tags Опр­ е­де­ляе­ т, на сколь­ко сим­во­лов пе­ре­tagword (tw) notagword ме­щае­ т­ся эк­ран на­ле­во или на­прав­ о. При знач­ ен­ ии 0 эк­ран бу­дет пер­ е­ме­ щать­ся на одн­ у треть. Разр­ еш­ ае­ т физ­ ич­ ес­ кую вставк­ у таб­ у­ля­ ции в  бу­фер. Есл­ и оп­цию отк­ люч­ ить (not­a­bi­n­sert), vile ник­ о­гда не бу­дет это де­лать; вмес­ то таб­ у­ляц­ ии буд­ ет встав­ лятьс­ я подх­ од­ я­щее чис­ло про­бе­лов. Де­лае­ т по­иск по те­гам неч­ увс­ т­вит­ ель­ ным к ре­ги­ст­ру. Опр­ ед­ е­ля­ет кол­ ич­ ес­ т­во сим­во­лов, зна­ чи­мых для тег­ ов. Ус­тан­ овк­ а по умол­ча­ нию, равн­ ая ну­лю, по­каз­ ы­вае­ т, что все симв­ ол­ ы яв­ляю­ т­ся зна­чим­ ы­ми. Это не рас­прос­ тра­ня­ет­ся на тег­ и, стоя­щие под курс­ ор­ ом. Для них всег­ да вып­ ол­ня­ет­ся точн­ ое со­отв­ ет­ст­вие. (Так­ ое пов­ е­ден­ ие от­ли­ча­етс­ я от друг­ их ред­ акт­ ор­ ов.) При ис­польз­ о­ван­ ии файл­ а tags из дру­ го­го ка­та­лог­ а име­на файл­ ов из это­го файл­ а счи­та­ютс­ я от­нос­ ит­ ельн­ о ка­тал­ о­ га, где расп­ ол­ аг­ ае­ тс­ я файл tags. Спи­сок файл­ ов, разд­ ел­ енн­ ых зап­ ят­ ы­ ми, в кот­ о­рых нуж­но ис­кать те­ги. Исп­ оль­зов­ ать все сло­ва под курс­ о­ром в кач­ ес­ тв­ е пои­ с­ка те­га, а не тольк­ о ту его часть, кот­ ор­ ая нач­ ин­ ае­ тс­ я с по­зи­ ции курс­ о­ра.

478 Приложение B Таб­ли­ца B.5 (продолжение) Оп­ция Знач­ ен­ ие Опис­ ан­ ие undolimit (ul) 10 Ог­ра­ни­чив­ ае­ т ко­лич­ е­ств­ о возм­ ожн­ ых от­мен. Зна­чен­ ие ноль по­ка­зы­вае­ т от­ сут­ст­вие пре­дел­ а. unicode-as-hex nounicode-as-hex При отоб­ ра­же­нии бу­фер­ а, ко­дир­ ов­ка (uh) файл­ а ко­то­рог­ о явл­ я­етс­ я одн­ ой из раз­ нов­ ид­нос­ тей Unicode (нап­ ри­мер, utf-8, utf-16 или utf-32), не-ASCII симв­ ол­ ы по­ ка­зыв­ аю­ тс­ я в фор­мат­ е \uXXXX, да­же ес­ ли дис­плей мож­ ет пок­ аз­ ать их как обычн­ ые сим­во­лы. unprintable- nounprintableas-octal Отоб­ ра­жае­ т не­печ­ а­таем­ ые симв­ ол­ ы asoctal (uo) с ус­та­нов­ленн­ ым восьм­ ым би­том в вось­ мер­ ичн­ ом вид­ е. Есл­ и опц­ ия не ус­та­нов­ лен­ а, они вы­во­дят­ся в  ше­стн­ а­дца­те­ ричн­ ом фор­мат­ е. Неп­ еч­ а­тае­мые симв­ о­ лы с не­уст­ а­новл­ ен­ным восьм­ ым би­том по­ка­зы­ваю­ тс­ я в  нот­ а­ции управ­ляю­ щих симв­ о­лов. visual-matches none Управл­ я­ет под­свет­кой всех соо­ тв­ етс­ т­ вий шабл­ он­ а по­иск­ а. Возм­ ож­ные зна­че­ ния: при none подс­ ветк­ и нет, а underline, bold и reverse исп­ оль­зую­ тс­ я для соо­ т­ вет­ств­ ующ­ их тип­ ов подс­ вет­ки (подч­ ер­ ки­ва­ние, пол­ уж­ ир­ный и инв­ ер­сия цве­ та). Такж­ е можн­ о исп­ оль­зов­ ать цвет­ а, ес­ли сис­тем­ а это под­дер­жив­ ае­ т. xterm-fkeys noxterm-fkeys Под­держ­ка мод­ и­фиц­ и­ров­ ан­ных функ­ цион­ аль­ных клав­ иш xterm пут­ ем ге­не­ ра­ции сис­темн­ ых прив­ я­зок к  Shift-, Ctrl- и Alt- для каж­дой функц­ ио­наль­ ной кла­виш­ и, предс­ тавл­ ен­ной в опис­ а­ нии тер­мин­ ал­ а. xterm-mouse noxterm-mouse Раз­ре­ша­ет ис­поль­зов­ ан­ ие мы­ши из xterm. За под­робн­ о­стя­ми об­рат­ и­тесь к он­лайн-справ­ке. xterm-title noxterm-title Раз­ре­ша­ет об­нов­лен­ ие за­го­лов­ка, есл­ и вы раб­ о­тает­ е из xterm. Вся­кий раз при пе­рек­ лю­чен­ ии в друг­ ой бу­фер vile мо­ жет обн­ ов­лять за­гол­ о­вок. Ис­польз­ у­ет пров­ ерк­ у пер­ е­менн­ ой TERM, эк­ви­вал­ ент­ ную реж­ и­му xtermmouse.

C Возможные проблемы Глава C.В  этом прил­ ож­ е­нии соб­ р­ ан­ ы возм­ ож­ные про­бле­мы, опис­ ыв­ ав­шие­сяв час­ти I. Здесь же они свед­ е­ны в одн­ ом мес­те в ви­де справ­ очн­ ик­ а.Проблемы при открытии файлов• При зап­ ус­ке vi поя­ в­ляе­ т­ся со­общ­ е­ние [open mode] Возм­ ожн­ о, не­пра­виль­но рас­поз­ нае­ т­ся тип ва­ше­го терм­ ин­ ал­ а. Вый­ дит­ е из сеа­ нс­ а ре­дакт­ ир­ о­ва­ния с пом­ о­щью ко­ман­ды :q и пров­ ерь­те пе­рем­ ен­ную ок­руж­ ен­ ия TERM. Ей нуж­но за­дать имя ваш­ е­го тер­мин­ а­ ла. Такж­ е вы мо­жет­ е спро­сить пра­вильн­ ое зна­чен­ ие тип­ а терм­ ин­ ал­ а у свое­ го сис­тем­ног­ о адм­ ин­ ис­ тр­ ат­ о­ра.• Поя­ в­ля­ет­ся од­но из сле­дую­щих соо­ б­щен­ ий: Visual needs addressable cursor or upline capability Bad termcap entry Termcap entry too long terminal: Unknown terminal type Block device required Not a typewriter Ли­бо тип ваш­ е­го тер­мин­ ал­ а не опо­знан, либ­ о что-то не так с terminfo или termcap. Введ­ ит­ е :q для вых­ о­да и пров­ ерьт­ е пер­ ем­ ен­ную ок­руж­ е­ ния $TERM ли­бо по­про­си­те сис­темн­ ог­ о ад­мин­ ис­ т­рат­ ор­ а выб­ рать тип терм­ ин­ а­ла для ваш­ ег­ о окр­ уж­ е­ния.• Поя­ вл­ яе­ т­ся соо­ б­щен­ ие [new file], ког­ да вы увер­ ен­ ы, что файл сущ­ е­ ст­вуе­ т. Пров­ ерьт­ е пра­вильн­ ость ис­поль­зов­ ан­ ия ре­ги­стр­ а симв­ ол­ ов в име­ни файл­ а (имен­ а файл­ ов в UNIX чувс­ тв­ ит­ ель­ны к ре­ги­стр­ у). Ес­ли все прав­ ильн­ о, то, воз­мож­но, вы на­ход­ и­тесь в дру­гом ка­тал­ о­ге. Введ­ ит­ е

480 Приложение C :q для вы­хо­да, по­сле че­го пров­ ерь­те, нах­ од­ и­тесь ли вы в од­ном кат­ а­ ло­ге с фай­лом (наб­ ер­ ит­ е pwd в ко­манд­ной стро­ке UNIX). Есл­ и да, то выв­ е­дит­ е спи­сок сод­ ер­жащ­ их­ся в нем фай­лов (с пом­ о­щью ls) и про­ верьт­ е, мо­жет файл сущ­ ес­ тв­ уе­ т под нем­ но­го отл­ ич­ аю­щимс­ я имен­ ем. • Вы зап­ ус­ти­ли vi, но по­пал­ и в приг­ ла­ше­ние с двоет­ оч­ ие­ м (это гов­ о­ рит о том, что вы на­ход­ ит­ есь ре­жи­ме строк­ ов­ о­го ре­дакт­ о­ра ex). Воз­можн­ о, бы­ло введ­ ен­ о прер­ ы­ва­ние пе­ред тем, как vi усп­ ел на­рис­ о­ вать эк­ран. Вой­ди­те в vi, вве­дя vi в при­гла­ше­нии ex (:). • Воз­ни­кае­ т од­но из след­ ующ­ их соо­ бщ­ ен­ ий: [Read only] File is read only Permission denied «Read only» озн­ а­ча­ет, что раз­реш­ е­но тольк­ о прос­ матр­ ив­ ать файл, а сдел­ анн­ ые изм­ е­нен­ ия не со­хра­няю­ т­ся. Возм­ ожн­ о, вы за­пуст­ ил­ и vi в реж­ им­ е про­смот­ра (ли­бо чер­ ез view, либ­ о как vi -R) или же у вас от­ сут­ств­ у­ют прав­ а на за­пись это­го файл­ а. Обр­ а­ти­тесь к разд­ е­лу «Про­ бле­мы при со­хран­ е­нии файл­ ов» ниже. • Возн­ и­кае­ т од­но из след­ ующ­ их со­общ­ е­ний: Bad file number Block special file Character special file Directory Executable Non-ascii file file non-ASCII Файл, ко­тор­ ый вы хот­ и­те от­ред­ ак­ти­ров­ ать, не яв­ля­ет­ся текс­ тов­ ым. Введ­ ит­ е :q! для вы­ход­ а и пров­ ерьт­ е его, нап­ рим­ ер, ко­манд­ ой file. • При ввод­ е :q по одн­ ой из выш­ ен­ а­званн­ ых при­чин по­явл­ яе­ тс­ я со­об­ щен­ ие: No write since last change (:quit! overrides). Вы нен­ а­рок­ ом внес­ ли изм­ е­не­ние в файл. Для вых­ о­да из vi вве­дит­ е :q!. В этом слу­чае из­мен­ е­ния, сде­ланн­ ые во врем­ я сеа­ нс­ а, не бу­дут со­хра­нен­ ы.Проблемы при сохранении файлов • Вы пы­тае­тесь за­пи­сать файл, но пол­ уч­ ае­те од­но из сле­дую­щих со­ общ­ е­ний: File exists File file exists - use w! [Existing file] File is read only








































Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook