sed как текстовый редактор (отрезано от Что мешает переходу на Linux)

Любые разговоры которые хоть как-то связаны с тематикой форума

Модератор: Модераторы разделов

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

sed как текстовый редактор

Сообщение drBatty »

NickLion писал(а):
26.05.2009 08:39
Абсолютно не согласен на счет MS Office 2007. Да, сразу этот интерфейс непривычен, но через некоторое время работы (а не поиграться и удалить) он становится намного удобнее, чем в 2003. Основные действия - хоткеи, а если что-то другое, то дойти до него в 2007 гораздо проще. Одно нажатие Alt - выбираете вкладку, группу, кнопку. Все! Это проще чем через меню. По крайней мере для меня, т.к. распознать картинку для меня проще, чем искать текст, смотреть какая буква подчеркнута...

Абсолютно не согласен на счёт sed. Да, сразу этот интерфейс непривычен, но через некоторое время работы (а не поиграться и удалить) он становится намного удобнее, чем в Wordpad. Основные действия - команды из 1 буквы, а если что-то другое, то дойти до него в sed гораздо проще.
Но почему же никто не юзает sed?

---------------------------------------------------------
Добавлено:
Во первых спасибо модераторам, за то что отрезали тему. Во вторых, я ещё не выжил из ума настолько, что-бы заставлять всех и использовать самому "sed как текстовый редактор". Ну это если кто-то не верно поймёт название темы. Сам я использую для редактирования текстов kate & mcedit. sed тоже использую, и часто, но в основном для того, что-бы разобраться как эта sed с этим текстом справится, а потом засовываю её в скрипт, и далее этот скрипт сам работает, и sed сама редактирует тексты. Ну а некоторые мои выпады(vim - масдай и т.д.) следует воспринимать как шутки, и как попытку привлечь внимание тех, кто считает, что sed способна разве что тупо сменить одно слово в тексте на другое, да и то, когда M$Office рухнул, в котором тоже такая фишка есть. Выделенное - далеко не правда.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Контактная информация:

Re: sed как текстовый редактор

Сообщение diesel »

drBatty писал(а):
26.05.2009 10:16
Абсолютно не согласен на счёт sed. Да, сразу этот интерфейс непривычен, но через некоторое время работы (а не поиграться и удалить) он становится намного удобнее, чем в Wordpad.

ы? ты рефераты sed'ом набираешь? а потом sed'ом орфографические ошибки правишь?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5289
ОС: Gentoo

Re: sed как текстовый редактор

Сообщение /dev/random »

diesel писал(а):
26.05.2009 11:39
drBatty писал(а):
26.05.2009 10:16
Абсолютно не согласен на счёт sed. Да, сразу этот интерфейс непривычен, но через некоторое время работы (а не поиграться и удалить) он становится намного удобнее, чем в Wordpad.

ы? ты рефераты sed'ом набираешь? а потом sed'ом орфографические ошибки правишь?

Вообще-то, это был сарказм. Прочитай пост, на который он отвечал, и сравни.
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Контактная информация:

Re: sed как текстовый редактор

Сообщение diesel »

/dev/random писал(а):
26.05.2009 12:17
diesel писал(а):
26.05.2009 11:39
drBatty писал(а):
26.05.2009 10:16
Абсолютно не согласен на счёт sed. Да, сразу этот интерфейс непривычен, но через некоторое время работы (а не поиграться и удалить) он становится намного удобнее, чем в Wordpad.

ы? ты рефераты sed'ом набираешь? а потом sed'ом орфографические ошибки правишь?

Вообще-то, это был сарказм. Прочитай пост, на который он отвечал, и сравни.

ну если бы вместо sed был хотя бы ed, или лучше - более традиционный текстовый редактор - сарказм был бы более понятен :) а сравнение текстового процессора и "фильтра" - это не сарказм - это, простите, маразм (:
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: sed как текстовый редактор

Сообщение drBatty »

diesel писал(а):
26.05.2009 11:39
ы? ты рефераты sed'ом набираешь?

нет. вообще не набираю :)
я тут набрал ради прикола Hello world на Си, работает.
отредактировал - тоже работает....
diesel писал(а):
26.05.2009 11:39
а потом sed'ом орфографические ошибки правишь?
правлю. а что?

diesel писал(а):
26.05.2009 12:28
а сравнение текстового процессора и "фильтра" - это не сарказм - это, простите, маразм (:

нет. возможностей sed более чем достаточно для того, что бы набрать и отредактировать текст. Кстати, редактирование для меня намного более удобнее средствами sed, нежели средствами редакторов. Хотя конечно не орфография, это наверное единственное, на что sed не способна(что говорит о том, что я в скором времени прикручу к ней спеллчекер :) )
Конечно часто намного более удобнее другие редакторы, например этот я набираю в FireFox. Так-же я использую Kate, а иногда и OpenOffice. Однако, думаю, что помощью sed я смогу отредактировать текст намного быстрее чем многие M$Office'ом, особенно учитывая постоянные смены интерфейса, которые сводят на нет ранее добытые и наработанные навыки. (я и писал о том, что этот оффис 2007 уравнял меня(по опыту) с человеком, который компьютер впервые видит, а это плохо для всех - задачу никто не может выполнить)
diesel писал(а):
26.05.2009 12:28
ну если бы вместо sed был хотя бы ed, или лучше - более традиционный текстовый редактор - сарказм был бы более понятен

не, не маразм. вы просто не умеете юзать sed ;)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: sed как текстовый редактор

Сообщение drBatty »

diesel писал(а):
26.05.2009 12:28
текстового процессора и "фильтра"

учитывая, что "текстовые процессоры" используют обычно на 1-2% их возможностей... не многие знают даже о примитивной замене(найти и заменить) в блокноте!
это всего-лишь инерция вашего мышления! вы сначала ищете глазами слово кАрова, потом тыкаете туда мышью, потом стираете кА, потом набираете ко. что в ворде, что в vim'е, что в ed'е(в последних не мышкой, а кнопками). Не проще-ли просто поменять А на о во всех кАрова? А ведь это - как раз и есть задача sed.


ЗЫЖ тут мне недавно захотелось использовать aMule как демон, а не как приложение. А для этого мне потребовалось подправить конфиг, выскочило окошко, а там написано "поправьте параметр в конфиге amule.conf Accбла-бла-бла с =0, на =1". Не, я мог-бы конечно открыть Kate, там Ctrl+F, потом исправить... но не стал.

Shell

$ sed -rn '/^Acc/p' amule.conf AcceptExternalConnections=1 # оказывается такой параметр у меня есть, и он один(я этого не знал) $ sed -r '/^Acc/s/=0/=1/' -i amule.conf

вот и всё. что может быть проще поправить конфиг?

Что касается возможностей - сейчас жене искал потерявшийся "блокнот". Да, тот самый виндовый блокнот, над которым так любят глумится линуксоиды ;)
Вот юзала она его несколько лет, и до сих пор юзает. И в Linux юзает(сама нашла, я и не знал что он есть). Потому что для неё - это самый удобный инструмент. Того чего там нет ей и не надо, за то то что надо - легко доступно. Мне вот нужны 200 кодировок и 100 типов раскраски из Kate, а ей - не нужны... Т.ч. малый функционал - вовсе не всегда зло, нужен не большОй, нужен достаточный.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Контактная информация:

Re: sed как текстовый редактор

Сообщение diesel »

drBatty писал(а):
26.05.2009 15:19
diesel писал(а):
26.05.2009 12:28
а сравнение текстового процессора и "фильтра" - это не сарказм - это, простите, маразм (:

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

внимание: sed не дает вам никаких возможностей для набора и редактирования текста, совсем. возможности для набора и редактирования де-факто вам дает оболочка, или текстовый редактор, в которые вы команды sed'а вбиваете. что-то типа sed -i -e '/вот тут я набираю чего-нить/p' filename вы на самом деле используете sed не для набора, а для сохранения. От echo "вот тут я набираю свой реферат" >> filename это ничем не отличается, кроме того что sed'ом типо круче.

drBatty писал(а):
26.05.2009 15:19
Кстати, редактирование для меня намного более удобнее средствами sed, нежели средствами редакторов. Хотя конечно не орфография, это наверное единственное, на что sed не способна(что говорит о том, что я в скором времени прикручу к ней спеллчекер :) )

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


drBatty писал(а):
26.05.2009 15:19
diesel писал(а):
26.05.2009 12:28
ну если бы вместо sed был хотя бы ed, или лучше - более традиционный текстовый редактор - сарказм был бы более понятен

не, не маразм. вы просто не умеете юзать sed ;)

к сожалению ... sed не единственная утилита с которой я знаком, поэтому странного желания юзать ее для всего у меня нет .. есть возможность выбирать.
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Контактная информация:

Re: sed как текстовый редактор

Сообщение diesel »

drBatty писал(а):
26.05.2009 15:25
это всего-лишь инерция вашего мышления! вы сначала ищете глазами слово кАрова, потом тыкаете туда мышью, потом стираете кА, потом набираете ко. что в ворде, что в vim'е, что в ed'е(в последних не мышкой, а кнопками). Не проще-ли просто поменять А на о во всех кАрова? А ведь это - как раз и есть задача sed.

отлично, в sed'ом это будет sed -i 's/кАрова/корова/g' "filename", в vim'е это будет: :%s!кАрова!корова!g не выходя из редактора, если захочется проделать это только на выделенных строках, строках указанного диапазона итп - это можно сделать. с большим преимуществом перед sed - вот он текст, я его вижу, могу крутить как хочу, и нажимать undo если шо не так (:

sed - это Stream EDitor ... редактор для потоков текстовых данных ... большого колличества текстовых данных в которых надо делать однотипные изменения. использование sed для точечных "единоразовых" замен - извращение, оправданное очень редко.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: sed как текстовый редактор

Сообщение drBatty »

diesel писал(а):
27.05.2009 01:06
если захочется проделать это только на выделенных строках, строках указанного диапазона итп - это можно сделать. с большим преимуществом перед sed - вот он текст, я его вижу, могу крутить как хочу, и нажимать undo если шо не так (:

sed тоже умеет диапазоны. в том числе и достаточно хитрые, скажем "каждая седьмая строка от заданного RE"... Видеть я тоже могу как хочу, к примеру сквозь sort|uniq|myprog, undo так-же имеется(если есть такое желание...) Преимуществ - не вижу. Вижу вашу привычку смотреть сквозь vi :)
diesel писал(а):
27.05.2009 01:06
sed - это Stream EDitor ... редактор для потоков текстовых данных ... большого колличества текстовых данных в которых надо делать однотипные изменения. использование sed для точечных "единоразовых" замен - извращение, оправданное очень редко.
почему-же? я разве при этом нажму большее число клавиш? почему "большого"? совсем недавно мне советовали строчку для sed, которая по байтам сравнима с обрабатываемым текстом, те-же 50-100 символов. И никто не видит в этом никакого криминала... Очень удобно использовать sed для редактирования данных, которые точно не известны, за то известны строгие правила построения этих данных, к примеру вывод команды ls. Ну и что, что ls выводит 10 или 20 байт, а строчка sed... занимает 200? размер тут не имеет никакого значения, значения имеют только строгие правила - sed может сделать так, как нам хочется, главное - понять чёткие правила построения исходного текста. Если мы их понимаем - использование sed оправданно, даже если в результате 0 замен, если не понимаем - то да... Нужен анализ. Однако, что мешает использовать для анализа ту-же sed? Сможет ли найти vim все матерные слова в тексте? А посчитать? А выделить их красным? А потом убрать их из текста? А потом вернуть? Наверное сможет... Под чутким руководством хорошо оплачиваемого оператора...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: sed как текстовый редактор

Сообщение drBatty »

diesel писал(а):
27.05.2009 00:58
От echo "вот тут я набираю свой реферат" >> filename это ничем не отличается, кроме того что sed'ом типо круче.

а какие возможности предоставляет ваш текстовый редактор для редактирования строки? и сколько раз в году вы это используете?
diesel писал(а):
27.05.2009 00:58
редактирование предусматривает не только исправление одного слова на другое, одного символа на другой, но и как не странно нахождение того что надо заменять. и здесь придется идти на страшные извращения дабы только sed' ом это делать ...
почему-же? первое время я тоже так думал, но потом понял, что дело не в sed, я просто не привык воспринимать текст целиком, и построчно тоже не привык, я привак как вы - ползая по символом курсором... ширина и размер этого курсора не имеет значения, управлении им - тоже...
diesel писал(а):
27.05.2009 00:58
к сожалению ... sed не единственная утилита с которой я знаком, поэтому странного желания юзать ее для всего у меня нет .. есть возможность выбирать.

а кто предлагает юзать только sed?! только не я! Наоборот, sed немыслима и бесполезна без других утилит!, Мало того, если задача нестандартная, то может возникнуть необходимость в написании скрипта/программы, которая будет вызываться sed для тех целей, для которых сама sed не приспособлена. Ну к примеру
expr 100 + 1
такое можно сделать и на sed(я делал), вот только зачем? А вот интегрируются другие утилиты в sed куда как проще чем в ваш vi...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Контактная информация:

Re: sed как текстовый редактор

Сообщение diesel »

drBatty писал(а):
27.05.2009 02:12
diesel писал(а):
27.05.2009 00:58
к сожалению ... sed не единственная утилита с которой я знаком, поэтому странного желания юзать ее для всего у меня нет .. есть возможность выбирать.

а кто предлагает юзать только sed?! только не я! Наоборот, sed немыслима и бесполезна без других утилит!, Мало того, если задача нестандартная, то может возникнуть необходимость в написании скрипта/программы, которая будет вызываться sed для тех целей, для которых сама sed не приспособлена. Ну к примеру
expr 100 + 1
такое можно сделать и на sed(я делал), вот только зачем? А вот интегрируются другие утилиты в sed куда как проще чем в ваш vi...

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

Не, вы конечно можете читать с помощью less, потом для конкретного параметра придумать выражение на sed'е которое этот параметр выставит в нужное значение. Если параметров несколько то или по мере прочтения конфига выполнять необходимые замены "чтобы не забыть"(а выполнить - означает еще и проверить, поэтому переоткрыть файл less'ом), или записывать их себе отдельно куда-нить(во второе окно терминала надо полагать). Вместо того чтобы в любом текстовом редакторе, по мере прочтения, просто выставлять нужные параметры в нужные значения. Внимание вопрос: вариант с редактированием sed'ом в этом случае возможен, но на кой черт он надо? - если хочется поделится работающим конфигом - надо показывать конфиг, если хочется рассказать словами о том что заменялось и зачем - ну, надо рассказывать словами, строчка на sed'е может помочь в качестве иллюстрации - но необязательно поможет :), наиболее подходящий вариант "если надо перенести эти же изменения на другие машины, при этом не затронув остальные параметры настроек" - вариант редко встречающийся и, кстати, для "отладки" sed'овских замен легче всего использовать тот же vim :-D

drBatty писал(а):
27.05.2009 02:12
sed тоже умеет диапазоны. в том числе и достаточно хитрые, скажем "каждая седьмая строка от заданного RE"...

да, умеет, причем умеют они это примерно одинаково, поскольку предок в принципе общий ... только предназначены для разного, потому как sed и создавался в качестве "ed для неинтерактивной работы".

drBatty писал(а):
27.05.2009 02:12
diesel писал(а):
27.05.2009 01:06
sed - это Stream EDitor ... редактор для потоков текстовых данных ... большого колличества текстовых данных в которых надо делать однотипные изменения. использование sed для точечных "единоразовых" замен - извращение, оправданное очень редко.
почему-же? я разве при этом нажму большее число клавиш? почему "большого"?

да, нажмете, а еще запустите кучу лишних программ.


drBatty писал(а):
27.05.2009 02:12
Очень удобно использовать sed для редактирования данных, которые точно не известны, за то известны строгие правила построения этих данных, к примеру вывод команды ls. Ну и что, что ls выводит 10 или 20 байт, а строчка sed... занимает 200? размер тут не имеет никакого значения, значения имеют только строгие правила - sed может сделать так, как нам хочется, главное - понять чёткие правила построения исходного текста. Если мы их понимаем - использование sed оправданно, даже если в результате 0 замен, если не понимаем - то да... Нужен анализ. Однако, что мешает использовать для анализа ту-же sed?

для работы с текстовыми данными имеющими табличную структуру, такими как вывод ls -l, /etc/passwd, csv-файлы может оказаться что удобнее использовать вовсе не sed, а cut, а в более сложных случаях awk. но мы ведь говорим не о sed в скриптах и прочих автоматических штуках, где ему самое место, мы говорим о том что sed круче wordpad'а :-) и любого другого текстового редактора (:

drBatty писал(а):
27.05.2009 02:24
diesel писал(а):
27.05.2009 00:58
От echo "вот тут я набираю свой реферат" >> filename это ничем не отличается, кроме того что sed'ом типо круче.

а какие возможности предоставляет ваш текстовый редактор для редактирования строки? и сколько раз в году вы это используете?

удаление/копирование/вставка посимвольно/по словам/построчно с использованием нескольких десятков буферов, перемещение посимвольно/по словам/построчно/конец-начало строки. Это как и просили для редактирования строк, строк в файлах много, поэтому на этом возможности редактора не заканчиваются а только начинаются. Всем этим я пользуюсь каждый день. Редко пользуюсь штуками типа "удалить пять слов", только если точно знаю, не считая, сколько там слов, например IP-адресс - 7dw :)
Спасибо сказали:
Аватара пользователя
BSDevil
Сообщения: 112
ОС: MAC OS X

Re: sed как текстовый редактор

Сообщение BSDevil »

вопрос к drBatty, а вы собственно какой редактор используете? в смысле не потоковый. Я раньше юзал nano и gedit. После того как случайно наткнулся на команду vimtutor, мне теперь жалко тех кто юзает что-то отличное от vim'а. Вот к примеру надо мне в конфиге закомментировать 7-8 строк (c 15 по 22ю) :15,22s/^/# /g. Фот где функционал. Сид конечно вещь, но в скриптах.

А если посмотреть эту тему так вообще... Да о чем тут говорить VIM - лучший! Те кто юзают на 100% знают
Изображение
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: sed как текстовый редактор

Сообщение Bluetooth »

Сможет ли найти vim все матерные слова в тексте? А посчитать? А выделить их красным? А потом убрать их из текста? А потом вернуть? Наверное сможет... Под чутким руководством хорошо оплачиваемого оператора...

Сможет. под руководством пользователя, который умеет его юзать. но точно так же это относится к sed.
Редко пользуюсь штуками типа "удалить пять слов", только если точно знаю, не считая, сколько там слов, например IP-адресс - 7dw
Оригинально.а почему не dW? :)

Кстати, вим позволяет вызывать из себя сед, или же любой другой фильтр, когда это нужно.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: sed как текстовый редактор

Сообщение drBatty »

diesel писал(а):
27.05.2009 12:18
ну вот как раз тут вы и предлагаете использовать sed вместо утилиты, которая лучше подходит для редактирования текста. не того редактирования, которое предусматривает бездумную автоматическую замену, что для vi возможно, но не является единственной функциональностью, а того которое "почитать, найти, и если надо заменить". Правка конфигов - это как раз вариант "прочитать.найти.если надо - заменить".
ага. Согласен.
diesel писал(а):
27.05.2009 12:18
Не, вы конечно можете читать с помощью less, потом для конкретного параметра придумать выражение на sed'е которое этот параметр выставит в нужное значение. Если параметров несколько то или по мере прочтения конфига выполнять необходимые замены "чтобы не забыть"(а выполнить - означает еще и проверить, поэтому переоткрыть файл less'ом), или записывать их себе отдельно куда-нить(во второе окно терминала надо полагать). Вместо того чтобы в любом текстовом редакторе, по мере прочтения, просто выставлять нужные параметры в нужные значения.

less тоже пользуюсь. в связке с sed. если мне надо просмотреть много текста я его фильтрую. часто получается всё равно много, я опять фильтрую, часто даже после фильтрации его всё равно много, а нужен он весь... Вот тогда - less, но там я уже не использую поиск и т.д.(хотя знаю что он есть).
diesel писал(а):
27.05.2009 12:18
только предназначены для разного, потому как sed и создавался в качестве "ed для неинтерактивной работы".
согласен. однако вполне может работать и в интерактивном режиме. а как ещё sed-скрипты в 500 букв писать?
diesel писал(а):
27.05.2009 12:18
для работы с текстовыми данными имеющими табличную структуру, такими как вывод ls -l, /etc/passwd, csv-файлы может оказаться что удобнее использовать вовсе не sed, а cut, а в более сложных случаях awk.
cut не удобная штука для текстов ИМХО
Что до awk... Обычно одна и та-же задача решается и sed и awk. У awk конечно более понятный синтаксис... Однако этот синтаксис не удобен для текстов. Кроме того, дополнительные возможности awk только тормозят эту самую awk... Вот перл.. Использовать как более высокоуровневую sed - да, возможно. Хотя уровень сложности sed и так очень высок.

diesel писал(а):
27.05.2009 12:18
да, нажмете, а еще запустите кучу лишних программ.

зачем? ну только если для того, чего не vi, не sed не умеет, читать там, или письма писать, или проги на C компилировать. Однако всё это дополнительное можно интегрировать.
diesel писал(а):
27.05.2009 12:18
удаление/копирование/вставка посимвольно/по словам/построчно с использованием нескольких десятков буферов, перемещение посимвольно/по словам/построчно/конец-начало строки.
это всё может и sed, ну может без "нескольких десятков буферов", буфера мне как-то в таких количествах не нужны, одного хватает.
diesel писал(а):
27.05.2009 12:18
Это как и просили для редактирования строк, строк в файлах много, поэтому на этом возможности редактора не заканчиваются а только начинаются. Всем этим я пользуюсь каждый день
я тоже. однако, запутаный скрипт для sed сохраняется в истории, причём в виде, готовом для повторного использования, потому мне нужно решать только тривиальные задачи, для задач которые уже были у меня команды уже есть, даже если я не знал, что мне это когда-то понадобится повторно. Фильтровать историю в поисках нужного можно кстати и не запуская vim, прямо так, sed'ом ;)

diesel писал(а):
27.05.2009 12:18
Редко пользуюсь штуками типа "удалить пять слов", только если точно знаю, не считая, сколько там слов
я тоже. практически никогда... вот от XYZ до ABC - постоянно, и в строке, и в тексте, а "ровно 5"... Ну разве что для IP, или чисел(из 64х бит в 16иричной к примеру)... А так "ровно 5" мне не встречается.


BSDevil писал(а):
27.05.2009 16:35
вопрос к drBatty, а вы собственно какой редактор используете? в смысле не потоковый

kate. но это для таких данных.... плохо структурированных, к которым мне не придёт в голову редактирование и/или просмотр с помощью RE.
и то...
А вот ко многим текстам я применяю как раз-таки sed, причём и для просмотра, и для редактирования.

BSDevil писал(а):
27.05.2009 16:35
Вот к примеру надо мне в конфиге закомментировать 7-8 строк (c 15 по 22ю) :15,22s/^/# /g. Фот где функционал. Сид конечно вещь, но в скриптах.

а это и есть sed. только двоеточие перед 15 лишнее. ну и просмотр лишний. ну и... вобщем vim - та-же sed, просто без лишнего :)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Контактная информация:

Re: sed как текстовый редактор

Сообщение diesel »

Bluetooth писал(а):
27.05.2009 17:47
Редко пользуюсь штуками типа "удалить пять слов", только если точно знаю, не считая, сколько там слов, например IP-адресс - 7dw
Оригинально.а почему не dW? :)

ну, потому что помню так :-)

кстати:
если ip="192.168.0.1"
то dW удалит и кавычку :) а 7dw - нет :-)
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Контактная информация:

Re: sed как текстовый редактор

Сообщение diesel »

drBatty писал(а):
27.05.2009 20:22
diesel писал(а):
27.05.2009 12:18
Не, вы конечно можете читать с помощью less, потом для конкретного параметра придумать выражение на sed'е которое этот параметр выставит в нужное значение. Если параметров несколько то или по мере прочтения конфига выполнять необходимые замены "чтобы не забыть"(а выполнить - означает еще и проверить, поэтому переоткрыть файл less'ом), или записывать их себе отдельно куда-нить(во второе окно терминала надо полагать). Вместо того чтобы в любом текстовом редакторе, по мере прочтения, просто выставлять нужные параметры в нужные значения.

less тоже пользуюсь. в связке с sed. если мне надо просмотреть много текста я его фильтрую. часто получается всё равно много, я опять фильтрую, часто даже после фильтрации его всё равно много, а нужен он весь... Вот тогда - less, но там я уже не использую поиск и т.д.(хотя знаю что он есть).

diesel писал(а):
27.05.2009 12:18
да, нажмете, а еще запустите кучу лишних программ.

зачем? ну только если для того, чего не vi, не sed не умеет, читать там, или письма писать, или проги на C компилировать. Однако всё это дополнительное можно интегрировать.

при троллинге главное заставить собеседника отвечать на свои ответы ) какая разница что сами ответы не имеют никакого прямого отношения к постам собеседника.


drBatty писал(а):
27.05.2009 20:22
diesel писал(а):
27.05.2009 12:18
только предназначены для разного, потому как sed и создавался в качестве "ed для неинтерактивной работы".
согласен. однако вполне может работать и в интерактивном режиме. а как ещё sed-скрипты в 500 букв писать?

ну поделитесь секретом: "как запустить sed в интерактивном режиме"

drBatty писал(а):
27.05.2009 20:22
diesel писал(а):
27.05.2009 12:18
для работы с текстовыми данными имеющими табличную структуру, такими как вывод ls -l, /etc/passwd, csv-файлы может оказаться что удобнее использовать вовсе не sed, а cut, а в более сложных случаях awk.
cut не удобная штука для текстов ИМХО


cut не удобная штука для текстов? в смысле для поиска запятых в романе Льва Николаевич Толстого "Война и мир"? - да, жутко неудобная. для того чтобы выдрать из /etc/passwd имена пользователей - вполне себе покатит.
drBatty писал(а):
27.05.2009 20:22
Что до awk... Обычно одна и та-же задача решается и sed и awk.

обычно - нет. обычно выбор чего на данном этапе использовать достаточно очевиден
drBatty писал(а):
27.05.2009 20:22
У awk конечно более понятный синтаксис... Однако этот синтаксис не удобен для текстов.

что за тексты такие и чем неудобен awk? я говорил о вполне конкретных "структурированных" данных.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: sed как текстовый редактор

Сообщение Bluetooth »

diesel писал(а):
27.05.2009 21:23
Bluetooth писал(а):
27.05.2009 17:47
Редко пользуюсь штуками типа "удалить пять слов", только если точно знаю, не считая, сколько там слов, например IP-адресс - 7dw
Оригинально.а почему не dW? :)

ну, потому что помню так :-)

кстати:
если ip="192.168.0.1"
то dW удалит и кавычку :) а 7dw - нет :-)

Ага. Ваш пример-то лучше, но я его не юзал потому, что не помнил, скока w в айпишнике :)
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: sed как текстовый редактор

Сообщение drBatty »

diesel писал(а):
27.05.2009 23:47
при троллинге главное заставить собеседника отвечать на свои ответы ) какая разница что сами ответы не имеют никакого прямого отношения к постам собеседника.
ок. запомню :)

diesel писал(а):
27.05.2009 23:47
ну поделитесь секретом: "как запустить sed в интерактивном режиме"
вы многого от меня хотите. :)
если серьезно, то что такое интерактивный режим? смотришь на экран, нажимаешь пару кнопок, опять смотришь, опять нажимаешь.. ну... стрелка вверх - прошлая команда, чуть подправил, Enter, опять смотришь...

diesel писал(а):
27.05.2009 23:47
cut не удобная штука для текстов? в смысле для поиска запятых в романе Льва Николаевич Толстого "Война и мир"? - да, жутко неудобная. для того чтобы выдрать из /etc/passwd имена пользователей - вполне себе покатит.
не удобная. у меня кроме passwd наверно и нет ничего такого-похожего. Обычно не всё в полях, а почти всё, да и поля почти все такие, но не все.
например ls -l
все строки одинаковые, кроме первой, она другая... да и поля тоже...
ну это вывод команды, можно ключиками поиграть, а в текстах постоянно вася пупкин вставит /*здесь был вася*/ :)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
BSDevil
Сообщения: 112
ОС: MAC OS X

Re: sed как текстовый редактор

Сообщение BSDevil »

drBatty, ну дак наберите vimtutor (ну или sudo aptitude install vim && vimtutor). Никогда не пожалеете. Я понимаю что это функционал sed, потому и советую. ВАМ ОН ПОНРАВИЦО! :) У мня у самого grep, awk, sed постоянно на вооружении, но редактор - это VIM

Прежде чем набрать sed '15,22s/^/# /g' -i filename этож надо сначало высчитать какие строки, а в vim'е это наглядно видно
Изображение
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: sed как текстовый редактор

Сообщение drBatty »

BSDevil писал(а):
28.05.2009 09:30
этож надо сначало высчитать

Код: Выделить всё

sed '=' | sed 'N; s/\n/\t/'

а vim так может?
хотя я не считаю. обычно от одного до другого выражения. строки теряются при обработке, например была программа в 100 строк(ну функция), после очистки от комментариев(фильтрации конечно, коменнты - отличная вещь, но часто только мешают) номера строк сбиваются - будет 10 а не сто. все эти ed-msword меня и бесят больше всего тем, что я не могу отключить например комментарии... Точнее могу конечно... Но это как-то не слишком удобно.
BSDevil писал(а):
28.05.2009 09:30
ВАМ ОН ПОНРАВИЦО!

да не слишком :(
______12.png
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
minoru-kun
Сообщения: 620
ОС: Debian GNU/Linux

Re: sed как текстовый редактор

Сообщение minoru-kun »

BSDevil писал(а):
27.05.2009 16:35
После того как случайно наткнулся на команду vimtutor, мне теперь жалко тех кто юзает что-то отличное от vim'а.

Еще Emacs есть.
Спасибо сказали:
Аватара пользователя
altwazar
Сообщения: 427
Статус: Zz
ОС: Calculate

Re: sed как текстовый редактор

Сообщение altwazar »

drBatty писал(а):
28.05.2009 13:04

Код: Выделить всё

sed '=' | sed 'N; s/\n/\t/'

а vim так может?


Отобразить нумерацию строк или добавить нумерацию в сам файл? Первое конечно может, а для второго есть sed.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: sed как текстовый редактор

Сообщение drBatty »

altwazar писал(а):
28.05.2009 17:33
Отобразить нумерацию строк или добавить нумерацию в сам файл? Первое конечно может, а для второго есть sed.

первое может кто угодно.

Shell

$ cat test.c -b 1 #include <stdio.h> 2 int main() 3 { 4 printf("Hello World!\n"); 5 printf("test line\n"); 6 return 0; 7 }

как видите, даже cat и то умеет не просто пронумеровать, но ещё и пропустить пустые строки. но мы про манипуляции с текстом, вставки, замены, и так далее. Причём использование номера строки как адреса(стиль ed) это лишь малая часть. Нумерацию можно использовать например для того, что-бы сначала обработать текст(при этом строки могут перепутаться, склеится, или размножится), а потом выстроить текст в изначальном порядке(простой сортировкой). Насколько я знаю, vim ничего такого не умеет, возможности sed здесь ограничены только моей извращённой фантазией :)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
BSDevil
Сообщения: 112
ОС: MAC OS X

Re: sed как текстовый редактор

Сообщение BSDevil »

VIM умеет все что только может уметь текстовый редактор, любой функционал (в том числе внешние команды любой сложности) можно биндить на клавиши. ИМХО лишние телодвижения, использовать несколько инструментов для правки текста, достаточно одного универсального. А еще у неко есть язык скриптов, на нем написано много плагинов, можно прикрутить проверку орфографии. ВСЁ! он умеет, если не умеет - без проблем можно научить :).

ЗЫ: sed\cat вам не раскрасит синтаксис
Изображение
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: sed как текстовый редактор

Сообщение drBatty »

BSDevil писал(а):
29.05.2009 03:32
VIM умеет все что только может уметь текстовый редактор, любой функционал (в том числе внешние команды любой сложности) можно биндить на клавиши.

можно. только криво как-то всё это получается. вы расскажите, как мне хотя-бы вашу команду осилить... скрин выше, что у меня получается. и расскажите, как забиндить выход на что-нить вроде ^Q, а то мне, как и большинству ламмеров и не выйти из него. :) про :quit я в курсе, можете не писать. в общем - с самого начала меня ваш вим ненавидит. Помню, когда был маленький, юзал ed - тот более человеческий, можно было сразу в нём что-то написать, а потом отредактировать, а вот ваш... Сначала надо тонну чего-то там прочитать, причём не по-русски, потом ещё годик потренироваться... Зачем? Ту-же sed поймёт и ребёнок, а вот vim...




BSDevil писал(а):
29.05.2009 03:32
использовать несколько инструментов для правки текста
вы может не поняли? sed для правки текста. Всё. Для вычислений - другое. Ваш vim тоже считать не умеет, а если и умеет, то с помощью кучи внешних утилит. sed считать умеет и сама, например может сама подсчитать сколько слов в тексте(хотя это жуткий скрипт получается, если её и в правду заставить считать).
Что касается внешних команд - у sed есть 3 принципиально разных способа использования других команд:
  • sed сама является командой, а значит её можно встроить в bash скрипт и/или в конвеер. Это позволяет проделывать вещи, о которых вы даже не подозреваете, просто потому, что для этого используется сотня утилит самого bash'а, вроде той-же cat. Всё это прекрасно работает, и все этим пользуются, к примеру такое редактирование текста: убрать все строки без слова XXX, а в тех строках где есть это слово - выделить его красным: все пишут просто grep XXX. Где тут возможности? А возможности там, где простой grep не достаточно, вместе со всеми её 50ю ключами...
  • sed может выполнить скрипт, который является аналогом макроса в редакторе.
  • sed может самостоятельно выполнить команду, которую сама и создаст. Вам этого не понять ;) Что-то вроде препроцессора C, или bash'а. В vim можно разве что выполнить какой-нибудь скрипт, который получает нужный текст в виде параметра...



PS:
$ echo test|sed 's/.*/\x1b[31;1;4m&\x1b[0m/'

PPS:
если не умеет - без проблем можно научить

ну научите мне ваш vim... Чтоб сам работал. Без меня. :)
Вы лучше скажите, что умеет vim и не умеет sed. Раскрашивать - пожалуйста. Умеет так-же сама искать какие-то слова и их раскрашивать, а ещё умеет искать неизвестные слова и их раскрашивать. Раскраска в vim - это раскраска. Не менее. Но и не более того, подсветку синтаксиса вы сделаете для любого языка, только вам правила этого языка дай, а если это не подсветка синтаксиса? Можно-ли в логе раскрасить красным цветом тех, кто зашёл на сервер с помощью IE? Если только в этом-же логе написано откуда зашёл, но только в одной строке, а дальше только IP этого зашедшего?
Думаю самое простое решение - отфильтровать лог sed'ом, а уж потом смотреть vim'ом. Вот только зачем мне в таком случае vim???

Проверку орфографии не сложно прикрутить и к sed. Можно даже и средствами самой sed(хотя долго очень, это всё-таки нужен специализированный спелчекер).


PPS: ну и наконец - последний гвоздь в ваш vim:
Точнее в утверждение о том, что он может ВСЁ. Не, не всё... Он не может sed!, а вот sed может vim. В действительности, sed это язык программирования, узко специализированный конечно, но полный в смысле Тьюринга, и не смотря всего одну переменную и 20команд, на sed можно реализовать действительно всё что угодно. В отличие от вашего редактора. И это - доказано, а не просто утверждение. Потому речь может идти только о том, что какой-то(вроде vim) редактор может помочь сделать какие-то определённые действия с каким-то определённым текстом быстрее или проще чем это делает sed... Если это чуть другие действия, или чуть другой текст - всё, приехали...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
altwazar
Сообщения: 427
Статус: Zz
ОС: Calculate

Re: sed как текстовый редактор

Сообщение altwazar »

drBatty писал(а):
29.05.2009 01:30
как видите, даже cat и то умеет не просто пронумеровать, но ещё и пропустить пустые строки. но мы про манипуляции с текстом, вставки, замены, и так далее. Причём использование номера строки как адреса(стиль ed) это лишь малая часть. Нумерацию можно использовать например для того, что-бы сначала обработать текст(при этом строки могут перепутаться, склеится, или размножится), а потом выстроить текст в изначальном порядке(простой сортировкой). Насколько я знаю, vim ничего такого не умеет, возможности sed здесь ограничены только моей извращённой фантазией :)


Для таких вещей и существует sed.

drBatty писал(а):
29.05.2009 06:44
sed считать умеет и сама, например может сама подсчитать сколько слов в тексте(хотя это жуткий скрипт получается, если её и в правду заставить считать).


Для таких вещей существует wc. Если надо что то более сложное посчитать, то awk.

А для набора текста даже блокнот удобнее sed будет :)
Спасибо сказали:
Аватара пользователя
BSDevil
Сообщения: 112
ОС: MAC OS X

Re: sed как текстовый редактор

Сообщение BSDevil »

как забиндить выход на что-нить вроде ^Q

echo "nmap <F8> :q!<CR>" >> .vimrc
echo "imap <F8> <ESC>:q!<CR>" >> .vimrc
Это выход без сохранения, с сохранением по дефолту ^ZZ (конечно речь идет о vim'е)

ЗЫ: vimtutor я освоил за 10 минут

вы расскажите, как мне хотя-бы вашу команду осилить...

Может у вас vi стоит, а не vim?

vimtutor (это надо открыть vim'ом):

Код: Выделить всё

===============================================================================
=    Д о б р о   п о ж а л о в а т ь   в   у ч е б н и к   VIM  -  Версия 1.5 =
===============================================================================
     Vim --- это очень мощный редактор, имеющий множество команд, слишком
     много для того, чтобы их все можно было описать в таком учебнике, как
     этот. Этот учебник призван объяснить достаточное число команд для того,
     чтобы Вы могли с легкостью использовать Vim в качестве редактора общего
     назначения.

     Вам потребуется приблизительно 25-30 минут на освоение данного учебника в
     зависимости от того, сколько времени Вы потратите на эксперименты.

     Команды в уроках будут модифицировать текст. Создайте копию этого файла,
     чтобы попрактиковаться на ней (если Вы запустили "vimtutor", то это уже
     копия).

     Важно помнить, что этот учебник предназначен для обучения в процессе
     использования. Это означает, что Вы должны запускать команды для того,
     чтобы как следует их изучить. Если Вы просто прочитаете текст, то
     забудете команды!

     Теперь убедитесь в том, что клавиша CapsLock не включена и нажмите
     клавишу   j   несколько раз, так, чтобы Урок 1.1 полностью поместился на
     экране.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Урок 1.1:  ПЕРЕМЕЩЕНИЕ КУРСОРА

** Для перемещения курсора нажмите клавиши h,j,k,l так, как показано ниже. **
         ^
         k        Советы:    Клавиша h находится слева и перемещает влево.
       < h     l >        Клавиша l находится справа и перемещает вправо.
         j            Клавиша j похожа на стрелку `вниз'.
         v
  1. Подвигайте курсор по экрану, пока не почувствуете себя уверенно.

  2. Надавите клавишу `вниз' (j) пока она не начнет повторяться.
---> Теперь Вы знаете, как перейти к следующему уроку.

  3. Используя клавишу `вниз' перейдите к Уроку 1.2.

Замечание: Если вы пока не уверены в том, что набираете, нажмите <ESC> для
       перехода в обычный режим (Normal mode). После этого перенаберите
       требуемую команду.

Замечание: Обычные клавиши управления курсором (стрелки) также должны
       работать. Однако, клавиши hjkl позволят Вам перемещаться
       значительно быстрее, как только Вы научитесь ими пользоваться.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          Урок 1.2: ЗАПУСК И ЗАВЕРШЕНИЕ РАБОТЫ С VIM

!! ВНИМАНИЕ! Прежде, чем выполнять любой из описанных ниже шагов, прочтите
                   урок целиком !!

  1. Нажмите клавишу <ESC> (для того, чтобы удостовериться, что Вы в обычном
     режиме (Normal mode)).

  2. Наберите:            :q! <ENTER>.

---> Это позволит Вам выйти из редактора БЕЗ СОХРАНЕНИЯ любых сделанных
     изменений. Если Вы хотите сохранить изменения и выйти:
                :wq  <ENTER>

  3. Когда Вы увидите приглашение командной оболочки, наберите команду,
     которая привела Вас в этот учебник. Это может быть
                vimtutor ru <ENTER>
     Обычно можно использовать:    vim tutor.ru <ENTER>

---> 'vim' позволяет запустить редактор vim, 'tutor.ru' --- это файл, который
     Вы будете редактировать.

  4. Если Вы уверены в том, что запомнили эти шаги, выполните шаги от 1 до 3
     чтобы выйти снова запустить редактор. Затем переместите курсор вниз к
     Уроку 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          Урок 1.3: РЕДАКТИРОВАНИЕ ТЕКСТА - УДАЛЕНИЕ


** Находясь в обычном режиме нажмите x, чтобы удалить символ под курсором. **

  1. Переместите курсор к строке внизу, помеченной --->.

  2. Для исправления ошибок, переместите курсор, пока он не окажется над
     удаляемым символом.

  3. Нажмите клавишу x для удаления требуемого символа.

  4. Повторите шаги 2--4 пока строка не будет исправлена.

---> От тттопота копытт пппыль ппо ппполю леттитт.

  5. Теперь, когда строка откорректирована, переходите к уроку 1.4.

ЗАМЕЧАНИЕ: В ходе освоения этого учебника не пытайтесь запоминать, учите
       в процессе использования.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          Урок 1.4: РЕДАКТИРОВАНИЕ ТЕКСТА - ВСТАВКА


 ** Находясь в обычном режиме (Normal mode), нажмите i для вставки текста. **

  1. Переместите курсор к первой строке внизу, помеченной --->.

  2. Для того, чтобы сделать первую строку идентичной второй, поместите
     курсор на символ ПЕРЕД которым следует вставить текст.

  3. Нажмите i и наберите требуемые добавления.

  4. После исправления всех ошибок нажмите <ESC> для возврата в обычный режим.
     Повторите шаги 2--4, пока фраза не будет исправлена полностью.

---> Часть текста в строке беследно .
---> Часть текста в этой строке бесследно пропала.

  5. Когда освоите вставку текста, переходите дальше к Резюме.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                РЕЗЮМЕ УРОКА 1

  1. Курсор перемещается либо клавишами со стрелками, либо клавишами hjkl.
     h (влево)    j (вниз)       k (вверх)        l (вправо)

  2. Для запуска Vim (из приглашения % командной оболочки) наберите:
     vim ИМЯ_ФАЙЛА <ENTER>

  3. Для завершения работы с Vim наберите:
     <ESC>   :q!     <ENTER>  чтобы отказаться от сохранения изменений.
     Или наберите:
     <ESC>   :wq     <ENTER>  чтобы сохранить изменения.

  4. Для удаления символа под курсором в обычном режиме, наберите: x

  5. Чтобы вставить текст перед курсором в обычном режиме, наберите:
     i     вводите текст    <ESC>

ЗАМЕЧАНИЕ: Нажатие <ESC> переместит Вас в обычный режим (Normal mode) либо
       прервет нежелательную и частично завершенную команду.

Теперь переходим к Уроку 2.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              Урок 2.1: КОМАНДЫ УДАЛЕНИЯ


    ** Наберите dw для удаления участка текста до конца слова. **

  1. Нажмите <ESC>, чтобы перейти в обычный режим.

  2. Переместите курсор вниз, к строке, помеченной --->.

  3. Переместите курсор в начало слова, которое следует удалить.

  4. Наберите  dw , чтобы удалить это слово.

ЗАМЕЧАНИЕ: Во время набора буквы dw появятся в последней строке экрана. Если
       Вы что-то наберете неправильно, нажмите <ESC> и начните сначала.

---> Несколько слов рафинад в этом предложении автокран излишни.

  5. Повторите шаги 3 и 4, пока не исправите все ошибки и переходите к
     Уроку 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          Урок 2.2: ДОПОЛНИТЕЛЬНЫЕ КОМАНДЫ УДАЛЕНИЯ


        ** Наберите d$ для удаления текста до конца строки. **

  1. Нажмите <ESC>, чтобы перейти в обычный режим.

  2. Переместите курсор вниз, к строке, помеченной --->.

  3. Переместите курсор к концу правильной строки (ПОСЛЕ первой . ).

  4. Чтобы удалить остаток строки, наберите  d$ .

---> Кто-то набрал окончание этой строки дважды. окончание этой строки дважды.


  5.Чтобы лучше разобраться в этом, переходите к Уроку 2.3.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Урок 2.3: КОМАНДЫ И ОБЪЕКТЫ


  Формат команды `удаление' d таков:

     [число]   d    объект        ИЛИ         d     [число]   объект
  Здесь:
    число  - сколько раз исполнить команду (необязательно, по умолчанию=1).
    d      - команда удаления.
    объект - с чем команда должна быть выполнена (перечислено ниже).

  Краткий список объектов:
    w - от курсора до конца слова, включая завершающий пробел.
    e - от курсора до конца слова, НЕ включая завершающий пробел.
    $ - от курсора до конца строки.
    ^ - от курсора до начала строки.

ЗАМЕЧАНИЕ: Простое нажатие на символ объекта в обычном режиме (Normal mode)
       без дополнительных команд передвинет курсор так, как указано в
       списке объектов.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           Урок 2.4: ИСКЛЮЧЕНИЕ ИЗ ПРАВИЛА `КОМАНДА-ОБЪЕКТ'


         ** Наберите dd для удаления всей строки. **

  Вследствие частого применения операции удаления всей строки, разработчики
  Vim решили, что для этого проще всего просто набрать d дважды.

  1. Переместите курсор вниз, ко второй строке фразы.
  2. Наберите dd для удаления строки.
  3. Теперь переместитесь к четвертой строке.
  4. Наберите 2dd (вспомните правило `число-команда-объект'), чтобы удалить
     две строки.

      1)  Летом я хожу на стадион,
      2)  О, как внезапно кончился диван!
      3)  Я болею за ``Зенит'', ``Зенит'' --- чемпион!
      4)  Печально я гляжу на наше поколение!
      5)  Его грядущее иль пусто иль темно...
      6)  Я сижу на скамейке в ложе `Б'
      7)  И играю на большой жестяной трубе.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              Урок 2.5: КОМАНДА `ОТКАТ'


  ** Нажмите u    для отмены результата работы предыдущей команды, U для отмены
            исправлений во всей строке. **

  1. Переместите курсор вниз, к строке, помеченной ---> и установите его на
     первую ошибку.
  2. Нажмите x для удаления первого неправильного символа.
  3. Теперь нажмите u для отмены (отката) последней выполненной команды.
  4. Исправьте все ошибки в строке, используя команду x .
  5. Теперь нажмите заглавную U для того, чтобы вернуть всю строку в исходное
     состояние.
  6. Нажмите u несколько раз для отмены команды U и предыдущих команд.
  7. Нажмите теперь CTRL-R (удерживайте клавишу CTRL нажатой в момент нажатия
  R)     несколько раз для возврата команд (откат отката).

---> Испрравьте оошибки в этойй строке и вернитте их сс помощьью `отката'.

  8. Это были очень полезные команды. Далее переходите к Резюме Урока 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                РЕЗЮМЕ УРОКА 2


  1. Для удаления текста от курсора до конца слова наберите:    dw

  2. Для удаления текста от курсора до конца строки наберите:    d$

  3. Для удаления всей строки наберите:    dd

  4. Формат команды в обычном режиме имеет вид:

       [число]   команда   объект     ИЛИ     команда    [число]   объект
     где:
       число   - сколько раз повторить выполнение команды
       команда - что выполнить, например d для удаления
       объект  - на что должна воздействовать команда, например w (слово),
        $ (до конца строки), и т.д.

  5. Для отмены (отката) предшествующих действий наберите:  u (строчная u)
     Для отмены (отката) всех изменений в строке наберите:  U (прописная U)
     Для отмены отката наберите:  CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              Урок 3.1: КОМАНДА ВСТАВКИ


   ** Наберите p для вставки последнего удаленного текста после курсора. **

  1. Переместите курсор вниз к последней строке из набора.

  2. Наберите dd для удаления строки и ее сохранения в буфере Vim'а.

  3. Переместите курсор к строке НАД тем местом, куда следует вставить
     удаленную строку.

  4. Находясь в обычном режиме наберите p для замены строки.

  5. Повторите шаги 2--4, пока не расставите все строки в нужном порядке.

     г) И лучше выдумать не мог.
     б) Когда не в шутку занемог,
     в) Он уважать себя заставил
     а) Мой дядя самых честных правил


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               Урок 3.2: КОМАНДА ЗАМЕНЫ


      ** Наберите r и символ, заменяющий символ под курсором. **

  1. Переместите курсор вниз, к строке, помеченной --->.

  2. Установите курсор так, чтобы он находился над первой ошибкой.

  3. Наберите r    и затем символ, исправляющий ошибку.

  4. Повторите шаги 2 и 3, пока первая строка не будет исправлена.

--->  В момегт набтра этой чтроки кое0кто с трудом попвдал по клваишам!
--->  В момент набора этой строки кое-кто с трудом попадал по клавишам!

  5. Теперь переходите к Уроку 3.2.

ЗАМЕЧАНИЕ: Помните, что вы должны учиться в процессе работы, а не просто
       запоминая.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Урок 3.3: КОМАНДА ИЗМЕНЕНИЯ


        ** Для изменения части слова наберите cw . **

  1. Переместите курсор вниз, к строке, помеченной --->.

  2. Расположите курсор над буквой `o' в слове `сола'.

  3. Наберите cw и исправьте слово (в данном случае, наберите `лов'.)

  4. Нажмите <ESC> и переходите к следующей ошибке (к первому символу, который
     надо изменить.)

  5. Повторите шаги 3--4 пока первое предложение не станет идентичным второму.

---> Несколько сола в эьгц строке тпгшцбь редалзкуюиесвх.
---> Несколько слов в этой строке требуют редактирования.

Обратите внимание, что cw не только заменяет слово, но и переводит вас в режим
вставки.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          Урок 3.4: ПРОДОЛЖАЕМ ИЗМЕНЯТЬ С КОМАНДОЙ c


** Команда замены используется с теми же объектами, что и команда удаления. **

  1. Команда изменения применяется таким же образом, как и команда удаления.
     Ее формат таков:

       [число]   c   объект       ИЛИ        c    [число]   объект

  2. Объекты также совпадают: w (слово), $ (конец строки) и т.п.

  3. Переместите курсор вниз, к строке, помеченной --->.

  4. Перейдите к первой ошибке.

  5. Наберите c$ и отредактируйте первую строку так, чтобы она совпадала со
     второй, после чего нажмите <ESC>.

---> Конец этой строки нуждается в помощи, чтобы стать похожим на второй.
---> Конец этой строки нуждается в помощи команды c$ .


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                РЕЗЮМЕ УРОКА 3


  1. Для вставки текста, который только что был удален, наберите p . Эта
     команда вставит удаленный текст ПОСЛЕ курсора (если была удалена строка,
     то она будет помещена в строке под курсором).

  2. Для замены символа под курсором наберите r и затем заменяющий символ.

  3. Команда изменения позволяет Вам изменить указанный объект от курсора до
     конца этого объекта. Например, наберите cw для замены от курсора до
     конца слова, c$ для изменения до конца строки.

  4. Формат команды изменения таков:

     [число]   c    объект          ИЛИ    c   [число]   объект

Теперь отправляйтесь к следующему уроку.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          Урок 4.1: ИНФОРМАЦИЯ О ФАЙЛЕ И РАСПОЛОЖЕНИЕ В НЕМ


 ** Наберите CTRL-g чтобы увидеть Ваше месторасположение в файле и информацию
                    о нем.
    Наберите SHIFT-G для перемещения к заданной строке в файле. **

  Замечание: Прочитайте весь урок прежде чем выполнять любые команды!!

  1. Удерживая клавишу Ctrl нажмите g . Внизу экрана появится строка статуса с
     именем файла и номером строки, в которой Вы находитесь. Запомните номер
     строки, он потребуется на Шаге 3.

  2. Нажмите shift-G для перемещения к концу файла.

  3. Наберите номер строки, в которой вы находились и затем shift-G. Это
     вернет Вас к строке, в которой Вы были, когда в первый раз нажали Ctrl-g.
     (Когда Вы будете набирать цифры, они НЕ отобразятся на экране.)

  4. Если Вы запомнили все вышесказанное, выполните шаги 1--3.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               Урок 4.2: КОМАНДА ПОИСКА

          ** Наберите  /  и затем введите искомую фразу. **

  1. В обычном режиме (Normal mode) наберите символ  / . Обратите внимание,
     что он вместе с курсором появится внизу экрана, как это происходит с
     командой :    .

  2. Теперь наберите 'ошшшибка' <ENTER>. Это то слово, которое Вы будете
     искать.

  3. Для того, чтобы повторить поиск, просто нажмите n .
     Для поиска этой фразы в обратном направлении, нажмите Shift-N .

  4. Если Вы желаете сразу искать в обратном направлении, используйте
     команду ? вместо / .

---> Когда Вы при поиске достигнете конца файла, поиск будет продолжен с
     начала.

  "ошшшибка" это не способ произнесения слова `ошибка';  ошшшибка это ошибка.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Урок 4.3: ПОИСК ПАРНЫХ СКОБОК


        ** Наберите % для поиска парных ),] или } . **

  1. Поместите курсор над любой из (, [ или { в строке внизу, помеченной --->.

  2. Теперь наберите символ % .

  3. Курсор должен перескочить на парную скобку.

  4. Наберите % для возврата курсора назад к первой скобке.

---> Это ( строка, содержащая такие (, такие [ ] и такие { } скобки. ))

Замечание: Это очень удобно при отладке программ с пропущенными скобками!






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              Урок 4.4: СПОСОБ ИСПРАВЛЕНИЯ ОШИБОК


     ** Наберите :s/было/стало/g для замены 'было' на 'стало'. **

  1. Переместите курсор вниз, к строке, помеченной --->.

  2. Наберите :s/уводю/увожу <ENTER> . Обратите внимание на то, что эта команда
     заменит только первое найденное вхождение в строке.

  3. Теперь наберите :s/уводю/увожу/g , означающее подстановку глобально во
     всей строке. Это заменит все найденные в строке вхождения.

---> Я уводю к отверженным селеньям, я уводю сквозь вековечный стон, я уводю к
     забытым поколеньям.

  4. Для замены всех вхождений последовательности символов между двумя
     строками,
     наберите :#,#s/было/стало/g  где #,# --- номера этих строк.
     Наберите :%s/было/стало/g    для замены всех вхождений во всем файле.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                РЕЗЮМЕ УРОКА 4
  1. Ctrl-g показывает ваше положение в файле и информацию о нем.
     Shift-G перемещает Вас в конец файла. Номер, за которым следует Shift-G
     позволяет перейти к строке с этим номером.

  2. Нажатие / и затем ввод строки позволяет произвести поиск этой строки
     ВПЕРЕД по тексту.
     Нажатие ? и затем ввод строки позволяет произвести поиск этой строки
     НАЗАД по тексту.
     После поиска наберите n для перехода к следующему вхождению искомой
     строки в том же направлении или Shift-N для перехода в противоположном
     направлении.

  3. Нажатие % , когда курсор находится на (,),[,],{, или } позволяет найти
     парную скобку.

  4. Для подстановки `стало' вместо первого `было' в строке, наберите
     :s/old/new
     Для подстановки `стало' вместо всех `было' в строке, наберите
     :s/old/new/g
     Для замены в интервале между двумя строками, наберите
     :#,#s/old/new/g
     Для замены всех вхождений `было' на `стало' в файле, наберите
     :%s/old/new/g
     Чтобы редактор каждый раз запрашивал подтверждение, добавьте 'c'
     :%s/old/new/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           Урок 5.1: КАК ВЫПОЛНИТЬ ВНЕШНЮЮ КОМАНДУ


    ** Наберите :! и затем внешнюю команду, которую следует выполнить. **

  1. Наберите уже знакомую Вам команду : для установки курсора в командную
     строку редактора. Это позволит Вам ввести команду.

  2. Теперь наберите символ ! (восклицательный знак). Теперь можно исполнить
     внешнюю команду, используя командную оболочку.

  3. Для примера наберите ls после ! и нажмите <ENTER>. Эта команда выведет
     список файлов в текущем каталоге, точно также, как если бы Вы ввели эту
     команду в приглашении оболочки. Или попробуйте :!dir , если предыдущая
     команда не сработала.

---> Замечание: Таким способом можно выполнить любую внешнюю команду.

---> Замечание: Все команды, начинающиеся с : , должны завершаться нажатием
     <ENTER>.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Урок 5.2: КАК ЗАПИСАТЬ ФАЙЛ


** Для сохранения изменений, произведенных в файле, наберите :w ИМЯ_ФАЙЛА. **

  1. Наберите :!dir или :!ls для получения списка файлов в текущем каталоге.
     Как Вам уже известно, Вы должны нажать <ENTER> после ввода этих команд.

  2. Придумайте название для файла, которое еще не существует, например TEST.

  3. Теперь наберите :w TEST (где TEST --- это имя файла, придуманное Вами.)

  4. Эта команда сохранит весь файл (Учебник по Vim) под именем TEST. Чтобы
     удостовериться в этом, снова наберите :!dir и просмотрите каталог.

---> Заметьте, что если Вы выйдете из Vim и затем запустите его снова с
     файлом TEST, этот файл будет точной копией учебника в тот момент, когда
     Вы его сохранили.

  5. Теперь удалите этот файл, набрав :!del TEST


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               Урок 5.3: ВЫБОРОЧНОЕ СОХРАНЕНИЕ


     ** Для сохранения части файла, наберите :#,# w ИМЯ_ФАЙЛА **

  1. Еще раз наберите :!dir или :!ls для получения списка файлов в текущем
     каталоге и выберите подходящее имя, например TEST.

  2. Переместите курсор к началу этой страницы и нажмите Ctrl-g для нахождения
     номера строкиto. ЗАПОМНИТЕ ЭТОТ НОМЕР!

  3. Теперь переместитесь в конец страницы и вновь наберите Ctrl-g. ЗАПОМНИТЕ
     И ЭТОТ НОМЕР ТОЖЕ!

  4. Для сохранения ТОЛЬКО ЧАСТИ файла наберите :#,# w TEST , где #,# --- это
     номера, которые Вы запомнили (начало, конец), а TEST --- имя вашего файла.

  5. Как и прежде, убедитесь в наличии этого файла командой :!dir , но НЕ
     УДАЛЯЙТЕ его.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Урок 5.4: ЧТЕНИЕ И ОБЪЕДИНЕНИЕ ФАЙЛОВ

      ** Для вставки содержимого файла, наберите  :r FILENAME **

  1. Наберите :!dir для того, чтобы убедиться в том, что файл TEST все еще
     существует.

  2. Установите курсор в верхней части этой страницы.

Замечание: После выполнения шага 3 Вы увидите Урок 5.3.    После этого
       перемещайтесь ВНИЗ, снова к этому уроку.

  3. Теперь прочитайте Ваш файл TEST, используя команду :r TEST , где
     TEST --- это имя файла.

Замечание: Прочитанный Вами файл будет вставлен в том месте, где находится
       курсор.

  4. Чтобы убедиться в том, что файл прочитан, переместитесь немного назад по
     тексту и заметьте, что теперь существуют две копии Урока 5.3, исходная
     и полученная из файла.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                РЕЗЮМЕ УРОКА 5


  1.  :!команда  исполняет внешнюю команду.

      Некоторые полезные примеры:
      :!dir --- выводит список файлов в каталоге.
      :!del FILENAME --- удаляет файл FILENAME.

  2.  :w FILENAME записывает текущий редактируемый файл на диск
      под именем FILENAME.

  3.  :#,#w FILENAME сохраняет строки от # до # в файл FILENAME.

  4.  :r FILENAME считывает с диска файл FILENAME и помещает его в текущий
      файл следом за позицией курсора.







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              Урок 6.1: КОМАНДА СОЗДАНИЯ


 ** Наберите o чтобы создать пустую строку под курсором и перейти в режим
               вставки (Insert mode) **

  1. Переместите курсор вниз, к строке, помеченной --->.

  2. Наберите o (в нижнем регистре) для того, чтобы создать пустую строку
     НИЖЕ курсора и перейти в режим вставки (Insert mode).

  3. Теперь скопируйте помеченную ---> строку и нажмите <ESC> для выхода из
     режима вставки.

---> После нажатия o курсор перейдет на новую пустую строку в режиме вставки.

  4. Для создания строки ВЫШЕ курсора, просто наберите заглавную O, вместо
     строчной o. Попробуйте проделать это с нижеследующей строкой.
Создайте новую строку над этой, нажав Shift-O, поместив курсор на эту строку.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Урок 6.2: КОМАНДА ДОБАВЛЕНИЯ

        ** Наберите a , чтобы вставить текст ПОСЛЕ курсора. **

  1. Переместите курсор вниз, в конец первой строки, помеченной ---> ,
     набрав $ в обычном режиме (Normal mode).

  2. Наберите a (в нижнем регистре) для добавления текста ПОСЛЕ символа,
     находящегося под курсором. (Заглавная A позволяет добавить в конец
     строки.)

Замечание: Это позволяет избежать нажатия i , последнего символа, текста для
       вставки, <ESC>, курсор-вправо, и, наконец, x , просто для того,
       чтобы добавить тест в конец строки!

  3. Теперь завершите первую строку. Заметьте также, что добавление это в
     точности то же самое, что и режим вставки, за исключением позиции, в
     которую будет вставлен текст.

---> Эта строчка позволит Вам попрактиковаться
---> Эта строчка позволит Вам попрактиковаться в добавлении текста в конец
     строки.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               Урок 6.3: ЕЩЕ ОДИН СПОСОБ ЗАМЕНЫ


       ** Наберите заглавную R для замены более, чем одного символа. **

  1. Переместите курсор вниз, к строке, помеченной --->.

  2. Расположите курсор в начале первого слова, отличающегося от
     соответствующего в следующей строке, помеченной ---> (слово 'последней').

  3. Теперь наберите R и замените остаток текста в первой строке, набрав
     поверх старого текста так, чтобы обе строки стали одинаковыми.

---> Первую строку можно сравнять с последней, используя клавиши.
---> Первую строку можно сравнять с второй, используя R и набрав новый текст.

  4. Обратите внимание, что при нажатии <ESC> для завершения, любой
     не измененный текст сохранится.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Урок 6.4: УСТАНОВКА ПАРАМЕТРОВ


** Установим параметры так, чтобы игнорировать регистр при поиске или замене **


  1. Поищите слово 'игнорировать', набрав:
     /игнорировать
     Повторите поиск несколько раз, нажимая клавишу n

  2. Включите параметр 'ic' (Игнорировать регистр), набрав:
     :set ic

  3. Теперь снова сделайте поиск слова 'игнорировать', нажав: n
     Повторите поиск несколько раз, нажимая клавишу n

  4. Включите параметры 'hlsearch' и 'incsearch':
     :set hls is

  5. Теперь опять введите команду поиска и посмотрите, что получится:
     /игнорировать



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                РЕЗЮМЕ УРОКА 6


  1. Нажатие o создает строку НИЖЕ курсора и перемещает курсор в нее в режиме
     вставки.
     Нажатие заглавной O создает строку ВЫШЕ строки, в которой находится
     курсор.

  2. Наберите a для вставки текста ПОСЛЕ символа, на котором находится курсор.
     Нажатие заглавной A автоматически перемещает Вас для добавления текста
     в конец строки.

  3. Нажатие заглавной R переводит Вас в режим замены до тех пор, пока не
     будет нажата клавиша <ESC> для завершения.

  4. Набрав ":set xxx" вы сможете включить параметр "xxx"







~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         Урок 7: КОМАНДЫ ПОЛУЧЕНИЯ ВСТРОЕННОЙ СПРАВКИ

           ** Используйте встроенную справочную систему **

  Vim обладает мощной встроенной справочной системой. Для начала попробуйте
  один из трех вариантов:
    - нажмите клавишу <HELP> (если таковая имеется на клавиатуре)
    - нажмите клавишу <F1> (если таковая имеется на клавиатуре)
    - наберите   :help <ENTER>

  Наберите   :q <ENTER>   чтобы закрыть окно справки.

  Вы можете найти справку для любого понятия или команды, просто задав
  соответствующий аргумент команде ":help". Попробуйте следующее (не забудьте
  нажать <ENTER>):

  :help w
  :help c_<T
  :help insert-index





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             Урок 8: СОЗДАНИЕ СТАРТОВОГО СКРИПТА

            ** Включим возможности Vim **

  Vim имеет намного больше возможностей, чем Vi, однако большинствао из них
  выключены по умолчанию. Для того, чтобы начать использовать новые
  возможности Вам следует создать файл "vimrc".

  1. Отредактируйте файл "vimrc", его расположение зависит от используемой
     системы:

       :edit ~/.vimrc            для Unix
       :edit $VIM/_vimrc        для MS-Windows

  2. Теперь прочитайте пример файла "vimrc":

       :read $VIMRUNTIME/vimrc_example.vim

  3. Запишите файл:

       :write

  Теперь при следующем запуске Vim будет включена подсветка синтаксиса. Все
  настройки, предпочитаемые Вами, могут быть добавлены в файл "vimrc".

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  На этом завершается Учебник Vim. Он был предназначен для того, чтобы дать
  общее представление о редакторе Vim, достаточное для того, чтобы с легкостью
  использовать его. Учебник далек от полноты, поскольку Vim имеет очень много
  команд. Прочитайте теперь руководство пользователя: ":help user-manual".

  Для дальнейшего чтения рекомендуется книга:
    Vim - Vi Improved - Автор: Steve Oualline
    Издатель: New Riders
  Эта книга полностью посвящена Vim. Особенно полезна новичкам. Содержит
  множество примеров и иллюстраций.
  Взгляните на See http://iccf-holland.org/click5.html

  Следующая книга более почтенного возраста и посвящена больше Vi, чем Vim,
  однако также рекомендуется:
    Learning the Vi Editor - Автор: Linda Lamb
    Издатель: O'Reilly & Associates Inc.
  Это хорошая книга для того, чтобы узнать все, что только можно проделывать с
  Vi. Шестое издание также включает информацию о Vim.

  Этот учебник был написан Michael C. Pierce и Robert K. Ware, Colorado School
  of Mines с использованием идей, предложенных Charles Smith, Colorado State
  University. E-mail: bware@mines.colorado.edu.

  Доработано для Vim Bram Moolenaar.

  Перевод: Андрей Киселев <a_kissel@eudoramail.com>, 2002.
  Translator: Andrey Kiselev <a_kissel@eudoramail.com>, 2002.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Изображение
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: sed как текстовый редактор

Сообщение drBatty »

altwazar писал(а):
29.05.2009 07:44
Если надо что то более сложное посчитать, то awk.

а можно пример? когда awk удобнее/лучше sed?
altwazar писал(а):
29.05.2009 07:44
А для набора текста даже блокнот удобнее sed будет :)

нет, не удобнее. Хотя это зависит от того, сколько и куда набирать. набрать 1 строчку в пустой файл - дело вкуса, набрать сто строчек подряд в пустой файл - конечно редактор удобнее(да хоть и блокнот, хотя он лично мне неудобен). А вот вставить строчку куда-то в большой файл - мне удобнее sed. (хотя я уверен, что с такой задачей vim справится не хуже).
BSDevil писал(а):
29.05.2009 08:33
ЗЫ: vimtutor я освоил за 10 минут
нда... я его даже увидеть не могу... поставил gvim, там тоже есть мануал, только на английском, а по английски я читаю медленно... вы может и так всё это знали... :)
зачем мне vim, если мне и так хорошо? в конце концов kate всё равно удобнее, а если мне понадобится вдруг что-нибудь этакое, то я и там могу скрипты писать. Потому осваивать непонятный vim я просто не вижу никаких причин! Как я уже писал - он может и мощный, но до sed ему - как до луны, может и удобный, но только тем кто к нему привык, что в нём такого?

В итоге: для редактирования текста в широком смысле этого слова ИМХО удобнее использовать sed, т.к. её можно редактировать что угодно, как угодно, причём ещё и в автоматическом режиме. Для каких-то специальных случаев можно использовать специальные программы работы с текстом, вроде си перпроцессора, или FireFox'а в котором я это пишу, или там kate, или блокнот тот-же... К чему прикрутить vim - затрудняюсь сказать... Такой вот недоуниверсальный ключик, полезность которого непонятна, так как есть универсальный. Дык этим "недо" ещё и научится надо пользоваться, хотя-бы чтоб выйти или туториал прочитать... Нафиг ;)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5289
ОС: Gentoo

Re: sed как текстовый редактор

Сообщение /dev/random »

drBatty писал(а):
29.05.2009 06:44
Он не может sed!

Да? Выделите фрагмент текста, затем введите :!sed "y/a-z/A-Z/" )))
Или, если нужно обработать весь текст, ничего не выделяйте, а после двоеточия поставьте %

У каждого инструмента - своё назначение. Если мне нужно сделать выборку из лога, я воспользуюсь grep или sed (в зависимости от того, нужно ли мне редактировать строки лога). Если я пишу программу, я воспользуюсь vim. А использование для этого sed - забивание шурупа молотком.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: sed как текстовый редактор

Сообщение drBatty »

/dev/random писал(а):
29.05.2009 09:21
Да? Выделите фрагмент текста, затем введите :!sed "y/a-z/A-Z/" )))
Или, если нужно обработать весь текст, ничего не выделяйте, а после двоеточия поставьте %
это понятно... я не спорю, команды выполнять может любой редактор, в т.ч. и vim...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ответить