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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² срСдС Linux. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 7

Автор Майкл ДТонсон

Однако Π½Π΅ стоит Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ для Linux Π½Π΅Ρ‚ графичСских срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ; Π½Π° самом Π΄Π΅Π»Π΅, всС ΠΊΠ°ΠΊ Ρ€Π°Π· Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π­Ρ‚ΠΈΡ… срСдств ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство.

На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания этой ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΄Π²Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Integrated Development Environment β€” IDE), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π²Π°ΠΌΠΈ дистрибутив: KDevelop (http://kdevelop.org/), Ρ‡Π°ΡΡ‚ΡŒ срСды Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола KDE, ΠΈ Eclipse (http://eclipse.org/), мСТплатформСнная срСда, основанная Π½Π° Java, которая ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ, Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° IBM, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ поддСрТиваСтся ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ консорциумом. Однако Π² этой ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° рассмотрСнии упомянутых срСд, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ.

Π”Π°ΠΆΠ΅ нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Linux доступны многочислСнныС IDE, ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΊΠ°ΠΊ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Π”Π°ΠΆΠ΅ Ссли срСда IDE примСняСтся, всС ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ считаСтся написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π±Π΅Π· Π΅Π΅ задСйствования. ВсС это дСлаСтся для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ программисты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ захотят ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой Π²ΠΊΠ»Π°Π΄ Π² ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½Π΅ Π±Ρ‹Π»ΠΈ стСснСны вашим Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ IDE. Π‘Ρ€Π΅Π΄Π° KDevelop ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС инструмСнты Automake, Autoconf ΠΈ Libtool, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² многочислСнных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

Π‘Π°ΠΌΠΈ ΠΏΠΎ сСбС стандартныС срСдства Automake, Autoconf ΠΈ Libtool ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Они Π±Ρ‹Π»ΠΈ созданы для ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² построСний ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ± эти прилоТСния ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ автоматичСски пСрСнСсСны Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы. Π’Π²ΠΈΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ эти срСдства слоТны, Π² настоящСй ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, эти срСдства рСгулярно ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ; элСктронныС вСрсии GNU Autoconf, Automake ΠΈ Libtool [41] доступны ΠΏΠΎ адрСсу http://sources.redhat.com/autobook/.

4.1. Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Unix Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈΡΡŒ строгих ΠΈ Ρ€Π°Π·Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ особСнно Π² Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ².

Доступно мноТСство Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ; Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнными ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ vi ΠΈ Emacs. Оба Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ прСдставитСлями своСго Ρ‚ΠΈΠΏΠ°, Ρ‡Π΅Π³ΠΎ Π½Π΅ скаТСшь Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд. Π£ ΠΎΠ±ΠΎΠΈΡ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ крутая кривая обучСния, ΠΈ ΠΎΠ½ΠΈ Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. Emacs являСтся достаточно ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ; ΠΎΠ½ сам сСбС опСрационная срСда, vi Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ мСста ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для внСдрСния Π² срСду Unix. Π‘Ρ‹Π»ΠΎ написано мноТСство ΠΊΠ»ΠΎΠ½ΠΎΠ² ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… вСрсий ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΈ Ρƒ самих вСрсий Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ свои ΠΊΠ»ΠΎΠ½Ρ‹.

Π’ этой ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒΡΡ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ vi ΠΈ Emacs, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» занял Π±Ρ‹ слишком ΠΌΠ½ΠΎΠ³ΠΎ мСста. Π’ [32] ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρƒ посвящСны ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π³Π»Π°Π²Ρ‹, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ [5] ΠΈ [17]. Π’ нашСй ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сравним Emacs ΠΈ vi ΠΈ расскаТСм, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ справку ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ….

Emacs Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ руководств, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ использованиС Emacs ΠΊΠ°ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Π½ΠΎ ΠΈ показываСтся, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Emacs для чтСния ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ новостСй Π² Usenet, для ΠΈΠ³Ρ€ (ΠΈΠ³Ρ€Π° Π³ΠΎΠΌΠΎΠΊΡƒ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΏΠ»ΠΎΡ…Π°) ΠΈ для Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. Π’ Emacs, написав ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, всСгда ΠΌΠΎΠΆΠ½ΠΎ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½Π° Π½Π΅ привязана ΠΊ клавишам.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Emacs, докумСнтация ΠΏΠΎ vi ΠΌΠ΅Π½Π΅Π΅ развСрнутая ΠΈ ΠΌΠ΅Π½Π΅Π΅ извСстна. vi являСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ наТатия ΠΎΠ΄Π½ΠΎΠΉ клавиши. Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ стандартных Π±ΡƒΠΊΠ² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² тСкст, ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ эти Π±ΡƒΠΊΠ²Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ клавиши h, j, k ΠΈ l Π² качСствС клавиш управлСния курсором для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ.

Оба Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ макросы для упрощСния Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎ ΠΈΡ… макроязыки ΠΎΡ‡Π΅Π½ΡŒ сильно ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ. Emacs Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ†Π΅Π»Ρ‹ΠΉ язык программирования ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ elisp (Emacs Lisp), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡Π΅Π½ΡŒ тСсно связан с языком программирования Common Lisp. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ vi встроСн Π±ΠΎΠ»Π΅Π΅ спартанский язык, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° стСк. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ просто ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ с клавишами простыС однострочныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ vi, Π½ΠΎ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ vi, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ vi. По Emacs Lisp написано ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ руководство, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ пособиС ΠΏΠΎ использованию; ΠΏΠΎ языку, встроСнному Π² vi, докумСнтация ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скупа.

НСкоторыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Π°ΠΊ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Emacs Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ vi (viper), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΌ использованиС стандартных ΠΊΠΎΠΌΠ°Π½Π΄ vi; Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠ»ΠΎΠ½Π΅ vi ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ vile ("vi like Emacs") ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ vi Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Emacs.

4.1.1. Emacs

Emacs встрСчаСтся Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… вариациях. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Emacs Π±Ρ‹Π» написан Π ΠΈΡ‡Π°Ρ€Π΄ΠΎΠΌ Π‘Ρ‚ΠΎΠ»Π»ΠΌΠ°Π½ΠΎΠΌ (Richard Stallman), ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΠΈΠ΄Π΅Ρ€ΠΎΠ² Π€ΠΎΠ½Π΄Π° свободного ПО (Free Software Foundation β€” FSF). Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚ Π΅Π³ΠΎ GNU Emacs Π±Ρ‹Π» самым популярным Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ. Π‘ Π½Π΅Π΄Π°Π²Π½ΠΈΡ… ΠΏΠΎΡ€ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π°Ρ‡Π°Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ GNU Emacs β€” XEmacs, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ большС мСста удСляСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ графичСского интСрфСйса. XEmacs Π½Π°Ρ‡Π°Π» свою Тизнь Π² качСствС Lucid Emacs, Π½Π°Π±ΠΎΡ€Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ GNU Emacs, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΆΠ΅ Ρ€Π°ΡΠΏΠ°Π²ΡˆΠ΅ΠΉΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Lucid Technologies. Π’ намСрСния этой ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²Ρ…ΠΎΠ΄ΠΈΠ»ΠΎ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ XEmacs Π² GNU Emacs. Но ΠΈΠ·-Π·Π° тСхничСских Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ смогли ΡΠ»ΠΈΡ‚ΡŒ свои ΠΊΠΎΠ΄Ρ‹. НСсмотря Π½ΠΈ Π½Π° Ρ‡Ρ‚ΠΎ, эти Π΄Π²Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ, Π° программисты ΠΎΠ±ΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π°ΠΈΠΌΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠ΄Ρ‹ Π΄Ρ€ΡƒΠ³ Ρƒ Π΄Ρ€ΡƒΠ³Π°. Π’Π²ΠΈΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π΅ эти вСрсии ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ, Π² дальнСйшСм ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΠΈΡ… ΠΊΠ°ΠΊ Π½Π° Emacs.

Π›ΡƒΡ‡ΡˆΠΈΠΉ способ для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Emacs β€” ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ пособиС ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌ. ЗапуститС emacs ΠΈ Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ^ht. НабСритС ^x^c для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Emacs. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Π³Π΄Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Emacs. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π½Π΅ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ руководство ΠΏΠΎ Emacs, распространяСмоС вмСстС с самим Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ. Для Π²Ρ‹Π·ΠΎΠ²Π° этого руководства Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ^hi.

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

4.1.2. vi

Если Π²Ρ‹ быстро Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ тСкст ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ± ваши ΠΏΠ°Π»ΡŒΡ†Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ[3], vi Π²Π°ΠΌ навСрняка понравится, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΏΠ°Π»ΡŒΡ†Π΅Π² ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π±Ρ‹Π»ΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ мСньшС. Π­Ρ‚ΠΎΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Unix. Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с sed ΠΈΠ»ΠΈ awk Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Unix, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ стандартныС рСгулярныС выраТСния с ^ для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ строки ΠΈ $ для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ Π΅Π΅ ΠΊΠΎΠ½Ρ†Ρƒ, Ρ€Π°Π±ΠΎΡ‚Π° с vi покаТСтся Π²Π°ΠΌ простой ΠΈ СстСствСнной.

К соТалСнию, освоСниС vi ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ слоТным, Π½Π΅ΠΆΠ΅Π»ΠΈ Emacs. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΡŒ пособия ΠΏΠΎ vi ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ°ΠΌ ΠΏΠΎ Emacs, Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ вСрсии vi Π½Π΅Ρ‚ стандартного способа запуска ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ пособия. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ вСрсии, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π΅Ρ€ΡΠΈΡŽ, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ дистрибутивами Linux, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ :help.

Π’ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅ΠΉ вСрсии vi, vim ("Vi IMproved"), Π΅ΡΡ‚ΡŒ мноТСство ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… срСдств ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Emacs, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ синтаксиса, автоматичСскоС располоТСниС тСкста, язык написания сцСнариСв ΠΈ Ρ€Π°Π·Π±ΠΎΡ€ ошибок компилятора.

4.2. make

Основой программирования ΠΏΠΎΠ΄ Unix являСтся make β€” срСдство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сущСствСнно ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ описаниС компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈΡ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ нСбольшим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ ΠΏΠΎΡ€ΠΎΠΉ достаточно ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для компиляции ΠΈΡ… исходного ΠΊΠΎΠ΄Π° Π² исполняСмый Ρ„Π°ΠΉΠ», всС ΠΆΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π³Ρ‡Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ make, Ρ‡Π΅ΠΌ строку Π²Ρ€ΠΎΠ΄Π΅ gcc -02 -ggdb -DSOME DEFINE -ΠΎ foo foo.c. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ссли имССтся мноТСство Ρ„Π°ΠΉΠ»ΠΎΠ² для компиляции, Π° ΠΊΠΎΠ΄ Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ лишь Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· Π½ΠΈΡ…, make создаст Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ повлияли измСнСния. Π§Ρ‚ΠΎΠ±Ρ‹ make ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ»Π° это "Ρ‡ΡƒΠ΄ΠΎ", потрСбуСтся ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ Π² make-Ρ„Π°ΠΉΠ»Π΅ (Makefile), ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅.

 1: # Makefile

 2: