Skip to content

Instantly share code, notes, and snippets.

@A
Last active August 12, 2024 10:44
Show Gist options
  • Select an option

  • Save A/862276679479cfcd0421 to your computer and use it in GitHub Desktop.

Select an option

Save A/862276679479cfcd0421 to your computer and use it in GitHub Desktop.

Конфиги

Навигация

Различные способы перехода в режим вставки

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

Вставка, замена и удаление

Text Objects

Принцип работы: Действие → Область → Объект

Действие

Документация

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 (# буфера)

Undo/Redo

: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

Очистка Bundles/ от удаленных плагинов

: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 для подробной информации.
@juev
Copy link
Copy Markdown

juev commented Feb 24, 2015

Поиск по проекту будет работать только после установки дополнительного расширения.

Комбинации, тут неплохо было бы указать, что это только для примера. И для формирования комбинаций используются ранее перечисленные команды, и можно получить нечто вроде ci(

Быстрая установка плагинов и их очистка работает только при условии использования соответствующего расширения. Если в данном случае речь о Vundle, то в новых версиях уже используется не BundleInstall, а PluginInstall, хотя поддержка Bundle еще осталась.

Сори за критику!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment