i " вставить текст до курсора
I " вставить текст с начала строки
a " добавить текст после курсора
A " добавить текст с конца строки
s " заменить символ
S " заменить всю строку
o " добавить строку после
O " добавить строку перед
r " заменить символ
R " заменить последовательность символов
C " удалить текст после курсора, и перейти с решиж редактирования
[n]h " ←
[n]j " ↓
[n]k " ↑
[n]l " →
^ " переход в начало строки
$ " переход в конец строки
[n]w " к началу следующего слова
[n]e " к концу следующего слова
[n]b " к предыдущему слову
[n]( " к предыдущему предложению
[n]) " к следующему предложению
[n]{ " к предыдущему абзацу
[n]} " к следующему абзацу
<c-b> " перемещение на один экран назад ('b'ackward)
<c-f> " перемещение на один экран вперед ('f'orward)
f{char} " перейти на ближайшую букву :char в строке
F{char} " В обратную сторону
t{char} " поставить курсор _перед_ ближайшей :char
T{char} " В обратную сторону
* " найти все вхождения слова под курсором и перейти к следующему
# " найти все вхождения слова под курсором и перейти к предыдущему
/{str} " найти :str
n " перейти к следующему вхождению :str
N " перейти к предыдущему вхождению :str
:Ack StringToSearch " https://github.com/mileszs/ack.vim
Принцип работы: Действие → Область → Объект
c " заменить
y " скопировать
d " удалить
~ " изменить регистр. Работает только при `set tildeop`
< " Сдвинуть на отступ влево
> " Сдвинуть на отступ вправо
= " Выровнять отступы
q " Отформатировать текст
! " Обработать текст спомощью внешней программы
i — внутри объекта
a — включая объект
w — слово
t — тег
} — абзац
" — текст в кавычках
...
dfe " удалить текст до ближайшего символа `e`, включая его
dte " удалить текст до ближайшего символа `e`, невключая его
d$ " Удалить текст от позиции курсора до конца строки
d0 " удалить текст от позиции курсора до начала строки
d^ " удалить текст от позиции курсора до первого не пробельного символа
:vsp — создать новое окно, разделив экран вертикально
:sp — создать новое окно, разделив экран горизонтально
C-w + направление — переключение между окнами
C-w + r(otate) — поменять местами окна
C-w C-w — переключаться между окнами циклически
:q — закрыть окно
:qa — закрыть все окна
:tabe(dit) .
:tabn(ew)
:tabc(lose)
:tabm(ove) [positon]
" При открытии файла, он помещается в буфер — оперативную память.
" Окно — это представление буфера.
" Показать список открытых буферов
:ls
" Переключиться на буфер
:b (# буфера)
:earlier 4m — переместиться на 4 минуты назад
:later 45s — переместиться на 45 секунд вперед
:w !diff % - — дифф несохраненных изменений
. " Повторить последнее изменение
; " Повторить последний поиск
" Визуальный режим
v — визуальный режим
V — визуальный режим для работы со строками
:mksession ~/latest_session.vim " Сохранить
!vim -S ~/latest_session.vim " Загрузить
" .vimrc:
Bundle 'author/repo'
" vim:
:so ~/.vimrc
:BundleInstall
:BundleClean
:setf language
:set foldmethod=indent " Включить
za " тогглить
:e[dit] {file}
:cd {dir} " Сменить текущей `cwd`
:pwd " узнать wd
" прочитать stdout в vim
svn diff | vim -R -
Разместите ваш курсор на имени переменной и нажмите gd для перехода к локальному определению имени переменной. gD производит то же для глобального объявления, производя поиск с начала файла.
Используйте ]] для перехода к следующему вхождению { в первом столбце. Есть много подобных перемещений - смотри :help object-motions для подробной информации.