Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 111

Автор Π Π΅ΠΉΠΌΠΎΠ½Π΄ Π­Ρ€ΠΈΠΊ Π‘Ρ‚ΠΈΠ²Π΅Π½

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π°Π½Π°Π»ΠΈΠ· ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² с использованиСм ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ слоТности, сформулированных Π² Π½Π°Ρ‡Π°Π»Π΅ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ‹.

13.3.1. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ слоТности

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ присутствуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ слоТности. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅ копию Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ экспорта Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ с диска ΠΈ Π½Π° диск, хотя ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ sed(1) являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ). НСобходима ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ способа ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π±ΡƒΡ„Π΅Ρ€Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ этот способ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π±Π΅Π· описания спСцифичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π—Π° Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ описанных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ рассмотрСнных Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ Π² уровнях Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ случайной слоТности.

Из всСх рассмотрСнных Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ed(1) ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ наимСньшСй ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΠΎΡ‡Ρ‚ΠΈ СдинствСнной Π½Π΅ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π² Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ суффиксы "Ρ€" ΠΈΠ»ΠΈ "I" для распСчатки ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² выполнСния. Π”Π°ΠΆΠ΅ послС Ρ‚Ρ€Π΅Ρ… дСсятилСтий добавлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ сущСствуСт ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€ΠΈΠ΄Ρ†Π°Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ рСдактирования, Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Π½Π°Π±ΠΎΡ€ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ дСсятка ΠΊΠΎΠΌΠ°Π½Π΄. НС ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π² части Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ слоТности, Π° ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ed строго ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½.

ΠžΠ±ΠΎΡ€ΠΎΡ‚Π½ΠΎΠΉ стороной этого являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ интСрфСйс Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ed Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄Π°ΠΆΠ΅ для Ρ‚Π°ΠΊΠΈΡ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ рСдактирования, ΠΊΠ°ΠΊ быстрый просмотр тСкстового Ρ„Π°ΠΉΠ»Π°. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ довольно ТСстко ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ свои Ρ†Π΅Π»ΠΈ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ed оказался ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ рСдактирования.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² качСствС Ρ†Π΅Π»ΠΈ добавляСтся "ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра ΠΈ рСдактирования мноТСства Ρ„Π°ΠΉΠ»ΠΎΠ²". Π’ этом случаС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Sam каТСтся Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π°Π»Π΅ΠΊΠΈΠΌ ΠΎΡ‚ минимального ed-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π΄Π°Π½Π½ΠΎΠΉ Ρ†Π΅Π»ΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»Π΅Π½ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ сСмантики унаслСдованных ed-ΠΊΠΎΠΌΠ°Π½Π΄. Они сохранили ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ, ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ возмоТностСй ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшоС число Π½ΠΎΠ²Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сами ΠΏΠΎ сСбС ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Одним ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ слоТности (слоТности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ) являСтся ΠΈΠΌΠ΅ΡŽΡ‰Π°ΡΡΡ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Sam Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ числа ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚ΠΎΡ€ β€” Π½ΠΎΠ²ΠΎΠ΅ срСдство ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ взаимодСйствия Π½Π° основС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ языкС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Π”Π°Π½Π½Ρ‹Π΅ свойства, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ΡˆΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ устройство Π²Ρ‹Π±ΠΎΡ€Π°, β€” это ΠΏΠΎΡ‡Ρ‚ΠΈ всС, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ Sam ΠΎΡ‚ гипотСтичСского ed с ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ использования ΠΌΡ‹ΡˆΠΈ.

На ΡƒΡ€ΠΎΠ²Π½Π΅ конструкции Π² Sam Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² этом нСльзя Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Π±Π΅Π· всСстороннСго Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΊΠΎΠ΄Π°. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ являСтся, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΠΏΠΎΠ»ΡƒΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ, Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ строго ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ. Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π² соотвСтствии с Π²Ρ‹ΡΠΎΡ‡Π°ΠΉΡˆΠΈΠΌΠΈ стандартами Unix-проСктирования, Ρ‡Ρ‚ΠΎ Π½Π΅ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, учитывая Π΅Π³ΠΎ происхоТдСниС.

Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Sam, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi выглядит довольно Ρ€Π°Π·Π΄ΡƒΡ‚Ρ‹ΠΌ ΠΈ Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ. Π’ vi ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ сотни ΠΊΠΎΠΌΠ°Π½Π΄, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ случайной. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ извСстно Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 5 % ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π°. ΠŸΡ€ΠΈ сравнСнии Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Sam Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ вопрос: ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ интСрфСйса vi Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ высока?

Π’ Π³Π»Π°Π²Π΅ 11 описан Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ отсутствия стандартных клавиш пСрСмСщСния курсора Π² Ρ€Π°Π½Π½ΠΈΡ… rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi Π±Ρ‹Π» ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Когда ΠΎΠ½ появился, Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΡ€ Π·Π½Π°Π», Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ понадобится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ для экранных Ρ‚Π΅Π»Π΅Ρ‚Π°ΠΉΠΏΠΎΠ² Unix клавиши пСрСмСщСния курсора. Π­Ρ‚ΠΎ сдСлало ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹ΠΌ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ клавиши h, j, ΠΊ ΠΈ 1 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ зависимыС ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° значСния Π² Π±ΡƒΡ„Π΅Ρ€Π΅ рСдактирования, слишком быстро ΠΏΡ€ΠΎΡΠ²ΠΈΠ»Π°ΡΡŒ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠ° Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ способом.

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Sam, с Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ растрового дисплСя с клавишами-стрСлками ΠΈ ΠΌΡ‹ΡˆΡŒΡŽ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΈΠΌ. И являСтся Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ.

Однако Π½Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ vi являСтся ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ повСрхностной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Π­Ρ‚ΠΎ интСрфСйсная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ Π΅Π΅ (интСрфСйс являСтся ΠΏΠΎΠ»ΡƒΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ Π² Ρ‚ΠΎΠΌ смыслС, ΠΊΠ°ΠΊ это Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π³Π»Π°Π²Π΅ 4). Π‘ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ являСтся Π»ΠΎΠ²ΡƒΡˆΠΊΠ° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π—Π° Π³ΠΎΠ΄Ρ‹ своСго сущСствования vi постСпСнно Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π» всС большС встроСнного ΡƒΠ·ΠΊΠΎΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π‘-ΠΊΠΎΠ΄Π° для выполнСния Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Sam "отказываСтся" Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ, Π° Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Emacs для этих Ρ†Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Lisp-ΠΊΠΎΠ΄Π° ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ подпроцСссами. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ vi, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Emacs, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹ΠΌΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ постоянно Ρ€Π°ΡΠΏΠ»Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π·Π° распуханиС ΠΊΠΎΠ΄Π°. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ соврСмСнными вСрсиями Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² vi ΠΈ Emacs Π½Π΅ Ρ‚Π°ΠΊΠΎΠ΅ большоС, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ. Π’ сСрСдинС 2003 Π³ΠΎΠ΄Π° Π½Π° Intel-машинС GNU Emacs Π·Π°Π½ΠΈΠΌΠ°Π» 1500 ΠšΠ±Π°ΠΉΡ‚, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ vim Π·Π°Π½ΠΈΠΌΠ°Π» 900 ΠšΠ±Π°ΠΉΡ‚. Π­Ρ‚ΠΈ 900 ΠšΠ±Π°ΠΉΡ‚ хранят Π² сСбС ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.

Для ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Ρ†Π΅Π² vi отсутствиС встроСнного языка сцСнариСв, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Emacs, стало вопросом ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΌΠΈΡ„Π° ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ vi являСтся лСгковСсным Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ. Поклонники vi Π»ΡŽΠ±ΡΡ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°Ρ… Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ с внСшними ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΈ сцСнариями для выполнСния Ρ‚Π΅Ρ… Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Emacs Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ встроСнныС сцСнарии. Однако Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° "!" Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° vi Π½Π΅ способна Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ мСньшиС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ Π±ΡƒΡ„Π΅Ρ€Π° рСдактирования, Ρ‡Π΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ строк (Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ Sam ΠΈ Wily, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ подпроцСссами Π² Π½ΠΈΡ… Ρ€Π°Π·Π²ΠΈΡ‚ΠΎ Π½Π΅ большС, Ρ‡Π΅ΠΌ Π² vi, способны, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ тСкстовыС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ строк). Если Π² vi Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈ синтаксиса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π² Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ… дСталях (Π° Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв это Ρ‚Π°ΠΊ), Ρ‚ΠΎ свСдСния ΠΎΠ± этих Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… ΠΈ синтаксисС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ встроСны Π² Π‘-ΠΊΠΎΠ΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вряд Π»ΠΈ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Π±Π°Π· ΠΌΠ΅ΠΆΠ΄Ρƒ Emacs ΠΈ vi Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒΡΡ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ vi, Π°, вСроятнСС всСго, ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ…ΡƒΠ΄ΡˆΠ°Ρ‚ΡŒΡΡ.

Emacs являСтся достаточно большим Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ с достаточно Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠΉ историСй, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ услоТняСт Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ случайной слоТности. ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ отдСлСния Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… случайных свойств конструкции Emacs ΠΎΡ‚ Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… основных элСмСнтов.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ конструкции Emacs являСтся язык Emacs Lisp. Lisp сущСствСнСн для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΎΠ½ прСдставляСт Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² настоящСС врСмя называСтся встроСнным языком написания сцСнариСв, ΠΎΠ΄Π½Π°ΠΊΠΎ Ссли Π±Ρ‹ Π΄Π°Π½Π½Ρ‹ΠΌ языком Π±Ρ‹Π» Python, Java ΠΈΠ»ΠΈ Perl, Ρ‚ΠΎ Emacs Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠΌ отличался Π±Ρ‹ Π² своих возмоТностях. Однако Π² Ρ‚ΠΎ врСмя, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π» создан Emacs (Π² 1970-Ρ… Π³ΠΎΠ΄Π°Ρ…), Lisp Π±Ρ‹Π» ΠΏΠΎΡ‡Ρ‚ΠΈ СдинствСнным языком, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΌ характСристиками (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΡƒ сборки мусора), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволяли ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ для Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий Π² emacs ΠΈ управлСния растровым дисплССм (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ) Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ случайными. Π’ истории Emacs ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ "Π²Π΅Π»ΠΈΠΊΠΎΠΌΡƒ расколу" (Ρ€Π°Π·Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ GNU Emacs/XEmacs), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСмонстрируСт Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Π½ΠΈ ΠΎΠ΄Π½Π° другая Ρ‡Π°ΡΡ‚ΡŒ конструкции Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ событий.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ событий с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ встроСнными ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ функциями являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ. Π―Π·Ρ‹ΠΊ сцСнариСв ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ ΠΈ событийная модСль, ΠΎΠ΄Π½Π°ΠΊΠΎ Π±Π΅Π· ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° Π² способС ΠΈΡ… соСдинСния конструкция Emacs Π±Ρ‹Π»Π° Π±Ρ‹ Π½Π΅ΡƒΠ·Π½Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΈ нСдССспособной. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π·Π° монопольноС использованиС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ мноТСства событий, Π° активизация Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ Π±ΡƒΡ„Π΅Ρ€Π΅ Π±Ρ‹Π»Π° Π±Ρ‹ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½Π° ΠΈΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°.