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

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

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

Если какая-Π»ΠΈΠ±ΠΎ выполняСмая make инструкция Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ctl-X * (Ctrl-X-обратная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°) пытаСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΡ… синтаксичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ошибкС, открывая ΠΎΠΊΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ пСрСмСщая курсор ΠΊ строкС с ошибкой101.

Данная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ просмотр всСй сборки с исправлСниСм синтаксиса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π½Π°Ρ€ΡƒΡˆΠ΅Π½ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСй компиляции.

15.8.2.Β Emacs ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Π²ΠΎ врСмя выполнСния

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

Emacs-Ρ€Π΅ΠΆΠΈΠΌ Grand Unified Debugger (большой ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ) ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС основныС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ Π‘: gdb(1), sdb(1), dbx(1) ΠΈ xdb(1). Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ символичСский ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Perl с использованиСм модуля perldb ΠΈ стандартныС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ для Java ΠΈ Python. БрСдства, встроСнныС Π² сам Emacs Lisp, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΊΠΎΠ΄Π° Emacs Lisp.

К ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ написания ΠΊΠ½ΠΈΠ³ΠΈ (сСрСдина 2003 Π³ΠΎΠ΄Π°) Π΅Ρ‰Π΅ Π½Π΅ сущСствовало ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ для Tcl-ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΠ· Emacs. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Tel Ρ‚Π°ΠΊΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ вряд Π»ΠΈ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ такая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°.

15.8.3.Β Emacs ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий

Π‘Ρ€Π°Π·Ρƒ послС исправлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ синтаксиса ΠΈ устранСния ошибок Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния часто трСбуСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ внСсСнныС измСнСния Π² Π°Ρ€Ρ…ΠΈΠ² систСмы контроля вСрсий. Однако Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ хотят Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ контроля вСрсий ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ рСдактирования.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Emacs ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ ситуации. Код, встроСнный Π² Emacs, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ простой Π² использовании ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΊ систСмам SCCS, RCS, CVS ΠΈΠ»ΠΈ Subversion. Команда ctl-x v v пытаСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ логичСски ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ контроля вСрсий, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ для Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π’ число Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ входят рСгистрация Ρ„Π°ΠΉΠ»Π°, Π΅Π³ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ° ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ (ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎ измСнСниям ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π²ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅)102.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Emacs ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Emacs ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ контроля вСрсий ΠΊ Ρ†Π΅Π»Ρ‹ΠΌ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π’ Ρ†Π΅Π»ΠΎΠΌ, Emacs выполняСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, дСлая ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ контроля вСрсий Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½Ρ‹ΠΌΠΈ.

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

15.8.4.Β Emacs ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

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

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

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

А Π·Π°Ρ‚Π΅ΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ Π² качСствС "ΠΏΠ»Π°Ρ‚Ρ‹" Π·Π° всС унаслСдованныС знания ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² Internet своСго Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² качСствС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ своим ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ-программистам Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΡ‚ΠΎΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

15.8.5.Β Π›ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ IDE

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

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

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

16 ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π°: Π½Π΅ изобрСтая колСсо

Когда Π²Π΅Π»ΠΈΠΊΠΈΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ воздСрТиваСтся ΠΎΡ‚ дСйствий, Π΅Π³ΠΎ сила чувствуСтся Π·Π° тысячу миль. β€”Π’Π°ΠΎ Π’ΠΈ Π§ΠΈΠ½Π³ (популярный Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄)

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

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