• Aucun résultat trouvé

vi и Vim

N/A
N/A
Protected

Academic year: 2022

Partager "vi и Vim"

Copied!
512
0
0

Texte intégral

(1)

И зу ч ае м р ед ак то р ы v i и V im R o b b in s, H an n ah & L am b

For nearly 30 years, vi has been the standard editor for Unix and Linux, and since 1986 this book has been the leading vi guide. But Unix isn’t what it was three decades ago, and neither is this book.

The seventh edition of Learning the vi and Vim Editors has been expanded to include detailed information on Vim, the leading vi clone.

Now the default editor on most Linux systems and the default version of vi on Mac OS X, Vim is also available for many other operating systems. This guide teaches text-editing basics as well as advanced tools, such as interactive macros and scripts to extend the editor—all in the easy-to-follow style that’s made this book a classic. You’ll learn how to:

• Move around vi with speed

• Go beyond vi basics, such as using buffers

• Use vi’s global search-and-replace function

• Customize vi and execute Unix commands

• Use Vim’s extended text objects and powerful regular expressions

• Perform multiwindow editing and write Vim scripts

• Make full use of the GUI version of Vim, called gvim

• Use Vim’s enhancements, such as syntax highlighting and extended tags

• Compare Vim with three other vi clones: nvi, elvis, and vile Learning vi or Vim is required knowledge if you use Linux or Unix, and in either case, this book is essential.

Unix

www.oreilly.com

Free online edition for 45 days with purchase of this book.

Details on last page.

y(7IA5J6*PMTSNN( +\!%!&!}!;

ISBN: 978-0-596-52983-3

US $34.99 CAN $34.99

Arnold Robbins, a professional programmer and technical author who’s worked with Unix systems since 1980, helped shape the POSIX standard for awk.

Elbert Hannah is a professional software engineer and software architect who wrote a full- screen editor in assembler in 1983 as his first professional assignment.

Linda Lamb, one of O’Reilly Media’s first editors, also worked for the company as a technical writer and marketing manager.

vi, like many of the classic utilities developed during the early years of Unix, has a reputation for being hard to navigate. Bram Moolenaar’s enhanced clone, Vim, has gone a long way toward removing reasons for such impressions.... It has become probably the most popular version of vi.”

—From the Preface

Арнольд Роббинс, Элберт Ханна и Линда Лэмб

Работа с текстом на максимальной скорости и мощност и

Изучаем

редакторы

vi и Vim

7 и зда ние

7 н овы х г лав о V

Learning the vi and Vim Editors

SEVENTH EDITION

im

(2)

Arnold Robbins, Elbert Hannah and Linda Lamb

Learning

the vi and Vim Editors

Seventh Edition

(3)

Санкт-Петербург – Москва 2013

Ар нольд Роб бинс, Эл берт Хан на и Линда Лэмб

Изучаем редакторы

vi и Vim

Седьмое издание

(4)

Изучаем редакторы vi и Vim, 7-е издание

Перевод И. Аввакумова

Главный редактор А. Галунов

Зав. редакцией Н. Макарова

Научный редактор В. Синицын

Редактор Ю. Бочина

Корректор С. Беляева

Верстка Д. Орлова

Роббинс А., Хан на Э., Лэмб Л.

Изучаем редакторы vi и Vim, 7-е издание. – Пер. с англ. – СПб.: Сим вол-Плюс, 2013. – 512 с., ил.

ISBN 978-5-93286-200-1

На протяжении 30 лет vi оставался стандартом для UNIX и Linux, а эта кни га была главным пособием по vi. Однако сейчас UNIX уже не тот, что был 30 лет назад, и книга тоже не стоит на месте. Седьмое издание существенно рас ши- рено и включает подробную информацию о Vim – самом популярном клоне vi.

Доступный стиль изложения сделал эту книгу классикой. Она незаменима, по- скольку знание vi или Vim – обязательное условие, если вы работаете в Linux или UNIX.

Вы познакомитесь как с основами, так и с продвинутыми средствами, та ки- ми как интерактивные макросы и скрипты, расширяющие возможности ре- дак тора. Вы научитесь быстро перемещаться в vi, использовать буферы, при- ме нять глобальную функцию поиска и замены vi, настраивать vi и запускать ко манды UNIX, использовать расширенные текстовые объекты Vim и мощные ре гулярные выражения, редактировать в нескольких окнах и писать скрипты в Vim, использовать все возможности графической версии Vim (gvim), приме- нять такие усовершенствования Vim, как подсветка синтаксиса и расширен- ные теги. Помимо Vim рассматриваются и другие клоны vi: nvi, elvis и vile.

ISBN 978-5-93286-200-1 ISBN 978-0-596-52983-3 (англ)

© Издательство Символ-Плюс, 2013

Authorized Russian translation of the English edition of Learning the vi and Vim Editors, Seventh Edition ISBN 9780596529833 © 2008 O’Reilly Media, Inc. All rights reserved. This trans lation is pub lished and sold by permission of O’Reilly Media, Inc., the owner of all rights to publish and sell the same.

Все права на данное издание защищены Законодательством РФ, включая право на полное или час- тичное воспроизведение в любой форме. Все товарные знаки или зарегистрированные товарные зна- ки, упоминаемые в настоящем издании, являются собственностью соответствующих фирм.

Издательство «Символ-Плюс». 199034, Санкт-Петербург, 16 линия, 7, тел. (812) 380-5007, www.symbol.ru. Лицензия ЛП N 000054 от 25.12.98.

Подписано в печать 12.12.2012. Формат 70×100 1/16. Печать офсетная. Объем 32 печ. л.

(5)

Посвящается моей жене Мириам за любовь, терпение и поддержку.

Арнольд Роббинс (шестое и седьмое издания)

(6)

Предисловие . . . .10

Часть I. Базовый и продвинутый vi . . . .19

Глава 1. Текстовый редактор vi . . . .21

Краткая историческая справка . . . .24

Открытие и закрытие файлов . . . .25

Выход без сохранения правок . . . .29

Глава 2. Простое редактирование . . . .32

Команды vi . . . .32

Перемещение курсора . . . .33

Простая правка текста . . . .37

Другие способы вставки текста . . . .50

Объединение двух строк с помощью J . . . .52

Обзор основных команд vi . . . .53

Глава 3. Быстрое перемещение . . . .55

Перемещение по экранам . . . .55

Перемещение по текстовым блокам . . . .59

Перемещение по результатам поиска . . . .60

Перемещение по номеру строки . . . .64

Обзор команд перемещения курсора в vi . . . .65

Глава 4. За рамками основ . . . .67

Другие сочетания команд . . . .67

Варианты запуска vi . . . .68

Использование буферов. . . .71

Отметка места . . . .73

Другие продвинутые команды редактирования . . . .74

Обзор команд vi для работы с буфером и метками . . . .74

Глава 5. Введение в редактор ex . . . .75

Команды ex . . . .76

Редактирование в ex . . . .78

Сохранение и выход . . . .84

Копирование одного файла в другой . . . .86

Редактирование нескольких файлов . . . .87

(7)

Оглавление 7

Глава 6. Глобальная замена . . . .91

Подтверждаем замены . . . .92

Замена, зависящая от контекста . . . .93

Поиск по шаблону . . . .94

Примеры использования шаблонов . . . .102

Финальный взгляд на шаблоны . . . .110

Глава 7. Продвинутое редактирование . . . .116

Настройка vi . . . .117

Вызов команд UNIX . . . .121

Сохранение команд . . . .124

Использование скриптов ex . . . .137

Редактирование исходного кода программы . . . .143

Глава 8. Представляем клоны vi . . . .149

Знакомьтесь: Даррелл, Даррелл и Даррелл . . . .149

Многооконное редактирование . . . .151

Графические интерфейсы . . . .152

Расширенные регулярные выражения . . . .152

Улучшенные теги . . . .154

Улучшенные возможности . . . .160

Помощь программисту . . . .165

Итоги: сравним редакторы . . . .167

Ничто не сравнится с оригиналом . . . .167

Перспектива . . . .168

Часть II. Vim . . . .169

Глава 9. Vim (vi Improved): введение . . . .171

Обзор . . . .172

Где взять Vim . . . .177

Как установить Vim в UNIX и GNU/Linux . . . .178

Установка Vim в окружении Windows . . . .183

Установка Vim в окружении Macintosh . . . .183

Другие операционные системы . . . .184

Помощь и упрощения для новичков . . . .185

Итог . . . .185

Глава 10. Главные улучшения Vim по сравнению с vi . . . .187

Встроенная справка . . . .187

Варианты запуска и инициализации . . . .189

Новые команды перемещения . . . .196

Расширенные регулярные выражения . . . .198

Сборка исполняемого файла под конкретные задачи . . . .201

Глава 11. Многооконность в Vim . . . .202

Инициализация многооконного сеанса . . . .203

Открытие окон . . . .206

Перемещение по окнам (движение курсора между окнами) . . . .209

Перемещение окон . . . .211

(8)

Изменение размера окна . . . .213

Буферы и их взаимодействие с окнами . . . .217

Теги и окна . . . .221

Редактирование с вкладками . . . .222

Закрытие и выход из окон . . . .223

Итог . . . .224

Глава 12. Скрипты Vim . . . .225

Какой ваш любимый цвет? . . . .225

Динамическая конфигурация типов файлов при помощи скриптов . . . .236

Дополнительные соображения, касающиеся скриптов Vim . . . .245

Ресурсы . . . .250

Глава 13. Графический Vim (gvim) . . . .251

Общее введение в gvim . . . .252

Настройка полос прокрутки, меню и панелей инструментов . . . .257

gvim в Microsoft Windows . . . .269

gvim в X Window System . . . .269

Опции GUI и обзор команд . . . .269

Глава 14. Улучшения Vim для программистов . . . .272

Свертка и контуры (режим контуров) . . . .273

Автоматические и умные отступы . . . .284

Ключевые слова и завершение слов по словарю . . . .293

Стеки тегов . . . .302

Подсветка синтаксиса . . . .305

Компиляция и поиск ошибок в Vim . . . .314

Заключительные соображения о написании программ . . . .319

Глава 15. Другие полезности в Vim . . . .320

Редактирование двоичных файлов . . . .320

Диграфы: не-ASCII символы . . . .322

Редактирование файлов из других мест . . . .324

Переход и смена каталогов . . . .326

Резервные копии в Vim . . . .328

Создание HTML из текста . . . .329

В чем разница? . . . .330

Отмена отмен . . . .332

На чем я остановился? . . . .333

На какой я строке? . . . .336

Сокращения команд и опций Vim . . . .338

Несколько мелочей (не обязательно для Vim) . . . .339

Другие ресурсы . . . .340

Часть III. Другие клоны vi . . . .341

Глава 16. nvi: новый vi . . . .343

Автор и история . . . .343

(9)

Оглавление 9

Важные аргументы командной строки . . . .344

Онлайн-справка и другая документация . . . .345

Инициализация . . . .346

Многооконное редактирование . . . .346

Графические интерфейсы . . . .348

Расширенные регулярные выражения . . . .348

Улучшения в редактировании . . . .349

Помощь программисту . . . .352

Интересные функции . . . .352

Исходный код и поддерживаемые операционные системы . . . .353

Глава 17. elvis . . . .354

Автор и история . . . .354

Важные аргументы командной строки . . . .355

Онлайн-справка и другая документация . . . .356

Инициализация . . . .356

Многооконное редактирование . . . .358

Графические интерфейсы . . . .360

Расширенные регулярные выражения . . . .366

Улучшенные возможности редактирования . . . .366

Помощь программисту . . . .371

Интересные особенности. . . .374

Будущее elvis . . . .380

Исходный код и другие операционные системы . . . .380

Глава 18. vile: vi Like Emacs (vi как Emacs) . . . .382

Авторы и история . . . .382

Важные аргументы командной строки . . . .383

Онлайн-справка и другая документация . . . .384

Инициализация . . . .386

Многооконное редактирование . . . .387

Графические интерфейсы . . . .389

Расширенные регулярные выражения . . . .398

Улучшенные возможности редактирования . . . .400

Помощь программисту . . . .407

Интересные особенности. . . .410

Исходный код и поддерживаемые операционные системы . . . .417

Часть IV. Приложения . . . .419

Глава A. Редакторы vi, ex и Vim . . . .421

Глава B. Установка опций . . . .458

Глава C. Возможные проблемы . . . .479

Глава D. vi и Интернет . . . .483

Алфавитный указатель . . . .495

(10)

Ре дак ти ро ва ние тек стов – од на из наи бо лее вос тре бо ван ных за дач в лю- бой ком пь ю тер ной сис те ме, а vi – один из наи бо лее по лез ных стан дарт- ных тек сто вых ре дак то ров. С по мо щью vi мож но соз да вать но вые тек- сто вые фай лы или ре дак ти ро вать имею щие ся.

Как и мно гие клас си че ские про грам мы, раз ра бо тан ные во вре ме на ста- нов ле ния UNIX, vi име ет ре пу та цию слож ной в управ ле нии про грам- мы. Соз да вая улуч шен ный клон vi под на зва ни ем Vim (от «vi improved»), Брам Мо ле нар (Bram Moolenaar) сде лал мно гое, что бы уст ра нить при- чи ны та ко го впе чат ле ния. Vim со дер жит мно го чис лен ные усо вер шен ст- во ва ния, ви зу аль ные под сказ ки и спра воч ную сис те му. Он стал, ве ро- ят но, са мой по пу ляр ной вер си ей vi, по это му в седь мом из да нии этой кни ги ему по свя ще но семь но вых глав в части II «Vim». Од на ко су ще ст- ву ет мно же ст во дру гих кло нов vi, три из ко то рых мы рас смот рим в час- ти III «Дру гие кло ны vi».

План книги

Кни га раз би та на 4 час ти и со сто ит из 18 глав и 4 при ло же ний.

Часть I «Ба зо вый и про дви ну тый vi» по мо жет бы ст ро на чать ра бо ту с vi, а так же по лу чить уг луб лен ные на вы ки, по зво ляю щие ис поль зо- вать его бо лее эф фек тив но.

В главе 1 «Тек сто вый ре дак тор vi» опи сы ва ют ся не ко то рые про стые ко- ман ды vi, с ко то рых мож но на чать зна ком ст во с про грам мой. По прак- ти куй тесь в них, по ка не ос вои те дос та точ но хо ро шо. Гла ва 2 «Про стое ре дак ти ро ва ние» по зна ко мит с не ко то ры ми эле мен тар ны ми ин ст ру- мен та ми ре дак ти ро ва ния.

Од на ко функ цио нальные возможности vi вы хо дят да ле ко за рам ки обыч ной об ра бот ки тек ста. Боль шое раз но об ра зие ко манд и оп ций по- зво лит со кра тить су ще ст вен ную часть ру тин ной ра бо ты. В главе 3 «Бы- строе пе ре ме ще ние» и главе 4 «За рам ка ми ос нов» уде ля ет ся вни ма ние бо лее про стым спо со бам вы пол не ния за дач. При пер вом чте нии вы по- лу чи те, по край ней ме ре, пред став ле ние о воз мож но стях vi и о том, ка- кие ко ман ды мож но при спо со бить под ва ши ну ж ды. Впо след ст вии мож но вер нуть ся к этим гла вам для бо лее де таль но го изу че ния.

(11)

Предисловие 11

Глава 5 «Вве де ние в ре дак тор ex», глава 6 «Гло баль ная за ме на» и гла- ва 7 «Про дви ну тое ре дак ти ро ва ние» по свя ще ны сред ст вам, по зво ляю- щим пе ре ло жить часть бре ме ни ре дак ти ро ва ния на пле чи ком пь ю те ра.

Вы по зна ко ми тесь со стро ко вым ре дак то ром ex, ле жа щим в ос но ве vi, и уз нае те, как из vi об ра щать ся к ко ман дам ex.

Глава 8 «Представляем кло ны vi» зна ко мит с рас ши ре ния ми, дос туп- ны ми в че ты рех кло нах vi. Здесь опи сы ва ют ся мно го окон ное ре дак ти- ро ва ние, гра фи че ские ин тер фей сы, рас ши рен ные ре гу ляр ные вы ра же- ния, функ ции, об лег чаю щие ре дак ти ро ва ние, и не ко то рые дру гие осо- бен но сти, тем са мым по ка зы вая план ос тав шей ся час ти кни ги. Кро ме то го, в этой гла ве есть ссыл ка на ис ход ный код пер во на чаль но го vi, ко- то рый мо жет быть лег ко ском пи ли ро ван на со вре мен ных UNIX-сис те- мах (вклю чая GNU/Linux).

Часть II «Vim» опи сы ва ет Vim – наи бо лее по пу ляр ный на се го дняш ний день клон vi.

В гла ве 9 «Vim (vi Improved): вве де ние» да ет ся об щая ин фор ма ция о Vim, в том чис ле, где взять би нар ные вер сии для наи бо лее по пу ляр ных опе- ра ци он ных сис тем и ка ко вы раз лич ные ва ри ан ты при ме не ния Vim.

В гла ве 10 «Глав ные улуч ше ния Vim по срав не нию с vi» опи сы ва ются наи бо лее су ще ст вен ные улуч ше ния в Vim по срав не нию с vi, та кие как встро ен ная справ ка, управ ле ние ини циа ли за ци ей, до пол ни тель ные ко- ман ды пе ре ме ще ния и рас ши рен ные ре гу ляр ные вы ра же ния.

Глава 11 «Мно го окон ность в Vim» уде ля ет вни ма ние мно го окон но му ре- дак ти ро ва нию, ко то рое, воз мож но, яв ля ет ся наи бо лее зна чи мым до- пол не ни ем к стан дарт но му vi. В гла ве рас смат ри ва ют ся все под роб но- сти соз да ния и ис поль зо ва ния не сколь ких окон.

В гла ве 12 «Скрип ты Vim» рас смат ри ва ет ся язык ко манд Vim, ко то рый по зво лит вам пи сать скрип ты, что бы при спо со бить Vim под ва ши ну ж- ды. Про сто та ис поль зо ва ния Vim «из ко роб ки» во мно гом объ яс ня ет ся ог ром ным ко ли че ст вом скрип тов, на пи сан ных дру ги ми поль зо ва те ля- ми и вклю чен ных в ди ст ри бу тив Vim.

В главе 13 «Гра фи че ский Vim (gvim)» рас смат ри ва ет ся Vim в со вре мен- ных гра фи че ских ок ру же ни ях, на при мер тех, ко то рые яв ля ют ся стан- дарт ны ми на со вре мен ных ком мер че ских UNIX-сис те мах, в GNU/Linux и дру гих UNIX-сис те мах, а так же в MS Windows.

Глава 14 «Улуч ше ния Vim для про грам ми стов» со сре до то че на на ис поль- зо ва нии Vim в ка че ст ве ре дак то ра для про грам ми стов, ос тав ляя за рам- ка ми его воз мож но сти обыч но го ре дак ти ро ва ния тек ста. Осо бен но цен- ны ми яв ля ют ся функ ции сво ра чи ва ния ко да и ре дак ти ро ва ния пла- нов-схем, ум ные от сту пы, под свет ка син так си са и ус ко ре ние цик ла

«ре дак ти ро ва ние-ком пи ля ция-от лад ка».

Глава 15 «Дру гие по лез ности в Vim» яв ля ет ся от час ти со би ра тель ной, так как в ней ох ва ты ва ет ся мно же ст во ин те рес ных во про сов, не во шед- ших в пре ды ду щие гла вы.

(12)

Часть III «Дру гие кло ны vi» по свя ще на трем дру гим по пу ляр ным кло- нам vi: nvi, elvis и vile.

Гла ва 16 «nvi: но вый vi», гла ва 17 «elvis» и гла ва 18 «vile: vi как Emacs»

ох ва ты ва ют раз лич ные кло ны vi: nvi, elvis и vile. В гла вах об су ж да ет- ся, как ис поль зо вать их рас ши ре ния, и опи сы ва ют ся осо бен но сти каж- до го из них.

Часть IV «При ло же ния» со дер жит по лез ные спра воч ные ма те риа лы.

В при ло же нии A «Ре дак то ры vi, ex и Vim» пе ре чис ля ют ся все ко ман ды vi и ex, от сор ти ро ван ные по функ ци ям. Кро ме то го, при во дит ся спи сок ко манд ex в ал фа вит ном по ряд ке, а так же не ко то рые ко ман ды vi и ex из Vim.

При ло же ние B «Установка опций» со дер жит спи сок оп ций ко ман ды set для vi и всех че ты рех его кло нов.

В при ло же нии C «Воз мож ные про бле мы» об су ж да ют ся воз мож ные про- бле мы при ра бо те с vi и его кло на ми, а так же спо со бы их уст ра не ния.

В при ло же нии D «vi и Ин тер нет» рас ска зы ва ет ся о мес те, ко то рое за ни- ма ет vi в бо лее ши ро кой куль ту ре UNIX и Ин тер не та.

Способ представления материала

На ша за да ча – дать хо ро ший об зор ма те риа ла, ко то рый по мо жет но- вич кам изу чить vi. Ос вое ние но во го ре дак то ра, осо бен но ре дак то ра со все ми воз мож но стя ми vi, мо жет по ка зать ся не пре одо ли мой за да чей.

Мы сде ла ли по пыт ку пред ста вить ос нов ные кон цеп ции и ко ман ды в ло- гич ной и удо бо чи тае мой фор ме.

По сле из ло же ния об щих ос нов vi, при ме ни мых вез де, мы пе ре хо дим к бо лее глу бо ко му рас смот ре нию Vim. Кар ти ну за вер ша ет об зор nvi, elvis и vile. По сле дую щие раз де лы опи сы ва ют ус лов ные обо зна че ния, ис поль зуе мые в этой кни ге.

Обсуждение команд vi

Здесь вы най де те крат кое опи са ние ос нов ной идеи, пред ше ст вую щее уз ко спе циа ли зи ро ван ным раз де лам. За тем при во дят ся при ме ры при- ме не ния этой ко ман ды в каж дом кон крет ном слу чае на ря ду с ее опи са- ни ем и син так си сом ис поль зо ва ния.

Условные обозначения

В опи са нии син так си са и в при ме рах дан ные для вво да на бра ны шриф- том MonoCondensed. То же ка са ет ся на зва ний ко манд, имен фай лов и оп- ций. Пе ре мен ные (то есть то, что не бу дет вво дить ся бу к валь но, а бу дет за ме нять ся при вво де ко ман ды на нуж ное зна че ние) на бра ны кур­сив­ным­

MonoCondensed. Квад рат ные скоб ки оз на ча ют, что пе ре мен ная яв ля ет ся не обя за тель ной. На при мер, в стро ке с син так си сом:

(13)

Предисловие 13

vi [filename]

filename бу дет за ме не но на ре аль ное имя фай ла. Скоб ки го во рят о том, что ко ман да vi мо жет вы зы вать ся без ука за ния име ни фай ла. Са ми скоб ки вво дить не на до.

Не ко то рые при ме ры по ка зы ва ют ре зуль тат ра бо ты ко манд, вво ди мых в ко манд ной стро ке UNIX. В та ких при ме рах то, что вы ре аль но вво ди- те, на бра но шриф том MonoCondensed Bold, что бы от ли чать это от от кли ка сис те мы. На при мер:

$ ls

ch01.xml ch02.xml ch03.xml ch04.xml

В при ме рах ко да кур­сив обо зна ча ет ком мен та рий, ко то рый вво дить не на до. В ос нов ном тек сте кур си вом вы де ле ны спе ци аль ные тер ми ны ли- бо то, на что сле ду ет об ра тить вни ма ние.

Сле дуя об ще при ня тым со гла ше ни ям по до ку мен та ции UNIX, ссыл ки ви да printf(3) ука зы ва ют на элек трон ное спра воч ное ру ко во дство (ко то- рое мож но по лу чить по сред ст вом ко ман ды man). Этот при мер ссы ла ет ся на стра ни цу функ ции printf() в раз де ле 3 это го ру ко во дства (в боль- шин ст ве сис тем нуж но вве сти man 3 printf, что бы уви деть ее).

Клавиши

На про тя же нии всей кни ги вы встре ти те таб ли цы, со дер жа щие ко ман- ды vi и ре зуль та ты их ра бо ты:

Кла­ви­ши Ре­зуль­та­ты

ZZ "practice" (New file) 6 lines, 320 characters

Вве ди те ко ман ду вы хо да с со хра не ни ем – ZZ. Ваш файл бу дет со- хра нен как обыч ный файл UNIX.

В этом при ме ре ко ман да ZZ при ве де на в ле вом столб це. В рам ке спра ва со дер жит ся стро ка (или не сколь ко строк) эк ра на, по ка зы ваю щая ре- зуль тат вы пол не ния ко ман ды. По ло же ние кур со ра по ка за но ин вер си ей фо на и цве та сим во лов. В этом слу чае, по сколь ку ZZ со хра ня ет файл и вы хо дит из про грам мы, по сле за пи си фай ла вы уви ди те стро ку со- стоя ния; по ло же ние кур со ра не по ка за но. Под рам кой рас по ло же но объ яс не ние ко ман ды и ее ре зуль та та.

Ино гда к ко ман дам vi об ра ща ют ся при по мо щи од но вре мен но го на жа- тия кла ви ши CTRL с дру гой кла ви шей. В ос нов ном тек сте та кая ком би- на ция кла виш обыч но за пи сы ва ет ся так: CTRL-G. В при ме рах ко да в та ких слу ча ях пе ред на зва ни ем кла ви ши ста вят знак встав ки (^), на- при мер ^G оз на ча ет, что при на жа тии на G нуж но удер жи вать нажатой кла ви шу CTRL.

(14)

Возможные проблемы

В тех раз де лах, где у вас мо гут воз ник нуть затруд нения, со дер жит ся пе ре чень воз мож ных оши бок при вы пол не нии тех или иных за дач. Вы мо же те про смот реть эти ошиб ки и вер нуть ся к ним, ко гда столк не тесь с по доб ной про бле мой на прак ти ке. Что бы уп ро стить дос туп к пе реч ню воз мож ных оши бок, они при ве де ны так же в при ло же нии С.

Что нужно знать

Мы по ла га ем, что вы уже про чли «Learning the Unix Operating System»

(O’Reilly) или ка кое-ни будь дру гое вве де ние в UNIX. Вы долж ны знать, как:

осу ще ст в лять вход в сис те му и вы ход из нее;

вво дить ко ман ды UNIX;

ме нять ка та ло ги;

вы во дить спи сок фай лов в ка та ло ге;

соз да вать, ко пи ро вать и уда лять фай лы.

Зна ком ст во с grep (global search program, про грам ма гло баль но го по ис- ка) и сим во ла ми под ста нов ки так же бу дет по лез ным.

Замечания и вопросы

Свои за ме ча ния и во про сы по этой кни ге от прав ляй те, по жа луй ста, из- да те лю:

O’Reilly Media, Inc.

1005 Gravenstein Highway North Sebastopol, CA 95472

800-998-9938 (in the United States or Canada) 707-829-0515 (international or local)

707-829-0104 (fax)

Тех ни че ские во про сы и за ме ча ния о кни ге при сы лай те на элек трон ный ад рес:

bookquestions@oreilly.com

Веб-сайт этой кни ги со дер жит при ме ры, спи сок оши бок и пла ны бу ду- щих из да ний. Стра ни ца рас по ла га ет ся по ад ре су:

http://www.oreilly.com/catalog/9780596529833

Для по лу че ния до пол ни тель ной ин фор ма ции о на ших кни гах, кон фе- рен ци ях, про грамм ных про дук тах, ин фор ма ци он ных цен трах и о се ти O’Reilly Network по се ти те наш веб-сайт:

http://www.oreilly.com

(15)

Предисловие 15

Safari

®

Books Online

Ес ли вы ви ди те зна чок Safari® Books Online на ва шей лю би мой тех ни че ской кни ге, это оз на ча ет, что кни га дос туп на он лайн по сред ст вом O’Reilly Network Safari Bo ok shelf.

Safari пред ла га ет луч шее ре ше ние, не же ли элек трон ные кни ги. Это вир ту аль ная биб лио те ка, где вы мо же те лег ко най ти лю бую из ты сяч тех ни че ских книг, ко пи ро вать и встав лять фраг мен ты ко да, ска чи вать от дель ные гла вы и бы ст ро на хо дить от ве ты, ко гда вам нуж на са мая точ ная и ак ту аль ная ин фор ма ция. По про буй те это бес плат но на http://

safari.oreilly.com.

О предыдущих изданиях

В пя том из да нии кни ги под на зва ни ем «Learning the vi Editor» ко ман- ды ре дак то ра ex рас смат ри ва лись бо лее под роб но. В гла вах 5, 6 и 7 с по- мо щью боль шо го ко ли че ст ва при ме ров разъ яс ня лись слож ные функ- ции ex и vi в та ких те мах, как син так сис ре гу ляр ных вы ра же ний, гло- баль ные за ме ны, фай лы .exrc, со кра ще ния слов, ото бра же ние кла виш и скрип ты ре дак ти ро ва ния. Не сколь ко при ме ров бы ло взя то из жур на- ла «Unix World». Валь тер Зинц (Walter Zintz) на пи сал учеб ник о vi из двух час тей1, рас ска зы ваю щий о не сколь ких не из вест ных нам ве щах и со дер жа щий мно же ст во гра мот ных при ме ров, ко то рые ил лю ст ри ру- ют уже рас смот рен ные на ми функ ции. Рэй Шварц (Ray Swartz) в од ной из сво их за ме ток так же по де лил ся по лез ны ми со ве та ми2. Мы бла го дар- ны им за идеи, из ло жен ные в этих ма те риа лах.

Шес тое из да ние «Learning the vi Editor» со дер жа ло оз на ко ми тель ный об зор че ты рех дос туп ных «кло нов», то есть ре дак то ров со схо жи ми прин ци па ми ра бо ты. Мно гие из них со дер жа ли улуч ше ния по срав не- нию с vi. Сле до ва тель но, мож но го во рить о су ще ст во ва нии «се мей ст ва»

ре дак то ров vi. Из да ние в рав ной сте пе ни уде ля ло вни ма ние nvi, Vim, elvis и vile с це лью по зна ко мить чи та те ля с эти ми кло на ми.

Так же в шес том из да нии бы ло до бав ле но сле дую щее:

В ос нов ной текст вне се ны мно го чис лен ные ис прав ле ния и до пол не- ния.

В кон це каж дой гла вы при ве де на свод ка со от вет ст вую щих ко манд.

1 Две ста тьи Валь те ра Зин ца: «vi Tips for Power Users», Unix World, ап рель 1990 и «Using vi to Automate Complex Edits», Unix World, май 1990. (В при- ло же нии D ука за ны веб-ад ре са этих ста тей.)

2 «Answers to Unix», Unix World, ав густ 1990.

(16)

Но вые гла вы, по свя щен ные каж до му из кло нов vi, функ ции и/или рас ши ре ния, об щие для двух или бо лее кло нов, и мно го окон ное ре- дак ти ро ва ние.

Гла вы, рас ска зы ваю щие не мно го об ис то рии, це лях, уни каль ных осо бен но стях, спо со бах ус та нов ки каж до го из кло нов vi.

Но вое при ло же ние, где го во рит ся о мес те vi в бо лее ши ро кой куль ту- ре UNIX и Ин тер не та.

Предисловие к седьмому изданию

Седь мое из да ние «Learning the vi and Vim Editors» со дер жит все луч- шее от шес то го. Вре мя по ка за ло, что имен но Vim яв ля ет ся са мым по пу- ляр ным кло ном vi, так что в этом из да нии об зор дан но го ре дак то ра су- ще ст вен но рас ши рен (ему да же от ве де но ме сто в на зва нии кни ги). Но что бы кни га ос та ва лась по лез ной для как мож но боль ше го чис ла чи та- те лей, мы ос та ви ли и об но ви ли ма те риа лы о nvi, elvis и vile.

Что нового

В этом из да нии по яви лись сле дую щие но вые ма те риа лы:

Вне се ны ис прав ле ния в ос нов ном тек сте.

Семь но вых глав, в ко то рых все сто рон не рас смат ри ва ет ся Vim.

Ма те ри ал про со вре мен ное со стоя ние nvi, elvis и vile.

Два при ло же ния из пре ды ду ще го из да ния, со дер жа щие справ ку по ex и vi, бы ли объ еди не ны в од но, ко то рое те перь со дер жит еще и до- пол ни тель ные ма те риа лы по Vim.

Об нов ле ны дру гие при ло же ния.

Версии

При тес ти ро ва нии раз лич ных функ ций vi ис поль зо ва лись сле дую щие про грам мы:

Вер сия vi для Solaris как наи бо лее близ кая к вер сии vi в UNIX.

Вер сия про грам мы nvi 1.79 Кей та Бос ти ча (Keith Bostic).

Вер сия про грам мы elvis 2.2 Сти ва Кир кен дал ля (Steve Kirkendall).

Вер сия Vim 7.1 Бра ма Мо ле на ра (Bram Moolenaar).

Вер сия vile 9.6 Ке ви на Бейт тне ра (Kevin Buettner), То ма Ди ки (Tom Di ckey) и По ла Фок са (Paul Fox).

(17)

Предисловие 17

Благодарности для шестого издания

В пер вую оче редь бла го да рю свою же ну Ми ри ам за за бо ту о де тях, по ка я ра бо тал над кни гой, в осо бен но сти во вре мя «вол шеб ных ча сов» не по- сред ст вен но пе ред обе дом. Я дол жен ей ог ром ное ко ли че ст во ти ши ны и мо ро же но го.

Пол Ман но (Paul Manno) из Тех ни че ско го кол лед жа ком пь ю тер ных тех но ло гий Джорд жии (Georgia Tech College of Computing) ока зал не- оце ни мую по мощь в ус ми ре нии мо их про грамм пе ча ти. Лен Мюл нер (Len Muellner) и Эрик Рэй (Erik Ray) из O’Reilly & Associates по мо га ли с про грам ма ми для SGML. Мак рос vi, на пи сан ный Джер ри Пи ком (Jer- ry Peek), ока зал ся бес цен ным.

Хо тя при под го тов ке но во го и ис прав ле ния ста ро го ма те риа ла ис поль- зо ва лись все упо мя ну тые про грам мы, боль шая часть ре дак ти ро ва ния осу ще ст в ля лась в Vim вер сий 4.5 и 5.0 под GNU/Linux (Red Hat 4.2).

Я бла го да рен Кей ту Бос ти чу (Keith Bostic), Сти ву Кир кен дал лю (Steve Kirkendall), Бра му Мо ле на ру (Bram Moolenaar), По лу Фок су (Paul Fox), То му Ди ки (Tom Dickey) и Ке ви ну Бейт тне ру (Kevin Buettner), про ве- ряв шим кни гу и снаб див шим ме ня важ ны ми ма те риа ла ми для глав с 8 по 12 (но ме ра этих глав со от вет ст ву ют шес то му из да нию).

Без элек три че ст ва, вы ра ба ты вае мо го энер ге ти че ской ком па ни ей, ра бо- тать на ком пь ю те ре не воз мож но. Од на ко ко гда элек три че ст во есть в ро- зет ке, вы пе ре стае те ду мать о нем. Точ но так же и при на пи са нии кни- ги – без ре дак то ра у вас ни че го не по лу чит ся, од на ко ко гда он де ла ет свою ра бо ту, о нем лег ко за быть. Ги ги Эс таб рук (Gigi Estabrook) из O’Reil- ly – это про сто жем чу жи на. Ра бо тать с ней од но удо воль ст вие. Я вы со ко це ню все, что она де ла ла и про дол жа ет де лать для ме ня.

И на ко нец, мно го бла го дар но стей ко ман де O’Reilly & Associates.

Ар нольд Роб бинс (Arnold Robbins) Ra’anana, Из ра иль, июнь 1998

(18)

Благодарности для седьмого издания

И сно ва Ар нольд бла го да рит свою же ну Ми ри ам за лю бовь и под держ- ку. Раз мер дол га в ви де ти ши ны и мо ро же но го про дол жа ет рас ти. Кро- ме то го, он бла го да рен Дж.Д. «Илиа ду» Фрей зе ру (J.D. «Illiad» Frazer) за пре крас ные ко мик сы User Friendly1.

Эл берт хо тел бы по бла го да рить Ан ну, Кел ли, Боб би и сво их ро ди те лей за про яв лен ный ин те рес к его ра бо те в не лег кое вре мя. Их эн ту зи азм был за ра зи тель ным и бес цен ным.

Бла го да рим Кей та Бос ти ча (Keith Bostic) и Сти ва Кир кен дал ля (Steve Kir kendall) за вклад в до ра бот ку глав об их ре дак то рах. Том Ди ки (Tom Dickey) внес зна чи тель ный вклад в под го тов ку гла вы о vile и таб ли цы оп- ций ко ман ды set в при ло же нии B. Брам Мо ле нар (Bram Moolenaar), ав- тор Vim, в этот раз так же вы пол нил про вер ку всей кни ги. Ро берт П.

Дж. Дэй (Robert P.J. Day), Мэтт Фрай (Matt Frye), Юдит Май ер сон (Judith Myerson) и Сти вен Фиг гинс (Stephen Figgins) да ли цен ные за ме ча ния по все му тек сту.

Ар нольд и Эл берт хо тят по бла го да рить Эн ди Ора (Andy Ora) и Иза бель Кунк ле (Isabel Kunkle) за ре дак тор скую ра бо ту, а так же всех со труд ни- ков O’Reilly Media.

Ар нольд Роб бинс (Arnold Robbins) Ноф Айа лон, Из ра иль, 2008 Эл берт Хан на (Elbert Hannah)

Кил дир, Ил ли нойс, США, 2008

1 Ес ли вы ни че го не слы ша ли о User Friendly, зай ди те на http://www.user­

friendly.org.

(19)

I

Часть I.

Базовый и продвинутый vi

Часть I по мо жет бы ст ро на чать ра бо ту с vi, а так же по лу чить уг луб лен- ные на вы ки, по зво ляю щие ис поль зо вать vi бо лее эф фек тив но. Ма те ри- ал ох ва ты ва ет ори ги наль ный ба зо вый vi, а рас смат ри вае мые ко ман ды мож но ис поль зо вать в лю бой его вер сии; по сле дую щие гла вы по свя ще- ны по пу ляр ным кло нам vi. Часть I со сто ит из сле дую щих глав:

Гла ва 1 «Тек сто вый ре дак тор vi»

Гла ва 2 «Про стое ре дак ти ро ва ние»

Гла ва 3 «Бы строе пе ре ме ще ние»

Гла ва 4 «За рам ка ми ос нов»

Гла ва 5 «Вве де ние в ре дак тор ex»

Гла ва 6 «Гло баль ная за ме на»

Гла ва 7 «Про дви ну тое ре дак ти ро ва ние»

Гла ва 8 «Представляем кло ны vi»

(20)
(21)

1

Глава 1.

Текстовый редактор vi

UNIX1 со дер жит мно же ст во ре дак то ров, ко то рые мо гут об ра ба ты вать тек сто вые фай лы, будь то фай лы, со дер жа щие дан ные, ис ход ный код или обыч ный текст. Та ко вы ми яв ля ют ся, на при мер, стро ко вые ре дак- то ры ed и ex, ото бра жаю щие на эк ра не лишь од ну стро ку из фай ла. Кро- ме то го, есть эк ран ные ре дак то ры, на при мер vi и Emacs, у ко то рых на эк ра не тер ми на ла ото бра жа ет ся часть фай ла. Тек сто вые ре дак то ры, ос- но ван ные на X Window System, так же ши ро ко дос туп ны и ста но вят ся все по пу ляр нее. Как в GNU Emacs, так и в его по том ке XEmacs до пус ка- ет ся ис поль зо ва ние не сколь ких X-окон; дву мя дру ги ми ин те рес ны ми ва ри ан та ми яв ля ют ся ре дак то ры sam и Acme от Bell Labs. В Vim так же дос ту пен ин тер фейс, ос но ван ный на X.

vi – это наи бо лее по лез ный стан дарт ный тек сто вый ре дак тор в ва шей сис те ме. (vi – это со кра ще ние от «visual editor», то есть ви зу аль ный ре- дак тор; про из но сит ся как «ви-ай». Это хо ро шо про ил лю ст ри ро ва но на рис. 1.1.) В от ли чие от Emacs, он дос ту пен прак ти че ски в не из мен ном ви де на лю бой со вре мен ной сис те ме UNIX, тем са мым яв ля ясь по до би- ем лин гва­фран ка2 тек сто во го ре дак ти ро ва ния. То же мож но ска зать

1 В на стоя щее вре мя тер мин «UNIX» вклю ча ет как ком мер че ские сис те мы, вы ве ден ные из ори ги наль ной ко до вой ба зы UNIX, так и UNIX-по доб ные сис те мы с дос туп ным ис ход ным ко дом. При ме ра ми пер вых яв ля ют ся So la- ris (хо тя про ект OpenSolaris при дал ему не ко то рое «про ме жу точ ное» по ло- же ние в та кой схе ме клас си фи ка ции. – При меч. на уч. ред.), AIX и HP-UX, а вто рых пред став ля ют GNU/Linux и раз но об раз ные сис те мы, ос но ван ные на BSD. Ска зан ное в этой кни ге при ме ни мо ко всем сис те мам та ко го ти па, ес ли нет спе ци аль ной ого вор ки.

2 GNU Emacs стал уни вер саль ной вер си ей Emacs. Един ст вен ная про бле ма в том, что он не яв ля ет ся стан дарт ной ча стью боль шин ст ва ком мер че ских UNIX-сис тем, по это му его сле ду ет най ти и ус та но вить са мо стоя тель но.

(22)

про ed и ex, од на ко поль зо вать ся эк ран ны ми ре дак то ра ми на мно го удоб- нее (на столь ко удоб нее, что стро ко вые ре дак то ры сей час прак ти че ски не ис поль зу ют ся). В эк ран ном ре дак то ре мож но про лис ты вать стра ни- цы, пе ре ме щать кур сор, уда лять стро ки, встав лять сим во лы и мно гое дру гое, при этом вы сра зу ви ди те ре зуль тат сво их дей ст вий. Эк ран ные ре дак то ры ста ли по пу ляр ны ми бла го да ря воз мож но сти вно сить из ме- не ния при чте нии фай ла, как ес ли бы вы ре дак ти ро ва ли рас пе ча тан- ный эк зем п ляр, толь ко бы ст рее.

U S E R F R I E N D L Y b y I l l i a d

Copyright (c) 2000 Illiad http://www.userfriendly.org/

РЕДАКТОР "ШЕСТЬ"?

ПРИВЕТ! НА МОЕЙ МАШИНЕ УСТАНОВЛЕН LINUX, НО Я НЕ ЗНАЮ, КАК ИСПОЛЬЗОВАТЬ РЕДАКТОР "ШЕСТЬ".

ИЗВИНИТЕ, МЭМ, НО Я НЕ ПОНИМАЮ, О ЧЕМ ВЫ ГОВОРИТЕ.

СЛУШАЙТЕ, ЭТО РЕДАКТОР "ШЕСТЬ".

ВАМ ИЗВЕСТНО, КАК ПИШЕТСЯ ШЕСТЬ РИМСКИМИ ЦИФРАМИ?

ОХ, ВЫ ИМЕЕТЕ В ВИДУ "VI"?

ЭТО ТА САМАЯ ДАМА, КОТОРАЯ БЕСПОКОИЛАСЬ ИЗ-ЗА ТОГО, ЧТО МЫ ИСПОЛЬЗУЕМ СЕРВЕР С "ПАТЧАМИ".

Рис. 1.1. Про из но си те vi пра виль но

Мно гим но вич кам vi ка жет ся не по нят ным и гро мозд ким – вме сто то го что бы ис поль зо вать ком би на ции кла виш для об ра бот ки тек ста и по зво- лить вам пе ча тать обыч ным об ра зом, в этом ре дак то ре каж дой кла ви- ше на зна че на своя ко ман да. Ко гда ожи да ет ся вы зов ко ман ды на жа ти- ем кла ви ши, го во рят, что vi на хо дит ся в ко манд ном ре жи ме (command mode). Для то го что бы на чать пе ча тать соб ст вен но текст на эк ра не, не- об хо ди мо пе рей ти в спе ци аль ный ре жим встав ки (insert mode). Сле ду- ет от ме тить, что в vi ог ром ное мно же ст во ко манд.

Од на ко на чав ос вое ние vi, вы об на ру жи те, что он хо ро шо про ду ман.

Что бы за ста вить его вы пол нить слож ную ра бо ту, по рой дос та точ но не- сколь ких на жа тий кла виш. По ме ре даль ней ше го изу че ния vi вы уз нае- те ком би на ции кла виш, ко то рые все боль ше и боль ше ра бо ты по ре дак- ти ро ва нию бу дут пе ре да вать ком пь ю те ру, то есть ту да, где ей и ме сто.

vi (как и лю бой тек сто вый ре дак тор) не яв ля ет ся тек сто вым про цес со- ром ти па «what you see is what you get» (что ви дишь, то и по лу чишь).

Ес ли вам нуж но соз дать от фор ма ти ро ван ный до ку мент, то при дет ся пи сать ко ды, по ни мае мые дру гой про грам мой, ко то рая и бу дет управ- лять ви дом пе ча тае мой ко пии. Так, ес ли у не сколь ких аб за цев дол жен быть от ступ, по мес ти те спе ци аль ный код там, где на чи на ет ся и за кан- чи ва ет ся от ступ. Ко ды фор ма ти ро ва ния по зво лят вам экс пе ри мен ти ро- вать или ме нять внеш ний вид пе ча тае мых фай лов. Во мно гих слу ча ях они да ют вам на мно го боль ше кон тро ля над внеш ним ви дом до ку мен та,

(23)

23

не же ли тек сто вый про цес сор. UNIX под дер жи ва ет па кет фор ма ти ро ва- ния troff1. По пу ляр ны ми и ши ро ко дос туп ны ми аль тер на ти ва ми яв ля- ют ся из да тель ские сис те мы TEX и LATEX2.

(В дей ст ви тель но сти, vi под дер жи ва ет про стые ме ха низ мы фор ма ти ро- ва ния. На при мер, он мо жет сам пе ре но сить сло ва при дос ти же нии кон- ца стро ки или де лать ав то ма ти че ские от сту пы у но вых строк. Кро ме то го, в Vim версии 7 есть ав то ма ти че ская про вер ка ор фо гра фии.3) Как и при лю бой дея тель но сти, чем боль ше вы ре дак ти руе те, тем бы ст- рее ос вои те ре дак тор и тем вы ше бу дет ва ша про из во ди тель ность. А ко- гда вы изу чи те все воз мож но сти vi, то вряд ли за хо ти те вер нуть ся к «бо лее про стым» ре дак то рам.

В чем же за клю ча ет ся про цесс ре дак ти ро ва ния? Во-пер вых, вам мо жет по на до бить ся вста вить (insert) текст (на при мер, про пу щен ное или но- вое сло во ли бо про пу щен ное пред ло же ние) или, на обо рот, уда лить (de le­

te) текст (от дель ный сим вол или це лый аб зац). Так же долж на быть воз- мож ность ме нять (change) бу к вы или сло ва (что бы ис пра вить опе чат ки или из ме нить тер мин). Воз мож но, вам при дет ся пе ре но сить (mo ve) текст из од ной час ти фай ла в дру гую. Кро ме то го, по рой тре бу ет ся ко пи­

ро вать (copy) текст, что бы соз дать его дуб ли кат в дру гой час ти фай ла.

В от ли чие от мно гих тек сто вых про цес со ров, из на чаль ным ре жи мом, или ре жи мом «по умол ча нию», в vi яв ля ет ся ко манд ный ре жим, в ко то- ром слож ные ин те рак тив ные прав ки мож но вы пол нять на жа ти ем все го лишь не сколь ких кла виш. (А для встав ки не фор ма ти ро ван но го тек ста про сто вы пол ни те лю бую из не сколь ких ко манд «встав ки», по сле че го на чи най те на бор.)

В ка че ст ве ба зо вых ко манд ис поль зу ют ся один или не сколь ко сим во- лов. На при мер:

i

встав ка (insert).

cw

из ме нить сло во (change word).

1 troff пред на зна чен для ла зер ных прин те ров и на бор ных ма шин и яв ля ет ся

«бра том-близ не цом» nroff – па ке та фор ма ти ро ва ния для строч ных прин те- ров и тер ми на лов. Оба по ни ма ют один и тот же на бор ко манд. Сле дуя об ще- при ня то му в UNIX со гла ше нию, мы на зы ва ем troff оба па ке та. В на стоя- щее вре мя все, кто ис поль зу ет troff, ра бо та ют с его GNU-вер си ей, groff. За бо лее под роб ной ин фор ма ци ей об ра ти тесь на сайт http://www.gnu.org/soft­

wa re/groff/.

2 Для по лу че ния ин фор ма ции о TEX и LATEX по се ти те сай ты http://www.ctan.org и http://www.latex­project.org со от вет ст вен но.

3 Vim «из ко роб ки» так же мо жет де лать вы ключ ку тек ста по ле во му, пра во- му краю или по цен тру. – Прим. на уч. ред.

Références

Outline

Documents relatifs

command tells Vim to run the text through a UNIX command.The ‘a tells the editor that the text to be worked on starts at the current line and ends at mark a.. The command that

Эти основы политики призваны способствовать разработке и реализации стратегий и действий, направленных на предупреждение или снижение вреда, наносимого

• За избягване на риска от наранявания, не огъвайте опорната система на перките, когато инсталирате, настройвате или почиствате вентилатора.. Никога

(A newline character is inserted into the file when you press the ENTER key in insert mode.) If you type 200 characters before pressing ENTER , vi regards all 200 characters as

После работы котла в течении недели необходимо повторно проверить все электрические соединения на герметичность и систему отопления на наличие утечек и

Барањето за признавање или извршување може да биде придружено со документ што се однесува на пресудата, издаден од судот (вклучително и

Основнoполазиште овог рада јесте да су и политика и језик комплексни и вишедимензионални друштвени феномени који се не могу посматрати независно – и један

Така, на пример, неменливите зборови, заменките за директен и заменките за индиректен предмет можеме да ги претставиме како множества на неменливи низи