Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

        При работе с конфигурационными файлами гипревизора Горизонт-ВС, используется редактор vim

...

        Горячие клавиши Vim

...

        Vim имеет разные режимы работы, каждому из которых соответствует свой набор горячие клавиш (хоткейсов). А ещё у вима своя собственная терминология, на базе которой организованы группы хоткейсов.
Так, копирование в Vim — это yank, а хоткейсы для копирования начинается 

...

с y. Удаление — delete. Хоткейсы для удаления и вырезания начинаются с 

...

d. Вставка — put. Хоткейсы для вставки начинаются 

...

с p. Визуальный режим — visual. Хоткейсы для работы в визуальном режиме начинаются 

...

с v.
Поначалу эта система кажется запутанной, но немного поработав в ней — вы привыкнете, и руки сами запомнят все нужные комбинации. Перейдем к рассмотрению хоткейсов. Начнём с горячих клавиш для «обычного режима».
        *Горячие клавиши «обычного режима»*

...

   

...

  

...

   Обычный режим — это базовый режим, в который пользователь попадает сразу после запуска вима. Этот режим позволяет перемещаться по документу и вносить в него некоторые изменения. Базовые хоткейсы для этого режима:
h,j,k,

...

l — замена классических стрелок для навигации по документу

...

w — сдвиг курсора на слово вправо

...

b — сдвиг курсора на слово влево

...

Shift + w — сдвиг курсора до пробела вправо

...

Shift + b — сдвиг курсора до пробела влево

...

^ (

...

Shift +

...

 6) — переместить курсор к первому пробелу в начале строки

...

0 — переместить курсор к началу строки

...

$ (

...

Shift +

...

 4) — переместить курсор в конец строки

...

Ctrl + y — переместить курсор на строку вверх, с сохранением позиции

...

Ctrl + e — переместить курсор на строку вниз, с сохранением позиции
\{

...

 переместить курсор на абзац вверх
\}

...

 переместить курсор на абзац вниз

...

Ctrl + d — переместить курсор на полстраницы (экрана) вниз

...

Ctrl + u — переместить курсор на полстраницы (экрана) вверх

...

Ctrl + f — переместить курсор на страницу (экран) вниз

...

Ctrl + b — переместить курсор на страницу (экран) вверх

...

gg — перейти в начало файла

...

G (Shift+

...

 g)— перейти в конец файла

...

 номер строки +

...

 G — переместить курсор на конкретную строку
/

...

 искомый текст ↵ Enter — найти текст и переместиться к нему
?

...

 искомый текст ↵ Enter — то же самое, но искать с конца документа

...

n — повторить поиск текста (сразу переместит к искомому тексту)

...

N — повторить поиск назад (сразу переместит к искомому тексту)

...

g~~ — инвертировать регистр строки

...

ggguG — перевести весь текст в нижний регистр

...

gggUG — перевести весь текст в верхний регистр

...

        Разберем отдельно хоткейсы и команды поиска и удаления. Начнем с команд поиска:
/jo\[ha\]

...

n> — искать "john" или "joan".
/\

...

<for — найти слово, начинающиеся на for. Если перед for будет стоять пробел — будет найден вложенный for (Python). Чтобы был найден for с любым количеством пробелом перед ним, укажите следующую конструкцию:

...

 /\ * for.
/end\

...

> — искать слово, оканчивающиеся на end
/\

...

 искать pagination (точное совпадение)
/\<...\

...

> — искать слово из 3 символов (кол-во точек = кол-во знаков)
Хоткейсы для удаления:

...

d^ (

...

Shift +

...

 6) — удалить все символы от курсора до начала строки

...

d$ — удалить все символы от курсора до конца строки
d/

...

 слово — удалить всё от курсора до введенного слова

...

df символ — удалить всё от курсора до указанного символа

...

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

...

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

...

        Перейти в режим редактирования можно также с помощью следующих хоткейсов:

...

Shift + i — перейти в режим редактирования текста сначала строки

...

a — перейти в режим редактирования текста после курсора

...

Shift + a — перейти в режим редактирования текста с конца строки

...

o — перейти в режим редактирования текста с новой строки под курсором

...

O (

...

Shift +

...

 o) — перейти в режим редактирования текста с новой строки над курсором

...

число s ↵ Enter — удалить заданное кол-во символов после курсора и перейти в режим редактирования

...

число S (Shift + s) ↵ Enter — удалить заданное кол-во строк вместе с текущей и перейти в режим редактирования

...

R — заменить символы после курсора и перейти в режим редактирования

...

r — заменить один символ и перейти в режим редактирования

...

cc — удалить строку и перейти в режим редактирования

...

C (

...

Shift +

...

 c) — удалить символы от курсора до конца строки и перейти в режим редактирования

...

        Для удаления символов, слов и строк существует целый набор хоткейсов:

...

x — удалить символ под курсором

...

число x — удалить заданное кол-во символов

...

X (

...

Shift +

...

 x) — удалить символ перед курсором

...

число X — удалить заданное кол-во символов перед курсором

...

de — удалить символы с текущего до конца слова, не включая пунктуацию и пробел в конце слова

...

dE — удалить символы с текущего до конца слова, включая пунктуацию и пробел в конце слова

...

dw — аналог de с удаление пробела в конце

...

di w — удалить слово под курсором

...

d d — вырезать текущую строку

...

числ dd — вырезать заданное кол-во строк, начиная с текущей

...

db — удалить символы с текущей позиции курсора до начала слова

...

dO — удалить символы с текущей позиции курсора до начала строки

...

D (

...

Shift +

...

 d) — удалить символы с текущей позиции курсора до конца строки

...

        Так же как и для удаления, для копирования и вставка существует свой отдельный блокхоткейсов:

...

yiw — скопировать слова целиком

...

yw — скопировать символы от курсора до конца слова

...

y^ (

...

Shift +

...

 6) — скопировать все от курсора до конца строки

...

yy — копировать строку целиком, включая символ новой строки

...

число yy — скопировать заданное кол-во строк, включая текущую

...

y$ (

...

Shift +

...

 4) — скопировать всё от курсора до конца строки
y)

...

 (

...

Shift +

...

 0) — скопировать всё от курсора до конца абзаца
y(

...

 (

...

Shift +

...

 9) — скопировать всё от курсора до начала абзаца

...

p — вставить содержимое буфера после курсора

...

P — вставить содержимое буфера перед курсором

...

J — слить текущую строку с последующей

...

число J — слить заданное кол-во строк.
А вот и небольшой лафхак, связанный с информационной строкой внизу окна вима. Если нужно слить все строки в абзаце — установите курсор в начале абзаца и воспользуйтесь сочетанием клавиш 

...

y). В внизу окна вима выведется кол-во скопированных строк, а теперь воспользуйтесь хоткейсом для слияния заданного кол-ва строк — 

...

число J.
Теперь мы знаем множество хоткейсов для навигации и редактирования текста, однако отменять последние действия мы пока ещё не умеем. Для отмены последнего действия существует несколько хоткеев:

...

u — отмена последнего действия

...

U — отмена всех действий в строке. Если строка удалена — команда не сработает.
Обычный режим позволяет редактировать текст командами, однако иногда необходимо выделить часть строки или часть блока текста. Сделать это можно в специальном режиме — визуальном.
*Горячие клавиши визуального режима*
Визуальный режим позволяет выбирать текст и управлять им. Установите курсор в место визуального выделения текста и нажмите 

...

v. Смещение курсора влево или вправо — выделяет текст посимвольно, смещение курсора вверх и вниз — выделяет текст построчно.
Можно войти в визуальный режим сразу сразу с функции построчного выделения текста 

...

Shift +

...

 v. Помимо посимвольного и построчного выделения текста, существует режим блочного выделения текста — Ctrl 

...

+

...

 v.
Режим визуального выделения текста очень хорошо сочетается с хоткейсами обычного режима. Например, чтобы быстро выделить весь абзац достаточно установить курсор в начало абзаца нажать v и 

...

\}.
Часто необходимо провести какие-то манипуляции с текстом целиком или с его отдельными блоками. Например, изменить регистр во всем документе. Вот некоторые хоткейсы визуального режима:

...

Vu — перевести строку в нижний регистр

...

VU — перевести строку в верхний регистр

...

vEU — перевести слово под курсором в верхний регистр

...

vE~ — инвертировать регистр слова

...

        Итак, мы рассмотрели два режима: обычный режим и визуальный. Оба режима позволяют редактировать текст внутри документа. Теперь рассмотрим режим, который позволяет управлять состоянием документа.
*Команды режима управления (командный режим)*

...

        Чтобы перейти в командный режим, находясь в обычном режиме — нажмите:

...

 (Shift;). В нижней строке состояния Vim должно появиться двоеточие. Это означает, что командный режим активирован и ожидает ввода команд.
!worddavdb99161040797e5916b3901e7f66ab95.png|height=98,width=653

...

!
        Если двоеточие не появилось — нажмите несколько раз 

...

Esc, а затем повторите ввод двоеточия. Ввод команды подтверждается, нажатием кнопки 

...

 Enter.

...

        Возможности командного режима намного шире, чем просто сохранение файла и выход из Vim. Поэтому рассмотрим помимо команд работы с документом ещё команды замены текста.
        *Команды работы с документом*

...

        Существует множество команд для работы с документом. Все команды начинаются с:. Приведем основные команды для работы с документами:

...

ZQ или q! — выйти без сохранения
qa!

...

 выйти из всех файлов без сохранения

...


ZZ или wq или x — записать и выйти

...

w — записать файл

...

sav имя_файла — сохранить как
w!

...

 сохранить в новый файл

...

sh — свернуть Vim и перейти в командную оболочку

...

Ctrl + d или exit
q — выйти из редактора
e!

...

 отменить все изменения в текущей сессии
1,

...

10w имя_файла — создать файл и скопировать в него содержимое текущего файла с 1 по 10 строки
1,

...

10w>> имя_файла — добавить в файл с 1 по 10 строки из текущего файла

...

r название_файла — вставить содержимое из файла

...

23r название_файла — вставить содержимое файла после 23

...

 строки
        *Команды для замены частей текста*

...

        Основной конструкцией для составления поискового запроса в командном режиме является 

...

:%s. Далее идут аргументы запроса. Все команды запроса вводятся в командном режиме, с активным:

...

 Приведём популярные команды поиска и замены:
%s/искомое_слово/слово_замена/

...

g — найти и заменить все искомые слова на слова замены
5,10s/искомое_слово/слово_замена/

...

g — найти и заменить все искомые слова на слова замены между 5 и 10 строчками
5,$s/искомое_слово/слово_замена/

...

g — найти и заменить все искомые слова на слова замены, начиная с 5 строчки и до конца файла
%s/искомое_слово/слово_замена/

...

gi — заменить искомое слово на слово замену с учетом регистра
%s/ *$//

...

g — убрать все пробелы из файла
%s/\r//

...

g — убрать все возвраты каретки из файла
%s#>\[^<\]\+

...

>##g — убрать html-теги из документа
%s/\<./\u&/

...

g — перевести первую букву каждого слова в верхний регистр
%s/\<./\l&/

...

g — перевести первую букву каждого слова в нижний регистр
%s/.*/\u&

...

 перевести первую букву первого слова в каждой строке в верхний регистр
%s/.*/\l&

...

 перевести первую букву первого слова в каждой строке в нижний регистр