Вопросы по теме: текстовый редактор vim
Как перейти в режим редактирования? ответ
i — переход в режим редактирования.
a — переход к следующему за курсором символу и начало режима вставки.
A — начать вставку в конце текущей строки.
o — добавление пустой строки под текущей и начало вставки.
O — добавление пустой строки над текущей и начало вставки.
Как перейти из режима редактирования в режим навигации (нормальный режим)? ответ
Нажать <Esc>
Как сохранить внесённые в файл изменения? ответ
- перейти в нормальный режим, нажав <Esc>
- затем ввести :w <ENTER>
:wq <ENTER> — сохранить изменения в текущем файле и выйти
:w <имя_файла> <ENTER> — сохранить изменения в файл <имя_файла>
:w — это краткая запись команды :write
Как посмотреть стравку по какой-либо команде? ответ
При помощи команды :help из нормального режима.
например :help write
Навигация по файлу
Какими клавишами осуществляется навигация на один символ вправо/влево, на одну строку вверх/вниз? ответ
стрелками на клавиатуре или клавишами:
h — влево
j — вниз
k — вверх
l — вправо
Как перейти к началу и к концу строки? ответ
0 — перейти к началу строки
$ — перейти к концу строки
Как перейти к началу/концу документа? ответ
gg — перейти в начало документа
G — перейти в конец документа
Как узнать количество строк в файле? ответ
- перейти к последней строке файла (G) и посмотреть позицию в строке состояния
- при помощи команды :f или сочетания клавиш <CTRL+g>
второй способ также покажет текущую позицию в файле.
Как перейти к строке номер 10? ответ
- перейти к первой строке — gg, затем спуститься на 9 строк вниз j x9
- 10G
- 10gg
Как перейти к соответствующей закрывающейся скобке, если курсор находится на открывающейся? ответ
нажать %
Команды удаления
Как удалить символ под курсором? ответ
- при помощи клавиши <DELETE>
- при помощи клавиши x
Как удалить текущую строку? ответ
- в режиме редактирования удалять по 1 символу при помощи <DELETE> или <BACKSPACE>
- 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('.').'. '/ — записать в начало каждой строки её номер