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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Командная строка Linux. ПолноС руководство». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 31

Автор Уильям Шоттс

ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ global (глобально), Π² Ρ‚ΠΎΠΌ смыслС, Ρ‡Ρ‚ΠΎ подстановка выполняСтся для всСх Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ искомой строки Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС. Если элСмСнт g ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, опСрация Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Π·Π°ΠΌΠ΅Π½Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния искомого Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС


ПослС выполнСния поиска с Π·Π°ΠΌΠ΅Π½ΠΎΠΉ наш Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

БъСшь ΠΆΠ΅ Π΅Ρ‰Ρ‘ этих мягких французских Π±ΡƒΠ»ΠΎΠΊ, Π΄Π° Π²Ρ‹ΠΏΠ΅ΠΉ Ρ‡Π°ΡŽ. Π­Ρ‚ΠΎ классно.

строка 2

строка 3

строка 4

строка 5

Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ подстановки ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ. Для этого Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ символ c Π² ΠΊΠΎΠ½Π΅Ρ† ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НапримСр:

:%s/строка/Π‘Ρ‚Ρ€ΠΎΠΊΠ°/gc

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π΅Ρ€Π½Π΅Ρ‚ содСрТимоС Ρ„Π°ΠΉΠ»Π° Π² ΠΏΡ€Π΅ΠΆΠ½Π΅Π΅ состояниС, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ vi Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, выдавая ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС:

Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° Π‘Ρ‚Ρ€ΠΎΠΊΠ°? (y/n/a/q/l/^E/^Y)

Π’ ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках пСрСчислСны Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², описаниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… приводится Π² Ρ‚Π°Π±Π». 12.6.

Π’Π°Π±Π»ΠΈΡ†Π° 12.6. Клавиши подтвСрТдСния Π·Π°ΠΌΠ΅Π½Ρ‹

Клавиша

ДСйствиС

y

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρƒ

n

ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅

a

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρƒ этого ΠΈ всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ

q ΠΈΠ»ΠΈ ESC

Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ

l

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρƒ этого вхоТдСния ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½ΠΎ ΠΎΡ‚ last (послСдняя)

CTRL+E, CTRL+Y

ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠ· ΠΈΠ»ΠΈ Π²Π²Π΅Ρ€Ρ… соотвСтствСнно. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для просмотра контСкста Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ вхоТдСния ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ


Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²


Иногда Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сразу нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ². НапримСр, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ внСсти измСнСния Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi позволяСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ², пСрСчислив ΠΈΡ… Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:

vi Ρ„Π°ΠΉΠ»1 Ρ„Π°ΠΉΠ»2 Ρ„Π°ΠΉΠ»3...

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΡ€ΠΎΠ΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ сСанс Ρ€Π°Π±ΠΎΡ‚Ρ‹ vi ΠΈ создадим Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для рСдактирования. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ :wq, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· vi с сохранСниСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² тСкстС. Π”Π°Π»Π΅Π΅, создайтС Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π°ΡˆΠΈΡ… экспСримСнтах. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ», Π·Π°Ρ…Π²Π°Ρ‚ΠΈΠ² Π² Π½Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls:

[ [email protected] ~]$ ls -l /usr/bin > ls-output.txt

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π² vi старый ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»Ρ‹:

[ [email protected] ~]$ vi foo.txt ls-output.txt

ПослС запуска vi Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π° экранС ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»:

БъСшь ΠΆΠ΅ Π΅Ρ‰Ρ‘ этих мягких французских Π±ΡƒΠ»ΠΎΠΊ, Π΄Π° Π²Ρ‹ΠΏΠ΅ΠΉ Ρ‡Π°ΡŽ. Π­Ρ‚ΠΎ классно.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 5

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ


Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ex-ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

:n

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ», Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

:N

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π½ΠΎ vi ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ, Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Ссли Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ нСсохранСнныС измСнСния. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ vi ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ с ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ всСх нСсохранСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ (!).

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, описанным Π²Ρ‹ΡˆΠ΅, vim (ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вСрсии vi) прСдоставляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ex-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ мноТСством Ρ„Π°ΠΉΠ»ΠΎΠ². НапримСр, ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ :buffers ΠΌΠΎΠΆΠ½ΠΎ вывСсти список Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ этом случаС список появляСтся Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части экрана:

:buffers

1 %a "foo.txt" line 1

2 "ls-output.txt" line 0

НаТмитС ENTER ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для продолТСния

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π±ΡƒΡ„Π΅Ρ€Ρƒ (Ρ„Π°ΠΉΠ»Ρƒ), Π²Π²Π΅Π΄ΠΈΡ‚Π΅ :buffer ΠΈ Π½ΠΎΠΌΠ΅Ρ€ искомого Π±ΡƒΡ„Π΅Ρ€Π°. НапримСр, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ с Π±ΡƒΡ„Π΅Ρ€Π° 1, содСрТащСго Ρ„Π°ΠΉΠ» foo.txt, Π½Π° Π±ΡƒΡ„Π΅Ρ€ 2, содСрТащий Ρ„Π°ΠΉΠ» ls-output.txt, ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

:buffer 2

послС выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° экранС появится Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°ΠΉΠ».

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² для рСдактирования


Π’Π°ΠΊΠΆΠ΅ сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ сСанс рСдактирования. Команда :e (сокращСнно ΠΎΡ‚ edit β€” Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ сСанс рСдактирования ΠΈ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку.

ЗапуститС vi снова, Π½ΠΎ Π½Π° этот Ρ€Π°Π· с СдинствСнным Ρ„Π°ΠΉΠ»ΠΎΠΌ:

[ [email protected] ~]$ vi foo.txt

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°ΠΉΠ», Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

:e ls-output.txt

ΠΈ Π½Π° экранС Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°ΠΉΠ». ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» останСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, Π² Ρ‡Π΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ:

:buffers

1 # "foo.txt" line 1

2 %a "ls-output.txt" line 0

НаТмитС ENTER ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для продолТСния

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

Π€Π°ΠΉΠ»Ρ‹, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ :e, нСдоступны для ΠΊΠΎΠΌΠ°Π½Π΄ :n ΠΈ :N. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ :buffer с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π°.

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ содСрТимого ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ


Часто Π² процСссС рСдактирования мноТСства Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ тСкста ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ копирования ΠΈ вставки, прСдставлСнных Π²Ρ‹ΡˆΠ΅. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ это ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ. Π‘Π½Π°Ρ‡Π°Π»Π°, Π² случаС с использованиСм Π΄Π²ΡƒΡ… Π½Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° Π±ΡƒΡ„Π΅Ρ€ 1 (foo.txt), Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

:buffer 1

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π° экранС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

БъСшь ΠΆΠ΅ Π΅Ρ‰Ρ‘ этих мягких французских Π±ΡƒΠ»ΠΎΠΊ, Π΄Π° Π²Ρ‹ΠΏΠ΅ΠΉ Ρ‡Π°ΡŽ. Π­Ρ‚ΠΎ классно.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 5

Π”Π°Π»Π΅Π΅ пСрСмСститС курсор Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ yy, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку.

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

:buffer 2

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° экранС Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π½Π΅ΠΊΠΈΠΉ список Ρ„Π°ΠΉΠ»ΠΎΠ² (здСсь ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒ):

343700

-rwxr-xr-x 1 root root 31316 2011-12-05 08:58 [

-rwxr-xr-x 1 root root 8240 2011-12-09 13:39 411toppm

-rwxr-xr-x 1 root root 111276 2012-01-31 13:36 a2p

-rwxr-xr-x 1 root root 25368 2010-10-06 20:16 a52dec

-rwxr-xr-x 1 root root 11532 2011-05-04 17:43 aafire

-rwxr-xr-x 1 root root 7292 2011-05-04 17:43 aainfo

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ курсор Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ строку, ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ„Π°ΠΉΠ»Π΅, ввСдя ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ p:

343700

БъСшь ΠΆΠ΅ Π΅Ρ‰Ρ‘ этих мягких французских Π±ΡƒΠ»ΠΎΠΊ, Π΄Π° Π²Ρ‹ΠΏΠ΅ΠΉ Ρ‡Π°ΡŽ. Π­Ρ‚ΠΎ классно..

-rwxr-xr-x 1 root root 31316 2011-12-05 08:58 [

-rwxr-xr-x 1 root root 8240 2011-12-09 13:39 411toppm

-rwxr-xr-x 1 root root 111276 2012-01-31 13:36 a2p

-rwxr-xr-x 1 root root 25368 2010-10-06 20:16 a52dec

-rwxr-xr-x 1 root root 11532 2011-05-04 17:43 aafire

-rwxr-xr-x 1 root root 7292 2011-05-04 17:43 aainfo

Вставка Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ»


ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ». Для выполнСния этого ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ сСанс vi ΠΈ запуститС Π½ΠΎΠ²Ρ‹ΠΉ, с ΠΎΠ΄Π½ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ:

[ [email protected] ~]$ vi ls-output.txt

На экранС снова появится список Ρ„Π°ΠΉΠ»ΠΎΠ²:

343700

-rwxr-xr-x 1 root root 31316 2011-12-05 08:58 [

-rwxr-xr-x 1 root root 8240 2011-12-09 13:39 411toppm

-rwxr-xr-x 1 root root 111276 2012-01-31 13:36 a2p

-rwxr-xr-x 1 root root 25368 2010-10-06 20:16 a52dec

-rwxr-xr-x 1 root root 11532 2011-05-04 17:43 aafire

-rwxr-xr-x 1 root root 7292 2011-05-04 17:43 aainfo

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ курсор Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ строку ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ex-ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

:r foo.txt

Команда :r (сокращСнно ΠΎΡ‚ read β€” Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ) вставит ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ курсора. Π’Π΅ΠΏΠ΅Ρ€ΡŒ экран Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

343700

-rwxr-xr-x 1 root root 31316 2011-12-05 08:58 [

-rwxr-xr-x 1 root root 8240 2011-12-09 13:39 411toppm

БъСшь ΠΆΠ΅ Π΅Ρ‰Ρ‘ этих мягких французских Π±ΡƒΠ»ΠΎΠΊ, Π΄Π° Π²Ρ‹ΠΏΠ΅ΠΉ Ρ‡Π°ΡŽ. Π­Ρ‚ΠΎ классно.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 5

-rwxr-xr-x 1 root root 111276 2012-01-31 13:36 a2p

-rwxr-xr-x 1 root root 25368 2010-10-06 20:16 a52dec

-rwxr-xr-x 1 root root 11532 2011-05-04 17:43 aafire

-rwxr-xr-x 1 root root 7292 2011-05-04 17:43 aainfo

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹


И здСсь vi ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½Π°ΠΌ нСсколько способов сохранСния ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². ΠœΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ex-ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ :w, Π½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ.

Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ввСсти ZZ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΈ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· vi. Аналогично, ex-ΠΊΠΎΠΌΠ°Π½Π΄Π° :wq сочСтаСт Π² сСбС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ :w ΠΈ :q, пСрвая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сохраняСт Ρ„Π°ΠΉΠ», Π° вторая Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€.

Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ :w ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя Ρ„Π°ΠΉΠ»Π°. Π’ этом случаС ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° Save As (Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ). НапримСр, Ссли Π²Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ foo.txt ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ foo1.txt, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

:w foo1.txt

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° сохранит Ρ„Π°ΠΉΠ» с Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½ΠΎ ΠΎΠ½Π° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Если послС этого ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ foo.txt, Π° Π½Π΅ foo1.txt.

13. Настройка ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ ΠΊ Π²Π²ΠΎΠ΄Ρƒ


Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим, казалось Π±Ρ‹, Ρ‚Π°ΠΊΡƒΡŽ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π΄Π΅Ρ‚Π°Π»ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Π²Π²ΠΎΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ (prompt). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ познакомимся с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ особСнностями Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ самой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ эмулятора Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.

Как ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π² Linux, ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Π²Π²ΠΎΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π² ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΡ… ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ…, ΠΈ хотя ΠΌΡ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ это ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΠΎΡΡ‚ΡŒ, ΠΎΠ½ΠΎ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ оказываСтся ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ срСдством для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌ.

Устройство строки ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ ΠΊ Π²Π²ΠΎΠ΄Ρƒ


По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ строка ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ ΠΊ Π²Π²ΠΎΠ΄Ρƒ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

[ [email protected] ~]$

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° содСрТит имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, имя хоста (сСтСвоС имя ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°) ΠΈ имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Но ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»Π°ΡΡŒ? ВсС, оказываСтся, ΠΎΡ‡Π΅Π½ΡŒ просто. Π€ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ ΠΊ Π²Π²ΠΎΠ΄Ρƒ опрСдСляСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния PS1 (сокращСнно ΠΎΡ‚ prompt string 1 β€” строка ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ 1). Π£Π²ΠΈΠ΄Π΅Ρ‚ΡŒ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PS1 ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ echo: