К основному контенту

Моя шпаргалка по работе в Vim

Самое главное — побороть боязнь белого листа. Я всегда говорю это себе, когда нужно начать работу над чем-то и не знаешь, как подступиться. Так что я решил не ломать голову над тем, о чем будет первая запись в этом блоге, а просто выложить небольшую шпаргалку по текстовому редактору Vim.
Шпаргалка эта уже не первый месяц хранится у меня в ~/txt/vim.txt. За это время я успел составить довольно объемный справочник по основным командам Vim. При желании вы можете начать свое обучение работе с Vim с этого поста.


Итак, вот она:
Файл настройки: ~/.vimrc
Можно редактировать файлы через сеть, например
:e ://user@host/path/to/the/file.txt
:Ex или :e ./ - файловый менеджер

hjkl                      перемещение в разные стороны
i                         режим вставки
I                         добавление в начало строки
a                         режим добавления
A                         добавление в конец строки
o                         добавить строку сразу за текущей
O                         добавить строку перед текущей
R                         писать поверх имеющегося текста
u, :u[ndo]                отмена предыдущего действия (undo)
CTR-R, :red[o]            отмена отмены предыдущего действия (redo)
dd                        вырезать (удалить) строку
cc                        удалить и начать редактирование
yy                        копировать строку
p                         вставить из буфера обмена
d                      удалить n+1 строку
y                      скопировать n+1 строку
ESC                       перейти в режим просмотра
DEL                       удалить следующий символ
:                      перейти на строку #n
%                         перейти к парной скобке
:e                редактировать файл
:w [fname]                записать изменения
:wa                       сохранить изменения во всех файлах
:q                        выйти из редактора
:q!                       выйти из редактора, не сохраняя изменения
:color             выбор цветовой схемы. цветвые схемы:
                            /usr/local/share/vim/vim72/colors/*.vim
:pwd                      текущий каталог
:cd [path]                перейти в другой каталог
:!                   выполнить команду
CTR+p или CTR+n           автоматическое дополнение текста
                            (в режиме редактирования)
CTR+r,=,            вставить выражение, например 5*2 - 3
                            (в режиме редактирования)
CTR+u, CTR+d              Page Up / Page Down
CTR+y, CTR+e              Перемотка вверх/вниз без движения курсора              

== Подсветка синтаксиса ==
:syntax on                включить подсветку
:syntax off               выключить подсветку (по умолчанию)

== Перенос строк ==
:set wrap                 разрешить word wrap (по умолчанию)
:set nowrap               запретить word wrap

== Печать ==
:ha[rdcopy]                   распечатать документ
:set printoptions=duplex:off  отключить двустороннюю печать

== Сворачивание ==
zc                        свернуть блок
zo                        развернуть блок
zM                        закрыть все блоки
zR                        открыть все блоки
za                        инвертирование
zf                        см :set foldmethod=manual
:set foldenable           включить свoрачивание
:set foldmethod=syntax    сворачивание на основе синтаксиса
:set foldmethod=indent    сворачивание на основе отступов
:set foldmethod=manual    выделяем участок с помощью v и говорим zf
:set foldmethod=marker    сворачивание на основе маркеров в тексте
:set foldmarker=bigin,end задаем маркеры начала и конца блока

== Маркеры ==
ma                        установить локальный маркер a
mB                        установить глобальный маркер B
`c                        перейти к локальному маркеру c
`0                        вернуться на позицию, на которой закончили
                            работу при закрытии vim
:marks                    просмотр маркеров

== Регистры ==
"ayy                      скопировать строку в регистр a
"bdd                      вырезать строку и поместить в регистр b
"С2d                      вырезать три строки и дописать в конец
                            регистра C
:reg [name1][name2][...]  просмотреть содержимое регистров

== Выделение ==
v + hjkl                  выделение текста
SHIFT + v                 выделить строку
CTR + v                   выделение прямоугольника
p                         вставить
y                         копировать
d                         удалить
gu                        к нижнему регистру
gU                        к верхнему регистру

== Отступы ==
[#]>                      сдвинуть выделенное вправо
[#]<                      сдвинуть выделенное влево
[#]>>                     сдвинуть строку вправо
[#]<<                     сдвинуть строку влево
set tabstop=#             для табуляции используется # пробелов
set shiftwidth=#          в командах отступа используется # пробелов
set [no]expandtab         заменять ли табуляцию на соответствующее
                            число пробелов

== Поиск и замена в файле ==
/<выражение>             поиск выражения в файле
n                        следующее совпадение
N                        предыдущее совпадение
:%s/foo/bar/gi           замена строк, см http://eax.me/regular-expr/

== Нумерация строк ==
:set number              включить нумерацию строк
:set nonumber            отключить нумерацию строк

== Работа с Tab'ами ==
:tabnew [fname]          создать tab
:tabs                    вывести список табов
:tabn                    следующий таб
:tabp                    предыдущий таб
gt                    перейти на таб #n
gt                       следующий таб
gT                       предыдущий таб

== Работа с окнами ==
:split                   горизонтальное разбиение
:vsplit                  вертикальное разбиение
Ctr+W, затем
  с                      закрыть окно
  =                      установить равный размер окон
  hjkl или стрелочки     перемещение между окнами

== Проверка орфографии ==
    mkdir -p ~/.vim/spell
    cd ~/.vim/spell
    wget http://ftp.vim.org/vim/runtime/spell/ru.koi8-r.sug
    wget http://ftp.vim.org/vim/runtime/spell/ru.koi8-r.spl
    wget http://ftp.vim.org/vim/runtime/spell/en.ascii.sug
    wget http://ftp.vim.org/vim/runtime/spell/en.ascii.spl

setlocal spell spelllang=ru,en   включить проверку орфографии
set spell!                       вкл/выкл проверку во время работы
]s                               следующее слово с ошибкой
[s                               предыдущее слово с ошибкой
zg                               good word
zw                               wrong word
zG                               ignore word

== Работа с кодировкой ==
e ++enc=<имя кодировки>         Редактирование файла в ??? кодировке
w ++enc=<имя кодировки>         Сохранить файл в новой кодировке
set fileencodings=utf-8,koi8-r  Список автоматически определяемых
                                  кодировок в порядке убывания
                                  приоритета

== Другое ==
:set [no]wildmenu          При авто-дополнении в командной строке над
                             ней выводятся возможные варианты
:set list                  Отображать табуляцию и переводы строк
q:                         История команд
.                          Повторение последней команды

Комментарии

Популярные сообщения из этого блога

Три типа мышления - мифологическое, религиозное, научное

Оригинальное название: Различные типы мышления (мифологическое, религиозное, научное) и их влияние на базовые космологические понятия в культуре и в онтогенезе, на педагогический и воспитательный процессы. Нами выделяется три типа мышления: мифологическое, религиозное и научное - в процессе развития, как социальных сообществ, так и развития ребенка. При этом, когда говорится о первенстве того или иного типа мышления, подразумевается его преобладание над двумя другими в том или ином социальном сообществе или у конкретного человека в тот или иной возрастной период. Как отмечал еще знаменитый отечественный физиолог Павлов, различные участки коры головного мозга усиливают свою деятельность в разных возрастах. Под мифологическим типом мышления мы понимаем преобладание мышления, связанного с цельным космогоническим мировоззрением, оценкой ситуаций в целом и рассмотрение мироздания как некого целостного организма. При развитии данного типа мышления преобладает решение стратегических ...

Отрывок из "Восход Черного Солнца" Джорджа Локхарда

   - Давно это было... А может, и не было. Но рассказывают, что еще до начала времен, когда не родились даже звезды, из бесконечного пламени возник бог. Он был одинок, зато всемогущ. Минули бесчисленные века, но бог лишь продолжал познавать собственную силу, пока однажды у него не родилась мысль: зачем нужно могущество, которым некому восторгаться? Следом за мыслью родился план, а поскольку бог тот был, по сути, ребенком, он немедленно принялся воплощать этот план в жизнь. Сначала он создал живое существо, способное мыслить, и спросил:    "Ощущаешь ли ты восторг при виде того, сколь я совершенен?"    "Нет, - ответило существо. - Потому что нет более жалкого зрелища, чем сила, не имеющая цели.    Тогда бог создал прекрасные земли, наполнил их жизнью и красотой, зажег на небесах звезды и вновь вопросил:    "Но теперь ты видишь, сколь я велик и могуч?"    "Оглянись, - ответило существо. - Творение твое - не более чем точка по ...

Синхронизация "Дни рождения контактов" Android с Google Calendar

Дни рождения в календаре Android или как сделать так, чтобы в календаре отображались дни рождения контактов.  Суть проблемы: отсутствие таких очевидных вещей, как отображение дней рождений контактов в календаре и соответственно не получаете уведомлений об их наступлении.. Способов решения масса, иногда поморгает синхронизация с Outlook (контакты и календарь), но можно и воспользоваться Google Calendar - для этого необходима учётная запись Google (Gmail).