Вопросы по теме: текстовый редактор vim

Как перейти в режим редактирования? ответ

i — переход в режим редактирования.

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

o — добавление пустой строки под текущей и начало вставки.
O — добавление пустой строки над текущей и начало вставки.

Как перейти из режима редактирования в режим навигации (нормальный режим)? ответ

Нажать <Esc>

Как сохранить внесённые в файл изменения? ответ

  1. перейти в нормальный режим, нажав <Esc>
  2. затем ввести :w <ENTER>

:wq <ENTER> — сохранить изменения в текущем файле и выйти

:w <имя_файла> <ENTER> — сохранить изменения в файл <имя_файла>

:w — это краткая запись команды :write

Как посмотреть стравку по какой-либо команде? ответ

При помощи команды :help из нормального режима.

например :help write

Навигация по файлу

Какими клавишами осуществляется навигация на один символ вправо/влево, на одну строку вверх/вниз? ответ

стрелками на клавиатуре или клавишами:
h — влево
j — вниз
k — вверх
l — вправо

Как перейти к началу и к концу строки? ответ

0 — перейти к началу строки
$ — перейти к концу строки

Как перейти к началу/концу документа? ответ

gg — перейти в начало документа
G — перейти в конец документа

Как узнать количество строк в файле? ответ

  1. перейти к последней строке файла (G) и посмотреть позицию в строке состояния
  2. при помощи команды :f или сочетания клавиш <CTRL+g>

второй способ также покажет текущую позицию в файле.

Как перейти к строке номер 10? ответ

  1. перейти к первой строке — gg, затем спуститься на 9 строк вниз j x9
  2. 10G
  3. 10gg

Как перейти к соответствующей закрывающейся скобке, если курсор находится на открывающейся? ответ

нажать %

Команды удаления

Как удалить символ под курсором? ответ

  1. при помощи клавиши <DELETE>
  2. при помощи клавиши x

Как удалить текущую строку? ответ

  1. в режиме редактирования удалять по 1 символу при помощи <DELETE> или <BACKSPACE>
  2. dd — наиболее быстрый и простой способ

Как удалить 5 строк, начиная с той, на которой находится курсор? ответ

d5d или 5dd

Как удалить строки с текушей, до конца/начала файла? ответ

dG — удалить строки с текущей до конца документа

dgg — удалить строки с текущей до начала документа

Как удалить часть строки от курсора до конца/начала строки? ответ

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

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

Как удалить символы от курсора до конца слова? ответ

dw

Как удалить произвольную часть текста? ответ

перейти в режим выделения — v, затем промотать до нужного места — стрелками или клавишами навигации, затем дать команду удаления, например — d

Копирование текста

Как скопировать/вставить целую строку? ответ

yy — скопировать строку в буфер обмена

p — вставить скопированную строку

Также в буфер обмена попадают удаленные символы, поэтому продублировать строку можно так — ddpp

Как скопировать/вставить одно слово? ответ

yw — скопировать

p — вставить

или, аналогично предыдущему заданию — dwp

Как скопировать/вставить часть текста от текущего положения курсора, до конца следующей строки? ответ

y$ — скопировать, p — вставить

или d$pp

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

Как найти все входжения слова 'test' в файле? ответ

/test <ENTER>, а затем n — перейти к следующему, N — к предыдущему

?test <ENTER> — для поиска в обратном направлении

Как выделить (подсветить) искомый текст? Как снять выделение? ответ

:hls — подсветить все найденные слова, :nohls — не подсвечивать.

если в файле ~/.vimrc прописать set hlsearch, то подсвечивание будет включено по умолчанию

Как изменить символ находящийся под курсором? ответ

r <новый_символgt;, для замены нескольких символов идущих подряд — R

Как изменить строку? ответ

cc. или удалить строку любым способом и написать новую.

Как изменить часть строки от курсора до конца строки? ответ

c$

Как заменить все вхождения слова 'false' на 'true'? ответ

:1,$s/false/true/g

1,$ — с первой до последней строки — можно заменить на %
s/false/true/ — заменять 'false' на 'true'
g — заменять все найденные в строке слова 'false' (без этого флага поменялось бы только первое найденное в строке слово 'false')

Разное

Как отсортировать строки в файле? Как при этом убрать дубли строк? ответ

:sort — отсортировать

:sort u — отсортировать и оставить только уникальные строки

Как пронумеровать строки в файле? ответ

:set number или просто :set nu — вывести номера строк не меняя файл

:%s/^/\=line('.').'. '/ — записать в начало каждой строки её номер