Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Сохраните созданные файлы, дав им свое имя и фамилию.



Представьте выполненную работу преподавателю.

Порядок выполнения работы

1. Внимательно изучите теоретические сведения параллельно заполняя соответствующую часть отчёта.

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

3. Сохраните созданные файлы, дав им свое имя и фамилию.

4. Представьте выполненную работу преподавателю.

5. Выполните завершение работы.

6. Оформите отчёт о проделанной работе.

5. Контрольные вопросы:

1. Что такое Vim?

2. В каких режимах работает Vim?

3. Назовите основные сущности Vim.

4. В чём преимущества редактора Vim?

5. Перечислите недостатки Vim.

 

6. Рекомендуемые источники:

1. http: //www.vim.org.

2. http: //www.swaroopch.com/notes/Vim

3. http: //www.oualline.com/vim-cook.html

 

Лабораторная работа № 2.1 (2 часа)

Простейшие команды для работы с текстом

1. Цель работы:

Изучить основные команды редактора Vim.

Теоретическая часть

Vim: Небольшой справочник

Vim не совсем " простой текстовый редактор" , у него три режима работы и множество команд. Изучение команд и возможностей Vim занимает время, но потраченное на изучение время быстро окупается.

Основные команды Vim очень простые, но сочетание простых команд может быть довольно мощным инструментом.

Режимы

В Vim имеется три режима работы с текстом:

  1. Командный режим: все нажатия клавиш интерпретируются как команды
  2. Режим вставки: используется для ввода текста
  3. Визуальный режим: используется для выделения текста или блока текста, этот режим можно рассматривать как под режим командного режима

Для переключения из режима вставки или визуального режима в командный режим, нажмите клавишу Esc.

Для переключения из командного режима в режим редактирования нажмите одну из клавиш:

  • i — переключает в режима вставки перед текущей позицией курсора
  • a — переключает в режим вставки после текущей позиции курсора
  • I — перескакивает к первому не пробельному символу в текущей строке и переключает в режим вставки
  • A — перескакивает к последнему символу в текущей строке и переключает в режим вставки

Для переключения из командного режима в визуальный режим нажмите одну из клавиш:

  • v — переключает в визуальный режим (выделение символов)
  • V — переключает в визуальный режим (выделение строк)
  • Ctrl+v — переключает в блочный визуальный режим (выделение прямоугольных областей текста)

Все команды которые работают с диапазонами (например: замена, вставка, удаление, копирование или отступы) поддерживаются в визуальном режиме.

Перемещения

Простейшие команды перемещения:

  • h — курсор влево
  • l — курсор вправо
  • j — курсор вверх
  • k — курсор вниз

Эти команды не работают в режиме вставки, но во всех трёх режимах можно использовать клавиши перемещения курсора.

Есть множество команд доступных для перемещения в Vim, я приведу основные, если вам нужно что-то специфическое, смотрите в справочной системе Vim.

  • H — перемещения курсора вверх страницы
  • M — перемещение курсора в средину страницы
  • L — перемещение курсора в низ страницы

Прокрутка страницы:

  • Ctrl+e — на 1 строку вниз
  • Ctrl+d — на 1/2 страницы вниз
  • Ctrl+f — на 1 страницу вниз
  • Ctrl+y — на 1 строку вверх
  • Ctrl+u — на 1/2 страницы вверх
  • Ctrl+b — на 1 страницу вверх

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

  • 0 — первый символ строки
  • ^ — первый не пробельный символ строки
  • w — перескакивает к следующему слову
  • W — перескакивает к следующему слову, игнорируя символы пунктуации
  • e — перескакивает к конц слова
  • E — перескакивает к концу слова, игнорируя символы пунктуации
  • b — перескакивает к началу слова
  • B — перескакивает к началу слова, игнорируя символы пунктуации
  • ge — перескакивает к концу предыдущего слова
  • gE — перескакивает к концу предыдущего слова, игнорируя символы пунктуации
  • g_ — перескакивает к последнему не пробельному символу строки
  • $ — перескакивает к последнему символу строки

Если запомнить хотя бы несколько из этих команд, то можно быстро перемещаться из точки А в точку Б. Так же важным фактом является то, что эти команды задают диапазон для других команд.

Редактирование

Вставка текста осуществляется в Vim довольно просто, нажал i и начал печатать. Но для редактирования Vim предлагает довольно сложные команды.

  • d — удалить символ от текущей позиции курсора, до позиции заданной следующей командой (например: d$ удалит все символы от текущей позиции до конца строки)
  • c — изменить символ от текущей позиции до позиции заданной следующей командой
  • x — удалить символ под курсором
  • X — удалить символ перед курсором
  • y — копировать символы от текущей позиции до позиции заданной следующей командой
  • p — вставить удалённый или скопированный текст после текущей позиции курсора
  • P — вставить удалённый или скопированный текст перед текущей позицией курсора
  • r — заменить символ под курсором на новый, введённый
  • s — заменить текст с текущей позиции курсора до позиции заданной следующей командой введённым текстом
  • . — повторить последнюю команду вставки или редактирования (x, d, p...)

Двойная команда d, c или y выполнит операцию над всей строкой, например yy скопируют всю строку.

Обратите внимание, что многие команды из описанных здесь на самом деле являются более мощными. Например вы можете указать в какой регистр скопировать текст. При вводе " ayy копия строки сохраниться в регистре a, что бы вставить текст из этого регистра необходимо ввести " ap. Vim помнит несколько последних команд удаления и копирования в автоматических регистрах. Что бы посмотреть содержимое регистров наберите: registers. Вы так же можете использовать автоматические регистры для вставки старых фрагментов текста.

Визуальный режим

Используя визуальный режим можно вставлять текст в каждую строку выделенного фрагмента.

Например, мы выбрали прямоугольную область (использую Ctrl+v или Ctrl+q в windows), мы можем нажав I (переключившись в режим вставки) вставить свой текст. Как только выйдем из режима вставки, текст будет добавлен ко всем выбранным строкам. Для ввода текста после выделенной области нужно использовать A. Для выделений используются клавиши h, j, k и l курсорные клавиши в визуальном режиме не работают.

Другой удобной функцией является замена всего выбранного блока новым текстом. Для этого нужно выделить блок и нажать s, Vim переключиться в режим вставки и можно вводить текст. После выхода из режима вставки Vim вставит введённый текст во все строки.

Если мы хотим добавить текст в конце строк, то можно использовать Ctrl+v (или Ctrl+q в windows) $ и выбрать строки. Разница между предыдущими вариантами и этим заключается в том, что $ указывает на концы строк, а Ctrl+v (или Ctrl+q) работает со столбцами, игнорируя текст.

Используем Ctrl+q:

Тестовый текстВСТАВЛЕННЫЙ ТЕКСТАЕщё строка ВСТАВЛЕННЫЙ ТЕКСТАТекст ВСТАВЛЕННЫЙ ТЕКСТА

Используем Ctrl+q $

Тестовый текстВСТАВЛЕННЫЙ ТЕКСТАЕщё строкаВСТАВЛЕННЫЙ ТЕКСТАТекстВСТАВЛЕННЫЙ ТЕКСТА

Текстовые объекты

Команды Vim оперируют такими текстовыми объектами как символ, слово, предложения, разделённые скобками фрагменты и т.д.

Одним из важных объектов является внутреннее слово: iw. Для выделения слова под курсором достаточно набрать yiw (v — визуальный режим, iw — внутреннее слово), аналогично для удаления: diw.

Разница между i-словом/блоком и a-словом/блоком в том, что внутренний (i) вариант выбирает символы и слово (без пробелов) или содержимое скобок, не включая внешние пробелы и скобки. a-вариант выбирает блоки с внешними пробелами и скобками.

  • iw — внутреннее слово
  • aw — a слово
  • iW — внутреннее СЛОВО
  • aW — a СЛОВО
  • is — внутреннее предложение
  • as — a предложение
  • ip — внутренний параграф
  • ap — a параграф
  • i( или i) — внутренний блок
  • a( или a) — a блок
  • i< или i> — внутренний блок
  • a< или a> — a блок
  • i{ или i} — внутренний блок
  • a{ или a} — a блок
  • i" или i" — внутренний блок
  • a" или a" — a блок
  • i' или i' — внутренний блок
  • a' или a' — a блок

Небольшие примеры, что бы было понятнее. Символами [ и ] выделен выделенный блок.

Команда Текстовый объектiw Это [тестовое] предложение.aw Это [тестовое ]предложение.iW Это[ тестовое ]предложениеaW Это[ тестовое ]предложение.is...предложение. [Это тестовое предложение.] Это...as...предложение. [Это тестовое предложение. ]Это... конец предыдущего параграфаip [Это параграф. Содержащий два предложения.] следующий параграф. конец предыдущего параграфаap [Этот параграф. Содержит два предложения ]следующий параграфi( or i) 1 * ([2 + 3])a( or a) 1 * [(2 + 3)]i< or i> The < [tag]> a< or i> The [< tag> ]i{ or i} some {[ code block ]}a{ or a} some [{ code block }]i" The " [best]" a" The[ “best”]i` The `[best]`a` The[ `best`]

Пробуйте эти команды и запоминайте, они помогут сэкономить много времени.

Отмена и Возврат

Отменить можно почти все команды (Ctrl+z), в командном режиме можно даже отменить отмененную команду (Ctrl+r)

Выполнение внешних команд

В Vim легко получить результат выполнения внешних команд или использовать часть строки в качестве аргумента внешней программы.

Для вывода результат выполнения внешней команды:! command, будет показан вывод команды.

Для фильтрации текста через внешнюю команду:! sort %.

Для вставки вывода внешней команды в текст: r! command (например: r! ping ya.ru)

Для получения подробной информации по фильтрации выполните: h filter.

Поиск и замена

Поиск в Vim организован очень просто. Нажмите / в командном режиме и вставьте термин который хотите найти. Vim выполнит поиск по файлу в прямом направлении. Для поиска в обратном направлении используйте?. Используя n или N можно повторить поиск в том же обратном направлении.

Если установлена опция 'incsearch', то Vim сразу же переходит к первому совпадению, когда вы начинаете вводить термин. Если установлена опция 'hlsearch', то будут подсвечиваться все совпадения. Что бы удалить подсвечивание, наберите: nohl.

Замена текста тоже не представляет трудности, если вы знакомы с регулярными выражениями.

Для замены с использованием регулярных выражений, наберите: %s/старый текст/новый текст/gc. Эта команда выполнит поиск во всём файле % и произведёт замену s фразы " старый текст" на " новый текст", будет искать более одного совпадения в каждой строке g и спрашивать перед заменой, действительно ли вы хотите заменить фразу c.

Для замены текста в выбранной области, выберите область и наберите: s/старый текст/новый текст/g. В командной строке это должно выглядеть как: '<, '> s/старый текст/новый текст/g. Что означает '< и '> вы поймёте после прочтения раздела Метки.

Завершения

Когда вы набираете текст, то довольно часто приходится набирать одни и те же слова. При нажатии Ctrl+p Vim будет искать продолжение слова, которое мы набираем, в набранном ранее тексте. Ctrl+x и Ctrl+l завершит набранный текст до конца строки.

Если вы не уверены в правильности написания слова, можно включить проверку орфографии: set spell и при нажатии комбинации Ctrl+x и Ctrl+K Vim выполнит поиск в словаре. Механизм завершения слов существенно улучшился в 7 версии Vim.

Обратите внимание, что команды завершения работают в режиме вставки, в командном режиме у них другое назначение!

 

Метки

Для быстрого перехода в разные места документа или между документами, можно выставлять метки.

Некоторые метки Vim ставит автоматически:

  • {0-9} — 10 последних позиций в закрытых файлах (0 последний файл, 1 предпоследний и т.д.)
  • < и > — левая и правая позиции помеченного текста.
  • ( и ) — начало и конец текущего предложения
  • { и } — начало и конец текущего параграфа
  • [ и ] — первый и последний символы скопированного или изменённого текста
  • . — позиция последней замены
  • ' или ` — позиция перед последним переходом
  • " — позиция перед последним выходом из файла
  • ^ — позиция последней стоп-вставки

Для установки ручной метки используйте m{a-zA-Z} (после m следует либо a, b..z или A, B..Z). Для перехода между метками используются ' и `.

  • ' — устанавливает курсор на первый не пробельный символ в отмеченной строке
  • ` — устанавливает курсор на место где была установлена метка

Существует различие между строчными и заглавными символами меток:

  • {a - z} — локальный файл
  • {A - Z} — сохраняется и доступно между сессиями (ассоциированы с файлами)

Можно использовать метку L для ведения рабочего журнала и T для своего расписания и быстро обновлять информацию в них.

Например можно легко перейти к позиции курсора перед закрытием файла, набрав `" (в настройках Vim легко сделать, что бы при открытии файла курсор автоматически перемещался в эту позицию)

Для получения списка всех меток можно набрать команду: marks. Для удаления меток используется: delmarks.: delmarks a b c удалит метки a, b и c, для удаления всех меток используйте: delmarks!

Вкладки, буферы и окна

С седьмой версии в Vim появились вкладки. Вкладки Vim сильно отличаются от вкладок в других редакторах, они скорее похожи на копии Vim в терминальном окне с вкладками. Например каждая вкладка может иметь свой макет. Например в первая вкладка у вас может быть разделена на два окна с html кодом и стилем css. Во второй вкладке можно держать одно окно с js скриптом и т.д. В разных вкладках можно держать одинаковые открытые файлы. В общем вкладки в Vim более мощные чем у большинства других редакторов.

Для открытия нескольких файлов во вкладках можно использовать командрую строку vim -p *.css

Для переключения между вкладками можно использовать мышь или набрать gt.

Для создания новой вкладки наберите команду: tabnew, для открытия файла в новой вкладке: tabe имя_файла

Буферы и окна в Vim немного сложнее для понимания. Окно это то, что вы виде запустив Vim, когда вы запускаете систему справки (например набрав: help buffers), вы получите два окна. Таким образом они скорее не окна, а видимые области.

Вы можете открыть окно и разделить его по горизонтали: sp или вертикали: vsp. Vim отобразит один буфер в двух разных окнах. Так же можно открывать новый файл: sp имя_файла или: vsp имя_файла. Для переключения между окна используется мышь или Ctrl+w {h, j, k, l} в командном режиме.

Буфер это файл (в большинстве случаев), но не обязательно видимый. Обычно используется больше буферов, чем окон. Для отображения другого буфера в текущем окне используйте: b номер_буфера. Номер буфера можно узнать из списка буферов: buffers. В стандартной конфигурации Vim сохраняет текущий буфер при переключении на другой. Для отключения сохранения буфера используйте команду: set hidden, но будьте осторожны.

Вот некоторые команды из справочной системы:

  • : b N — переключает на буфер N
  • : buffers — показывает список буферов. Разъяснения:
    • % — текущее окно
    • # — альтернативный буфер (переключается: e# или: b#)
    • a — активный буфер (загружен и видим)
    • h — скрытый буфер (загружен, но не видим)
    • + — изменённый
  • : bd — выгружает буфер и удаляет его из списка буферов (не закрывает Vim, даже если это последний буфер)
  • : bun — выгружает буфер, но оставляет его в списке буферов
  • : sp #N — делит текущее окно по горизонтали и открывает в нём буфер N
  • : w — записывает текущий буфер на диск
  • : e имя_файла — загружает файл с диска
  • : q — закрывает текущее окно (и Vim, если оно было последним)
  • : new — новое пустое окно
  • : on — закрывает все окна, кроме активного (Ctrl+W o)
  • Ctrl+W {h, j, k, l} - перемещение между окнами

Буферы автоматически сохраняются, если опция 'hidden' не установлена, а опция 'autowrite' установлена.

Макросы

Макрос это функция, позволяющая привязать серию команд к одной иконке, которая будет запускать всю цепочку одним нажатием.

Vim позволяет выполнять некоторые команды используя. (точка). Для повторения более чем одной команды можно использовать макросы.

Начать запись макроса можно с помощью q и одной из меток {0-9a-zA-Z}, например qq запишет макрос помеченный как " q". Нажав q можно остановить запись.

Теперь макрос можно повторить в любой момент используя @ q.

Заключение

Надеюсь этот материал поможет в освоении возможностей одного из самых интересных и сложных текстовых редакторов.

Описание команд, которые могут понадобиться при выполнении работы:

head [-n count] [file...] - Выводит первые count строк файла (по умолчанию 10).

tail [-f] [-n count] [file...] -Выводит последние count строк файла (по умолчанию 10). Если указан ключ -f, то ожидает добавления данных в конец файла и выводит их.

comm [-123] file1 file2 -Считывает файлы file1 и file2, которые должны быть

предварительно отсортированы, и выводит три колонки текста. В первой колонке строки имеющиеся только в file1, во второй имеющиеся только в file2, в третьей имеющиеся в обоих файлах. Параметры -1, -2, -3 позволяют подавить вывод соответствующей колонки.

cut {-с list|-f list [-d delim ]} [file...] -Вырезает из каждой строки указанные символы и выводит их. Аргумент list — список чисел и диапазонов чисел разделенных запятыми. Для -c числа указывают номера символов подлежащих выводу, для -f номера полей. Поля разделены символом delim (по умолчанию символ табуляции).

sort [-c|-m] [-o output] [-urnb] [file...] - Производит сортировку строк файлов, их

объединение или проверяет отсортирован файл или нет. Значения параметров:

-c только проверить правильность сортировки

-m объединить предварительно отсортированные файлы

-u удалять повторяющиеся элементы

-r сортировка в обратном порядке

-n сортировка чисел

-b игнорировать лидирующие пробелы

-o output - Производить вывод в файл output

wc [-c|-m][-lw][file...] - Читает один или более входных файлов и, по умолчанию, выводит число символов новой строки, слов и байт содержащихся в каждом файле на стандартный вывод. Значения параметров:

-c Вывести число байт в каждом входном файле

-l Вывести число символов новой строки в каждом входном файле

-m Вывести число символов в каждом входном файле -w вывести число слов в каждом входном файле

iconv -f codepage1 -t codepage2 [file... ] - Конвертирует файлы из кодировки codepage1 в кодировку codepage2 и выводит результат на стандартный вывод.

Например, iconv -f windows-1251 -t koi8-r file перекодирует файл из кодировки CP1251 в кодировку KOI8-R.

Самостоятельная работа

1. Запустить vim.

2. Открыть ранее созданный текстовый файл.

3. Освоить навигацию по тексту и редактирование.

4. Произвести копирование фрагмента текста.

5. Скопируйте пять строк файла начиная с пятой и вставьте их в конце файла.

6. Удалите предпоследнюю строку.

7. Вставьте в редактируемый текст фрагмент из другого файла.

8. Подсчитайте число слов в файле.

9. Выйдите из редактора с сохранением файла.

 

 

Лабораторная работа №3 (2 часа)


Поделиться:



Последнее изменение этой страницы: 2017-04-12; Просмотров: 457; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.064 с.)
Главная | Случайная страница | Обратная связь