This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
текстовые_редакторы_ed_sed_vi_vim [2012/07/05 12:34] val |
текстовые_редакторы_ed_sed_vi_vim [2020/05/22 07:59] val [Команды режима ed] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Текстовые редакторы ed, sed, vi, vim ====== | ====== Текстовые редакторы ed, sed, vi, vim ====== | ||
+ | * [[https://youtu.be/r8e7F46un7A|Видео: Текстовые редакторы от ed до vim]] | ||
===== Исходные файлы ===== | ===== Исходные файлы ===== | ||
<code> | <code> | ||
Line 63: | Line 64: | ||
===== Потоковый редактор sed ===== | ===== Потоковый редактор sed ===== | ||
- | [[http://ru.wikipedia.org/wiki/Sed]] | + | * [[http://ru.wikipedia.org/wiki/Sed|Sed wikipedia]] |
- | + | * [[http://www.lissyara.su/doc/programming/sed/|ПОТОКОВЫЙ РЕДАКТОР sed]] | |
- | [[http://www.lissyara.su/doc/programming/sed/]] | + | * [[https://habrahabr.ru/post/191006/|Шахматы на чистом sed]] |
==== Формат команды ==== | ==== Формат команды ==== | ||
Line 85: | Line 86: | ||
==== Команда "a" вставка после, "i перед строкой и размещение команд редактирования в файле ==== | ==== Команда "a" вставка после, "i перед строкой и размещение команд редактирования в файле ==== | ||
<code> | <code> | ||
+ | $ cp /etc/passwd . | ||
+ | |||
$ sed '1i\ | $ sed '1i\ | ||
Name:Pass:Uid:Gid:... | Name:Pass:Uid:Gid:... | ||
Line 103: | Line 106: | ||
==== Команда редактирования "c" - замена строк и использование шаблона для выбора редактируемых строк ==== | ==== Команда редактирования "c" - замена строк и использование шаблона для выбора редактируемых строк ==== | ||
<code> | <code> | ||
+ | $ cp /etc/ssh/ssh_config . | ||
+ | |||
$ sed '/^#/c\ | $ sed '/^#/c\ | ||
# COMMENT | # COMMENT | ||
- | ' sshd_config | + | ' ssh_config |
</code> | </code> | ||
Line 123: | Line 128: | ||
=== Linux/FreeBSD === | === Linux/FreeBSD === | ||
<code> | <code> | ||
- | $ sed 's/bin\/sh/bin\/bash/g' passwd | + | $ df -h | sed -re 's/ {1,}/ /g' # see tr |
+ | |||
+ | $ sed 's/bin\/bash/bin\/sh/g' passwd | ||
+ | |||
+ | $ sed 's|bin/csh|bin/sh|g' passwd | ||
</code> | </code> | ||
Line 142: | Line 151: | ||
==== Аргумент "i" - непосредственное редактирование файла ==== | ==== Аргумент "i" - непосредственное редактирование файла ==== | ||
<code> | <code> | ||
- | $ sed -i.bak -e '/^$\|^#/d' sshd_config | + | $ sed -i.bak -e '/^$\|^#/d' ssh_config |
$ sed -i.bak -e '/swap/s/^/#/' fstab | $ sed -i.bak -e '/swap/s/^/#/' fstab | ||
- | |||
- | # sed -i.bak -e 's/,established//' *.rules | ||
</code> | </code> | ||
===== Редактор vi, vim ===== | ===== Редактор vi, vim ===== | ||
- | [[http://lib.ru/unixhelp/vibegin.txt]] | + | * [[http://lib.ru/unixhelp/vibegin.txt|Редактор VI. Список команд]] |
- | + | * [[http://lib.ru/unixhelp/vi.txt|Очень кратко о редакторе "VI"]] | |
- | [[http://lib.ru/unixhelp/vi.txt]] | + | |
==== Установка в FreeBSD ==== | ==== Установка в FreeBSD ==== | ||
<code> | <code> | ||
- | # pkg_add -r vim-lite | + | # pkg install vim-lite |
+ | </code> | ||
+ | |||
+ | ==== Настройка ==== | ||
+ | <code> | ||
+ | $ cat ~/.vimrc | ||
+ | </code><code> | ||
+ | ... | ||
+ | "set incsearch | ||
+ | set mouse-=a | ||
+ | "filetype plugin indent on | ||
</code> | </code> | ||
Line 180: | Line 196: | ||
<Ctrl>-B - на страницу вверх | <Ctrl>-B - на страницу вверх | ||
<Ctrl>-F - на страницу вниз | <Ctrl>-F - на страницу вниз | ||
- | [[ - на начало процедуры (текста) | + | g - на начало текста |
- | ]] - на конец процедуры (текста) | + | G - на конец текста |
<Ctrl>-G - вывести отчет о редактируемом тексте | <Ctrl>-G - вывести отчет о редактируемом тексте | ||
</code> | </code> | ||
Line 188: | Line 204: | ||
<code> | <code> | ||
/регулярное_выражение - поиск по тексту вниз | /регулярное_выражение - поиск по тексту вниз | ||
- | / - повтор поиска вниз | + | /\cрегулярное_выражение - поиск по тексту вниз без учета регистра |
+ | n - повтор поиска вниз | ||
?регулярное_выражение - поиск по тексту вверх | ?регулярное_выражение - поиск по тексту вверх | ||
- | ? - повтор поиска вверх | + | N - повтор поиска вверх |
</code> | </code> | ||
Line 218: | Line 235: | ||
1,20g/шаблон/d - удалить строки, содержащие шаблон c 1 по 20 строку | 1,20g/шаблон/d - удалить строки, содержащие шаблон c 1 по 20 строку | ||
20,$s/шаблон/замена/ - произвести замены в тексте с 20 строки до конца | 20,$s/шаблон/замена/ - произвести замены в тексте с 20 строки до конца | ||
+ | %s/шаблон/замена/ - произвести замены в тексте во всем файле. Пример: %s/^/shut\rint / | ||
+ | noh - очистить подсветку поиска | ||
</code> | </code> | ||
- | ==== Настройка vi/vim ==== | + | ==== Редактирование файлов для Winodws ==== |
<code> | <code> | ||
- | set nu - включить режим отображения номеров строк | + | :setlocal fileformat=dos |
- | set nonu - выключить режим отображения номеров строк | + | |
- | set ruler - выключить режим отображения позиции курсора | + | |
- | set smd - отображать в статусной строке режим редактирования | + | |
- | set nosmd - не отображать в статусной строке режим редактирования | + | |
- | set nocompatible - помогает корректной работе стрелок в vim в freebsd | + | |
- | + | ||
- | $ cp /usr/local/share/vim/vim73/vimrc_example.vim .vimrc | + | |
- | + | ||
- | # cat .vimrc | + | |
- | </code><code> | + | |
- | ... | + | |
- | "set incsearch | + | |
- | ... | + | |
- | "if has('mouse') | + | |
- | " set mouse=a | + | |
- | "endif | + | |
- | ... | + | |
- | " filetype plugin indent on | + | |
- | ... | + | |
</code> | </code> | ||
- | Благодаря преподавателю ЦКО “Специалист” Владимиру Сорокину понял, что vim и FreeBSD отлично ладят :) | ||
- | |||
===== Дополнительные материалы ===== | ===== Дополнительные материалы ===== | ||
- | [[http://www.grymoire.com/Unix/Sed.html]] | + | * [[https://www.grymoire.com/Unix/Sed.html|Sed - An Introduction and Tutorial by Bruce Barnett]] |