Разное

Шпаргалка vim: Моя шпаргалка по работе в 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                         вставить из буфера обмена
<n>d                      удалить n+1 строку
<n>y                      скопировать n+1 строку
ESC                       перейти в режим просмотра
DEL                       удалить следующий символ
:<n>                      перейти на строку #n
%                         перейти к парной скобке
:e **/filename.c          редактировать файл (с поиском по имени)
:w [fname]                записать изменения
:wa                       сохранить изменения во всех файлах
:q                        выйти из редактора
:q!                       выйти из редактора, не сохраняя изменения
:color <name>             выбор цветовой схемы. цветвые схемы:
                            /usr/local/share/vim/vim72/colors/*.vim
:pwd                      текущий каталог
:cd [path]                перейти в другой каталог
:!команда                 выполнить команду — man, git, и так далее
                            стрелочками веерх и вниз можно автодополнять
                            команды и искать по истории
CTR+p или CTR+n           автоматическое дополнение текста
                            (в режиме редактирования)
CTR+r,=,<expr>            вставить выражение, например 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                    просмотр маркеров
set viminfo=’1000,f1      маркеры пишутся в ~/.viminfo, восстанавливаясь
                            при следующем запуске vim. маркер » хранит
                            последнюю позицию курсора в файле
== Сессии ==
mksession file.session    сохранить текущую сессию
source file.session       восстановить ранее сохраненную сессию

== Макросы ==
qa                        записать макрос с именем a
q                         в режиме записи макроса: закончить запись
@a                        выполнить макрос с именем a
@@                        повторить последний макрос

== Регистры ==
«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         заменять ли табуляцию на соответствующее
                            число пробелов

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

== Поиск по всему проекту ==
:vimgrep /EXPR/ **/*.c   поиск по регулярному выражению
:copen                   показать все найденные места
:close                   скрыть все найденные места
:cn                      переход к следующему результату
:cp                      переход к предыдущему результату

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

== Работа с вкладками (a.k.a табами) ==
:tabnew [fname]          создать таб
:tabs                    вывести список табов
:tabn                    следующий таб
:tabp                    предыдущий таб
<n>gt                    перейти на таб #n
gt                       следующий таб
gT                       предыдущий таб
:tabm +1                 переместить таб вперед на одну позицию
:tabm -1                 переместить таб назад на одну позицию
:tabm 2                  переместить таб на заданную позицию
                           (нумерация начинается с нуля)

== Работа с окнами ==
: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

:set spell spelllang=ru,en       включить проверку орфографии
:set nospell                     выключить проверку орфографии
]s                               следующее слово с ошибкой
[s                               предыдущее слово с ошибкой
z=                               замена слова на альтернативу из списка
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:                         История команд
.                          Повторение последней команды

Еще одна шпаргалка / Хабр

VIM содержит сотни команд, выучить их все невозможно, да и по правде говоря «зазубривание» — дело неблагодарное. Читая различные факи и туториалы я взял за правило заносить новые для меня команды в отдельный файл, сопровождая их кратким описанием. В процессе работы с редактором я часто заглядываю в этот файл и с течением времени многие команды из него пополняют мой стандартный набор. Своим файлом-шпаргалкой я и хочу с вами поделиться.

Описания команд максимально лаконичны, часто в ущерб точности. Подробную информацию о команде можно посмотреть в документации (:help cmd). Дополнения приветствуются.

Поиск

* — поиск слова под курсором. Как и при любом другом поиске n и N позволяют перемещаться между совпадениями.
# — то же самое, но в обратном направлении.
gd — переход к локальному объявлению. Переходит к первому упоминанию слова под курсором в пределах функции, игнорируя комментарии.
gD — переход к глобальному объявлению. Аналогично gd, за исключением того, что ищется первое упоминание в пределах файла.
[[ — переход к началу функции.

Замена

%s/foo/bar/c — замена с подтверждением.
perldo s/foo/bar/g — perl регулярные выражения.

Перемещение

fx — переместить курсор на первый символ x в текущей строке.
tx — установить курсор перед символом x.
Fx, Tx — в обратном направлении.
; — повторить последнее перемещение.
`. — перейти к последней редактируемой строке.
« — перейти к последней активной строке.
% — перейти к парной скобке.

Разное

= — в визуальном режиме форматирует выделенный текст.
]p — вставка с учетом отступов.
ga — отобразить код символа под курсором в статусной строке.
xp — поменять соседние буквы местами.
J — слияние двух соседних строк.
u — в визуальном режиме переводит выделенный фрагмент в нижний регистр.
U — в верхний.
!sort — в визуальном режиме сортирует выделенный фрагмент. Подобным образом можно применить любую внешнюю команду.
di{ — удалить текст внутри активных фигурных скобок. Работает для любых других скобок и кавычек (спасибо bbbb).
da{ — то же самое вместе со скобками (спасибо paul).

В завершение альтернатива стандартной замене с подтверждением, которой я часто пользуюсь: * или / — поиск кандидата на замену, cw — удаление слова, ввод нового слова, n — переход к следующему совпадению, . — повторение предыдущей команды (замена слова).

Работа с редактором Vim/Vi — функции и команды

Быстрый старт

Итак, вам срочно понадобилось отредактировать какой-либо конфигурационный файл и под рукой нет знакомых консольных текстовых редакторов, только Vi (Vim)? Предлагаем следующий алгоритм действий, который выручит вас в данной ситуации.

Публичное облакоМасштабируемая ИТ-инфраструктура на VMwareот15.9 руб/месяцПопробовать

Открываем файл в текстовом редакторе командой vi /путь/имя_файла, например:

sudo vi /etc/netplan/99-netcfg-vmware.yaml

Команда sudo используется в том случае, если для открытия файла нужны повышенные привилегии (например, редактирование системных конфигурационных файлов). Указанный файл откроется в текстовом редакторе:

Перемещаем курсор по тексту с помощью стрелок или клавиш h (влево), l (вправо), j (вниз), k (вверх) до нужного места в тексте.

Переводим открытый файл в режим редактирования текста нажатием клавиши i (раскладка клавиатуры должна быть англоязычной). В результате в нижней части экрана появится индикация режима работы — INSERT:

Вносим в текст необходимые корректировки.

Выходим из режима редактирования нажатием клавиши Esc — индикатор INSERT в нижней части экрана должен исчезнуть.

Теперь необходимо закрыть файл, сохранив внесенные изменения. Для этого набираем:

:wq

</code>

Данный набор символов также должен отобразиться в нижней части окна. Буква <strong>w</strong> помогает сохранить файл на диск (<strong>w</strong>rite), <strong>q</strong> — завершить работу редактора (<strong>q</strong>uit):

<img src=»https://serverspace.by/wp-content/uploads/2020/06/68_3-3.png» alt=»» />

Если же что-то пошло не так и вам необходимо закрыть редактор не сохраняя изменения в файле, просто введите команду:

<code>:q!

Дальше — больше

Приведенной выше информации вполне достаточно, чтобы открывать, редактировать и сохранять файлы в текстовом редакторе Vim, однако у него есть возможности, которые могут существенно упростить и ускорить работу. Стоит начать с пояснения: Vi был одним из первых визуальных текстовых редакторов, однако начиная с определенной версии программный продукт стал доступен только под коммерческой лицензией. Энтузиасты начали разрабатывать свои аналоги этого текстового редактора, одним из которых является Vim (сокращение от Vi Improved — Vi  усовершенствованный). Vim получил широкое распространение в *nix-дистрибутивах и при запуске команды vi в консоли вероятнее всего откроется именно он.

Прежде всего нужно понять, что Vim может работать в нескольких режимах, каждый из которых обладает своими особенностями и набором поддерживаемых функций. Сразу после запуска редактора вы окажетесь в обычном режиме (normal). Здесь можно не только перемещать курсор по тексту, но и выделять/удалять/копировать/вставлять как отдельные символы, так и целые блоки текста. Эти задачи выполняются нажатием соответствующих букв и цифр (причем регистр букв имеет значение), точка отсчета — текущее положение курсора. Рассмотрим навигацию по файлу:

  • h — смещение курсора на один символ влево;
  • j — смещение курсора на один символ вниз;
  • k – смещение курсора на один символ вверх;
  • l – смещение курсора на один символ вправо;
  • w – смещение курсора в начало следующего слова в данной строке;
  • b – смещение курсора в начало предыдущего слова в данной строке;
  • G – переместить курсор в конец файла;
  • gg – вернуться в начало файла.

Действия навигации также можно совмещать с цифрами, например, комбинация 3w сместит курсор вперед на три слова, а 5k на пять строк вверх.

Часто используемые операции c текстом:

  • x — удалить символ под курсором;
  • d — удалить символы/строки;
  • dd — удалить строку целиком;
  • D — удалить символы от текущего положения курсора до конца строки;
  • v — включить режим выделения текста;
  • y — скопировать символы/строки;
  • yy — скопировать строку целиком;
  • p — вставить символы/строки;
  • u — отменить последнее действие.

Функции удаления и копирования требуют дополнительного пояснения, ведь при нажатии d или y вроде бы ничего не происходит. Дело в том, что редактор ожидает дальнейших указаний — сколько строк символов нужно удалить/скопировать и в каком направлении от текущего положения курсора вести отсчет. Чтобы удалить пять символов вправо от курсора, нужно последовательно нажать d5l, чтобы скопировать три строки, следующие после курсора — y5j. Если имеется выделенный текст, для его копирования достаточно нажать y.

Имеется в Vim и функция поиска:

  • /шаблон — все вхождения набора символов, указанного после / (слэша) будут подсвечены в тексте;
  • n — сместить курсор к следующему вхождению;
  • N — сместить курсор к предыдущему вхождению.

Другой режим работы Vim — режим редактирования. Переключиться в него можно несколькими способами:

  • i — режим вставки (INSERT), ввод начинается с позиции курсора;
  • a — режим вставки (INSERT), ввод начинается с позиции, следующей за курсором;
  • A — режим вставки (INSERT), курсор перемещается в конец текущей строки;
  • R — режим замены (REPLACE), все вводимые символы будут последовательно заменять находящиеся под курсором.

Если нужно заменить всего один символ, находящийся под курсором, достаточно нажать r и нужный символ — замена будет произведена без перехода в режим редактирования. Внизу экрана появляется соответствующий индикатор режима — INSERT или REPLACE. Вернутся в общий режим можно нажатием кнопки Esc (индикатор должен пропасть).

Еще один режим работы Vim — командный. Переход в него осуществляется из общего режима нажатием : (двоеточия). Соответствующий индикатор появляется в нижнем левом углу окна, после чего можно вводить команды и их сочетания.

  • :q — выйти из редактора;
  • :q! — выйти из редактора без сохранения изменений в файле;
  • :w — сохранить изменения в файл;
  • :wq — сохранить изменения и закрыть редактор;
  • :r имя_файла — добавить содержимое указанного файла в редактируемый;
  • :r! команда_консоли — выполнить команду и добавить ее вывод в файл.

И еще кое-что

В данной статье рассмотрены часто употребляемые функции Vim, которых на самом деле гораздо больше. Чтобы закрепить навыки работы с редактором, освежить в памяти его возможности или узнать что-то новое, набираем в консоли команду vimtutor и проходим курс обучения (vimtutor ru — если предпочтителен русский язык):

Средняя оценка: 5.0
Оценили: 1

220140
Минск
ул. Домбровская, д. 9

+375 (173) 88-72-49

700
300

ООО «ИТГЛОБАЛКОМ БЕЛ»

220140
Минск
ул. Домбровская, д. 9

+375 (173) 88-72-49

700
300

ООО «ИТГЛОБАЛКОМ БЕЛ»

700
300

Шпаргалка по Vim — GuloGulo

Режимы

Vi имеет два режима: режим вставки и режим команд. Редактор
начинает работать в командном режиме, когда происходит перемещение
курсора и удаление и копирование текста. Режим вставки начинается после
ввода команд вставки и изменения. [ESC] возвращает редактор в режим
команд (где вы можете выйти из редактора, например, напечатав :q!).
Большинство команд выполняется как только вы их напечатаете, кроме
команд с двоеточием, которые выполняются, когда вы нажмете клавишу
Enter.

Выход

Выход с сохранением изменений
:qВыход, если не было изменений
ZZВыход с сохранением изменений, если они были
:q!Выход с игнорирование изменений

Вставка текста

iВставка после курсора
IВставка перед текущей строкой
aДобавление после курсора
AДобавление после текущей строки
oОткрытие новой строки после текущей строк
OОткрытие новой строки перед текущей строкой
rЗамена одного символа
RЗамена нескольких символов

Перемещение

hПеремещение влево
jПеремещение вправо
kПеремещение вверх
lПеремещение вниз
wПеремещение к следующему слову
WПеремещение к следующему пробелу – ограничителю слова
bПеремещение к началу слова
BПеремещение к начальному пробелу – ограничителю слова
eПеремещение к концу слова
EПеремещение к конечному пробелу – ограничителю слова
(Перемещение на предложение назад
)Перемещение на предложение вперед
{Перемещение на параграф назад
}Перемещение на параграф вперед
0Перемещение На начало строки
$Перемещение на конец строки
1GПеремещение на первую строку файла
GПеремещение на последнюю строку файла
nGПеремещение на n-ю строку файла
:nПеремещение на n-ю строку файла
fcПеремещение впреред на c
FcПеремещение назад на c
HПеремещение в начало экрана
MПеремещение в конец экрана
LПеремещение to botton of screen
%Перемещение to associated ( ), { }, [ ]

Удаление текста

Шпаргалка по командам Vim — Руководства по Windows Bulletin

Работа с файлами
Команда VimЭкшен
: e имя файлаОткройте новый файл. Вы можете использовать клавишу Tab для автоматического завершения имени файла, как в командной строке оболочки.
: w имя файлаСохранить изменения в файл. Если вы не укажете имя файла, Vim сохранит имя файла, которое вы редактировали. Чтобы сохранить файл под другим именем, укажите имя файла.
:qВыйти из Vim. Если у вас есть несохраненные изменения, Vim отказывается выходить.
Вопрос!Выйдите из Vim без сохранения изменений.
: WqНапишите файл и выйдите.
😡Почти так же, как: wq, напишите файл и выйдите, если вы внесли изменения в файл. Если вы не внесли никаких изменений в файл, Vim завершает работу без записи файла.
Перемещение в файле
Эти команды и клавиши Vim работают как в командном режиме, так и в визуальном режиме.
Команда VimЭкшен
J или Стрелка вверхПереместите курсор вверх на одну строку.
k или стрелка внизВниз на одну строку.
h или стрелка влевоОставил один персонаж.
л или стрелка вправоПраво одного персонажа.
eДо конца слова.
EДо конца слова, разделенного пробелом.
bК началу слова.
BК началу слова с пробелами.
0К началу строки.
^К первому непробельному символу строки.
$До конца строки.
HК первой строке экрана.
MК средней линии экрана.
LДо последней строки экрана.
:nПерейти к номеру строки n, Например, чтобы перейти к строке 42, вы должны набрать: 42
Вставка и перезапись текста
Команда VimЭкшен
iВставить перед курсором.
IВставить в начало текущей строки.
aДобавить после курсора.
AДобавить в конец текущей строки.
oОткройте новую строку ниже и вставьте.
OОткройте новую строку выше и вставьте.
CИзмените остаток текущей строки.
rПерезаписать один символ. Перезаписав один символ, вернитесь в командный режим.
RВойдите в режим вставки, но заменяйте символы вместо вставки.
Клавиша ESCВыйдите из режима вставки / перезаписи и вернитесь в командный режим.
Удаление текста
Команда VimЭкшен
xУдалить символы под курсором.
XУдалить символы перед курсором.
дд или: дУдалить текущую строку.
Вход в визуальный режим
Команда VimЭкшен
vНачните выделять символы. Используйте обычные клавиши перемещения и команды, чтобы выбрать текст для выделения.
VНачните выделять строки.
Клавиша ESCВыйдите из визуального режима и вернитесь в командный режим.
Редактирование блоков текста
Примечание: команды Vim, отмеченные (V), работают в визуальном режиме, когда вы выбрали какой-то текст. Другие команды работают в командном режиме, когда вы не выбрали текст.
Команда VimЭкшен
~Изменить регистр символов. Это работает как в визуальном, так и в командном режиме. В визуальном режиме измените регистр выделенных символов. В командном режиме измените регистр курсора символов.
> (V)Сдвиг вправо (отступ).
<(V)Сдвиг влево (де-отступ).
резюме)Изменить выделенный текст.
у (V)Дерните выделенный текст. В терминах Windows «скопировать выделенный текст в буфер обмена».
д (V)Удалить выделенный текст. В терминах Windows «вырезать выделенный текст в буфер обмена».
уу или: у или уДерните текущую строку. Вам не нужно выделять это в первую очередь.
дд или: дУдалить текущую строку. Опять же, вам не нужно выделять это в первую очередь.
pПоместите текст, который вы дернули или удалили. В терминах Windows «вставьте содержимое буфера обмена». Поместите символы после курсора. Поместите строки ниже текущей строки.
PПоместите символы перед курсором. Поместите линии выше текущей строки.
Отменить и повторить
Команда VimЭкшен
uОтмените последнее действие.
UОтменить все последние изменения, которые были внесены в текущую строку.
Ctrl + RПовторить.
Поиск
Команда VimЭкшен
/паттернИскать файл для паттерн.
nСканирование для поиска следующего совпадения в том же направлении.
NСканирование для поиска следующего совпадения, но в обратном направлении.
Заменять
Команда VimЭкшен
:rs/Foo/бар/aЗамена Foo с бар. r определяет диапазон и a определяет аргументы.
Диапазон (r) может быть
ничегоРаботать только на текущей линии.
номерРаботайте на линии, номер которой вы даете.
%Весь файл.
Аргументы (a) может быть
gЗаменить все вхождения в строке. Без этого Vim заменяет только первые вхождения в каждой строке.
iИгнорировать регистр для шаблона поиска.
IНе игнорируйте случай.
cПодтвердите каждую замену. Вы можете ввести y, чтобы заменить это совпадение, n, чтобы пропустить это совпадение, a, чтобы заменить это и все остальные совпадения («Да для всех»), и q, чтобы выйти из замены.
Примеры
: 452s /Foo/бар/Заменить первое вхождение слова Foo с бар в строке номер 452.
: S /Foo/бар/gЗаменить каждое вхождение слова Foo с бар на текущей строке.
:% S /Foo/бар/gЗаменить каждое вхождение слова Foo с бар во всем файле.
:% S /Foo/бар/ гТо же, что и выше, но игнорируйте случай шаблона, который вы хотите заменить. Это заменяет Foo, FOO, Foo, И так далее.
:% S /Foo/бар/ дсПодтвердите каждую замену.
:% S /Foo/бар/cДля каждой строки в файле замените первое вхождение Foo с бар и подтвердить каждую замену.

Горячие клавиши vim. Шпаргалка. — MNorin.com

hВлево
lВправо
jВниз
kВверх
wВперед на первую букву слова
eВперед на последнюю букву слова
bНазад на первую букву слова
geНазад на последнюю букву слова
WТо, же, что и w, но словом считается то, что отделено пустыми символами
EТо, же, что и e, но словом считается то, что отделено пустыми символами
BТо, же, что и b, но словом считается то, что отделено пустыми символами
gEТо, же, что и ge, но словом считается то, что отделено пустыми символами
^На первый непустой символ строки
$, EndНа конец строки
0 (ноль), HomeНа начало строки
(На первую точку слева от курсора (если она есть, в противном случае на начало абзаца)
)На первую точку справа от курсора (если она есть, в противном случае на конец абзаца)
{На абзац назад до пустой строки
}На абзац вперед до пустой строки
gjНа одну экранную строку вниз. Экранная строка — это целая строка длиной меньше ширины экрана, либо часть длинной строки, разделенной на экране на несколько
gkНа одну экранную строку вверх.
f#Поиск вперед в строке символа # и установка курсора на него
F#Поиск назад в строке символа # и установка курсора на него
t#Поиск вперед в строке символа # и установка курсора после него
T#Поиск назад в строке символа # и установка курсора после него
;Повтор поиска вперед символа, найденного при помощи f/t/F/T
,Повтор поиска назад символа, найденного при помощи f/t/F/T
%Перемещение курсора на скобку, парную той, на которой находится курсор. Парные символы можно задать при помощи команды :set matchpairs
:#Перемещение курсора на строку #
#GПеремещение курсора на строку #, аналогично :#
ggПеремещение курсора в начало
GПеремещение курсора в конец
#%Перемещение курсора на # процентов от начала
HПеремещение курсора на начало видимой части текста
MПеремещение курсора на середину видимой части текста
LПеремещение курсора на конец видимой части текста
Control+uНа полэкрана вверх
Control+dНа полэкрана вниз
Control+yНа одну строку вверх. Курсор при этом не перемещается
Control+eНа одну строку вниз. Курсор при этом не перемещается
Control+bНа один экран минус 2 строки вверх
Control+fНа одну экран минус 2 строки вниз
ztПрокрутка текста так, чтобы курсор оказался вверху экрана
zzПрокрутка текста так, чтобы курсор оказался в середине экрана
zbПрокрутка текста так, чтобы курсор оказался внизу экрана

100 команд vim, которые должен знать каждый: scabere — LiveJournal

Вариант 2

This replaces the beginning of each line with «//»:

:%s!^!//!

This replaces the beginning of each selected line (use visual mode to select) with «//»:

:'<,'>s!^!//! 


What if you’ve forgot to give sudo when you’ve opened the /etc/group file as shown below? In this case, instead of coming out of the file (and loosing all your changes) and executing the vim command with sudo, you can do the following.


$ vim /etc/group

:w !sudo tee %


Note: “:w !sudo tee %” will save the file as root privilege, even if you didn’t use sudo command to open it.

Использование стиля “подсветил — посмотрел — выполнил” совместно с визуальным режимом оказалось очень удобной практикой. Такое комбинирование стилей выделения используется при решении задач типа “в данной функции переименовать переменную foo в bar” и подобных. Такая (и подобные) задачи решаются последовательностью действий:

  • Подсвечиваем foo командой *
  • Переходим в режим визуального выделения и выделяем текущую функцию
  • Отдаем команду замены :’<,’>s//bar/g

Символы ’, означающие начало и конец текущего выделенного блока, и определяющие диапазон применения команды :s, Vim подставляет автоматически при отдаче любой команды из режима визуального выделения. Также опущен первый аргумент команды :s, т. к. набирать его нет необходимости — когда он опущен, Vim использует в качестве этого аргумента содержимое регистра текущего поиска. То есть именно то, что подсвечено желтым.

:g//t$ — скопировать строки, содержащие подсвеченное значение, в конец файла. Если, например, надо быстро понять, как глобальная переменная (sic! — а что делать, в legacy-коде они встречаются) используется в модуле.

:g//d — удалить строки, содержащие подсвеченное значение
:g!//d — удалить стрки, НЕ содержащие подсвеченного значения

Заменить каждое вхождение нескольких пустых строк на одну пустую строку (чтобы между параграфами стал одинаковый промежуток в одну линию):
:v/./,/./-j

Убрать пустые строки (в визуальном режиме)
:'<,’>g/^$/d

Раздвинуть подряд идущие строки (обратное предыдущему действие, каждая строка станет параграфом)
Нужно при форматировании текста под 76 символов, из формата, как его сохраняет Word, когда каждый абзац становится строкой в текстовом файле.
:'<,’>s/$/\r/g

быстро вставить текст при включенном autoindent (set ai)  — борьба с «лесенкой»

:r !cat

http://habrahabr.ru/blogs/vim/131951/

http://www.brezeale.com/technical_notes/vim_notes.shtml

Шпаргалка по Vim

Глобальный

  • : h [elp] keyword — открыть справку по ключевому слову
  • : sav [eas] file — сохранить файл как
  • : clo [se] — закрыть текущую панель
  • : ter [minal] — открыть окно терминала
  • K — открывать справочную страницу по слову под курсором

Совет Запустите vimtutor в терминале, чтобы узнать первые команды Vim.

Движение курсора

  • ч — переместить курсор влево
  • j — переместить курсор вниз
  • k — переместить курсор вверх
  • л — переместить курсор вправо
  • H — перейти в верхнюю часть экрана
  • M — перейти в середину экрана
  • L — перейти в нижнюю часть экрана
  • w — переход вперед к началу слова
  • W — переход вперед к началу слова (слова могут содержать знаки препинания)
  • e — перейти вперед до конца слова
  • E — переход вперед до конца слова (слова могут содержать знаки препинания)
  • b — переход назад к началу слова
  • B — перейти назад к началу слова (слова могут содержать знаки препинания)
  • % — перейти к соответствующему символу (поддерживаемые по умолчанию пары: ‘()’, ‘{}’, ‘[]’ — используйте : h matchpairs в vim для получения дополнительной информации)
  • 0 — перейти в начало строки
  • ^ — перейти к первому непустому символу строки
  • $ — перейти в конец строки
  • g_ — перейти к последнему непустому символу строки
  • gg — перейти к первой строке документа
  • G — перейти к последней строке документа
  • 5gg или 5G — перейти к строке 5
  • fx — перейти к следующему вхождению символа x
  • tx — перейти к следующему появлению символа x
  • Fx — перейти к предыдущему появлению символа x
  • Tx — перейти после предыдущего появления символа x
  • ; — повторить предыдущее движение f, t, F или T.
  • , — повторить предыдущее движение f, t, F или T, назад
  • } — перейти к следующему абзацу (или функции / блоку при редактировании кода)
  • { — перейти к предыдущему абзацу (или функции / блоку при редактировании кода)
  • zz — центральный курсор на экране
  • Ctrl + e — перемещение экрана на одну строку вниз (без перемещения курсора)
  • Ctrl + y — перемещение экрана на одну строку вверх (без перемещения курсора)
  • Ctrl + b — вернуться на один полный экран
  • Ctrl + f — перейти на один полный экран вперед
  • Ctrl + d — двигаться вперед на 1/2 экрана
  • Ctrl + u — вернуться на 1/2 экрана

Совет
Приставьте к команде перемещения курсора номер, чтобы повторить ее.Например, 4j перемещается на 4 строки вниз.

Режим вставки — вставка / добавление текста

  • i — вставить перед курсором
  • I — вставить в начало строки
  • a — вставить (добавить) после курсора
  • A — вставить (добавить) в конец строки
  • o — добавить (открыть) новую строку ниже текущей строки
  • O — добавить (открыть) новую строку над текущей строкой
  • ea — вставить (добавить) в конец слова
  • Ctrl + h — удалить символ перед курсором в режиме вставки
  • Ctrl + w — удалить слово перед курсором в режиме вставки
  • Ctrl + j — начать новую строку в режиме вставки
  • Ctrl + t — отступ (перемещение вправо) строки на ширину сдвига в режиме вставки
  • Ctrl + d — убрать отступ (сдвинуть влево) строки на ширину сдвига в режиме вставки
  • Ctrl + n — вставить (автозаполнение) следующее совпадение перед курсором в режиме вставки
  • Ctrl + p — вставить (автозаполнение) предыдущее совпадение перед курсором в режиме вставки
  • Ctrl + rx — вставить содержимое регистра x
  • Esc — выйти из режима вставки

Монтаж

  • r — заменить один символ
  • J — присоединить строку ниже к текущей с одним пробелом между ними
  • gJ — присоединить строку ниже к текущей без пробелов между ними
  • gwip — переформатировать абзац
  • г ~ — корпус переключателя до движения
  • gu — переход на строчные буквы до движения
  • gU — переход на верхний регистр до движения
  • cc — заменить (заменить) всю строку
  • C — заменить (заменить) до конца строки
  • c $ — поменять (заменить) до конца строки
  • ciw — заменить (заменить) слово целиком
  • cw — заменить (заменить) до конца слова
  • с — удалить символ и заменить текст
  • S — удалить строку и заменить текст (аналогично cc)
  • xp — транспонировать две буквы (удалить и вставить)
  • u — отменить
  • U — восстановить (отменить) последнюю измененную строку
  • Ctrl + r — повторить
  • . — повторить последнюю команду

Текст маркировки (визуальный режим)

  • v — запустить визуальный режим, отметить строки, затем выполнить команду (например, y-yank)
  • В — запустить линейный визуальный режим
  • o — перейти на другой конец отмеченной области
  • Ctrl + v — запустить режим визуального блока
  • O — перейти в другой угол блока
  • aw — отметить слово
  • ab — блок с ()
  • аБ — блок с {}
  • at — блок с тегами <>
  • ib — внутренний блок с ()
  • iB — внутренний блок с {}
  • it — внутренний блок с тегами <>
  • Esc — выйти из визуального режима

Наконечник Вместо b или B можно также использовать ( или { соответственно.

Визуальные команды

  • > — сдвинуть текст вправо
  • < - сдвинуть текст влево
  • y - копировать выделенный текст
  • d - удалить выделенный текст
  • ~ - корпус переключателя
  • u - заменить выделенный текст на строчные
  • U - заменить выделенный текст на верхний регистр

Регистры

  • : reg [isters] - показать содержимое регистров
  • "xy - копирование в регистр x
  • "xp - вставить содержимое регистра x
  • "+ y - копировать в регистр системного буфера обмена
  • "+ p - вставить из реестра системного буфера обмена

Совет Регистры хранятся в ~ /.viminfo и будет загружен снова при следующем перезапуске vim.

Наконечник Специальные регистры:

0 - последнее восстановление
" - безымянный регистр, последнее удаление или восстановление
% - текущее имя файла
# - альтернативное имя файла
* - содержимое буфера обмена (первичный X11)
+ - содержимое буфера обмена (буфер обмена X11)
/ - последний шаблон поиска
: - последняя командная строка
. - последний вставленный текст
- - последний маленький (меньше строки) удалить
= - регистр выражения
_ - регистр черной дыры

Марки и позиции

  • : знаки - перечень знаков
  • ma - установить текущее положение для метки A
  • ʻa - перейти в позицию отметки A
  • y`a - перенести текст на позицию метки A
  • `0 - перейти в позицию, из которой ранее был закрыт Vim
  • `" - перейти на позицию последнего редактирования этого файла
  • `. - перейти на позицию последнего изменения в этом файле
  • " - перейти на позицию перед последним прыжком
  • : ju [mps] - список прыжков
  • Ctrl + i - перейти на новую позицию в списке переходов
  • Ctrl + o - перейти к предыдущей позиции в списке переходов
  • : изменения - список изменений
  • г, - перейти на новую позицию в списке изменений
  • г; - перейти к предыдущей позиции в списке изменений
  • Ctrl + ] - перейти к тегу под курсором

Совет Чтобы перейти к отметке, вы можете использовать обратную кавычку ( `) или апостроф ( ').Использование апострофа позволяет перейти к началу (первому не черному цвету) строки, содержащей знак.

.

Отличная шпаргалка по Vim

Отличная шпаргалка по Vim

Примечание. Если вы неплохо разбираетесь в Vim и хотите, чтобы у вас взорвался мозг, попробуйте Advanced Vim.

Я составил список из основных команд Vim, которые я использую каждый день. Затем я дал несколько инструкций о том, как сделать Vim таким замечательным, каким он должен быть, потому что без конфигурации это болезненно.

Перемещение курсора (внутри команды / нормальный режим)

  • w - переход по началу слова (с учетом знаков препинания)
  • W - переход по словам (слова разделяются пробелами)
  • e - переход к концу слова (с учетом знаков препинания)
  • E - переход к концу слова (без знаков препинания)
  • b - переход назад по словам (с учетом знаков препинания)
  • B - переход назад по словам (без знаков препинания)
  • 0 - (ноль) начало строки
  • ^ - первый непустой символ строки (аналог 0w)
  • $ - конец строки
  • Advanced (в порядке наиболее полезного)
    • Ctrl + d - перейти на полстраницы вниз
    • Ctrl + u - перейти на полстраницы вверх
    • } - перейти вперед по абзацу (следующая пустая строка)
    • { - вернуться на абзац (следующая пустая строка)
    • gg - в начало страницы
    • G - внизу страницы
    • : [число] [ввод] - Перейти к этой строке в документе
    • Ищу
      • f [char] - Перейти к следующему символу в текущей строке после курсора
      • F [char] - Перейти к следующему символу в текущей строке перед курсором
      • t [char] - Перейти до следующего символа в текущей строке после курсора
      • T [char] - Перейти к следующему символу в текущей строке перед курсором
      • За всеми этими командами может следовать ; (точка с запятой) для перехода к следующему элементу поиска и , (запятая) для перехода к предыдущему элементу поиска

Вставка / добавление / редактирование текста

  • Результаты в режиме вставки
    • i - запустить режим вставки на курсоре
    • I - вставить в начало строки
    • a - добавить после курсора
    • A - добавить в конец строки
    • o - открыть (добавить) пустую строку под текущей строкой (нажимать возврат не нужно)
    • O - открытая пустая строка над текущей строкой
    • cc - заменить (заменить) всю строку
    • c [команда перемещения] - изменить (заменить) курсор на точку перехода.
    • отл. ce изменяется от курсора до конца курсорного слова
  • Esc или Ctrl + [ - выйти из режима вставки
  • r [char] - заменить один символ указанным char (не использует режим вставки)
  • d - удалить
    • d - [команда перемещения] удаляется от курсора до точки перехода.
    • отл. де удаляет от курсора до конца текущего слова
  • dd - удалить текущую строку
  • Продвинутый
    • J - присоединить строку ниже к текущей

Маркировка текста (визуальный режим)

  • v - запускает визуальный режим
    • Отсюда вы можете перемещаться как в обычном режиме ( h , j , k , l и т. Д.), а затем может выполнить команду (например, y , d или c )
  • В - запускает линейный визуальный режим
  • Ctrl + v - запустить режим визуального блока
  • Esc или Ctrl + [ - выйти из визуального режима
  • Продвинутый
    • O - перейти в другой угол блока
    • o - перейти на другой конец отмеченной области

Визуальные команды

Введите любой из них, пока выделен текст, чтобы применить действие

  • y - копировать (копировать) выделенный текст
  • d - удалить выделенный текст
  • c - удалить выделенный текст и перейти в режим вставки (как c выше)

Вырезать и вставить

  • yy - копировать (копировать) строку
  • p - поставить (вставить) буфер обмена после курсора
  • P - поставить (вставить) перед курсором
  • dd - удалить (вырезать) строку
  • x - удалить (вырезать) текущий символ
  • X - удалить предыдущий символ (например, backspace)

Выход

  • : w - записать (сохранить) файл, но не выйти из
  • : wq - запись (сохранение) и выход из
  • : q - выйти (не работает, если что-то изменилось)
  • : д! - выйти и выбросить изменения

Найти / заменить

  • / выкройка - поиск выкройки
  • ? Шаблон - поиск шаблона
  • назад

  • n - повторить поиск в том же направлении
  • N - повторить поиск в обратном направлении
  • :% s / old / new / g - заменить все старое на новое во всем файле (хотя лучше gn)
  • :% s / old / new / gc - заменить все старое на новое во всем файле с подтверждениями

Работа с несколькими файлами

  • : e filename - Редактировать файл
  • : tabe - Создать новую вкладку
  • gt - Перейти на следующую вкладку
  • gT - Перейти на предыдущую вкладку
  • Продвинутый
    • : vsp - окна с вертикальным разделением
    • ctrl + ws - Разделить окна по горизонтали
    • ctrl + wv - Разделить окна по вертикали
    • ctrl + ww - переключение между окнами
    • ctrl + wq - закрыть окно

Марки

Знаки

позволяют переходить к обозначенным точкам в коде.

  • m {a-z} - Установить метку {a-z} на позицию курсора
  • Заглавная метка {A-Z} устанавливает глобальную метку и будет работать между файлами.
  • ‘{a-z} - переместить курсор в начало строки, на которой была поставлена ​​отметка
  • ‘’ - вернуться к предыдущему месту перехода

Общие

  • u - отменить
  • Ctrl + r - повторить
  • . - повторить последнюю команду

Vim из коробки довольно неприятен.Например, набирать : w для каждого сохранения файла неудобно, а копирование и вставка в системный буфер обмена не работает. Однако несколько изменений сделают вас намного ближе к редактору вашей мечты.

.vimrc

  • В моем файле .vimrc есть несколько замечательных идей, которых я больше нигде не встречал.
  • Это минимальный vimrc, который фокусируется на трех приоритетах:
    • добавление параметров, которые строго лучше (например, больше информации отображается в автозаполнении)
    • более удобные нажатия клавиш (например, [пробел] w для записи, вместо : w [ввод] )
    • рабочий процесс, аналогичный обычным текстовым редакторам (например, включение мыши)

Установка

  • Скопируйте это в свой домашний каталог и перезапустите Vim.Прочтите его, чтобы узнать, что вы можете теперь сделать (например, [пробел] w для сохранения файла)
    • Пользователи Mac - создание скрытого обычного файла на удивление непросто. Вот один способ:
      • в командной строке перейти в домашний каталог
      • тип нано .vimrc
      • вставьте содержимое файла .vimrc
      • ctrl + x , y , [ввод] для сохранения
  • Теперь вы можете нажать [пробел] w в обычном режиме, чтобы сохранить файл.
  • [пробел] p следует вставить из системного буфера обмена (вне Vim).
    • Если вы не можете вставить, вероятно, потому, что Vim не был построен с опцией системного буфера обмена. Чтобы проверить, запустите vim --version и посмотрите, существует ли + буфер обмена . Если там написано -clipboard , вы не сможете копировать извне Vim.
    • Для пользователей Mac: homebrew устанавливает Vim с опцией буфера обмена. Установите homebrew, а затем запустите brew install vim .
      • затем переместите старый двоичный файл Vim: $ mv / usr / bin / vim / usr / bin / vimold
      • перезагрузите терминал, и вы должны увидеть vim --version теперь с + буфер обмена

Плагины

  • Самый простой способ сделать Vim более мощным - использовать Vintageous в Sublime Text (версия 3). Это дает вам режим Vim внутри Sublime. Я предлагаю эту (или аналогичную настройку с редактором Atom), если вы не являетесь мастером Vim.Проверьте Advanced Vim, если да.
  • Vintageous великолепен, но я предлагаю вам изменить несколько настроек, чтобы сделать его лучше.
    • Клонируйте этот репозиторий в ~ / .config / sublime-text-3 / Packages / Vintageous или аналогичный. Тогда загляните в ветку «custom».
      • Кроме того, вы можете получить более обновленную версию Vintageous, клонировав официальный репозиторий, а затем скопировав этот патч.
    • Измените пользовательские настройки ( Пользователь / Предпочтения.sublime-settings ), чтобы включить:
      • "caret_style": "твердый"
      • Это заставит курсор не мигать, как в Vim.
      • Sublime Text может зависнуть, когда вы это сделаете. Это ошибка; просто перезапустите Sublime Text после изменения файла.
    • ctrl + r в Vim означает «повторить». Но в Sublime Text есть удобное сочетание клавиш Ctrl + R, которое дает «контур» файла. Я переназначил его на alt + r, поместив это в пользовательскую раскладку
      • {"keys": ["alt + r"], "command": "show_overlay", "args": {"overlay": "goto", "text": "@"}},
    • Добавлена ​​возможность включения и выключения Vintageous
    • Пользователи Mac: у вас не будет возможности удерживать клавишу навигации (например, удерживать j для перехода вниз).Чтобы исправить это, выполните указанные здесь команды: https://gist.github.com/kconragan/2510186
  • Теперь вы сможете перезапустить Sublime и получить отличную среду Vim! Милый чувак.

Переключатель Caps Lock and Escape

  • Я настоятельно рекомендую вам переключить отображение клавиш Caps Lock и Escape. Вам понравится, обещаю! Переключение двух клавиш зависит от платформы; Google должен дать вам ответ.

Прочее

Я лично пока не использую их, но слышал, что это делают другие!

.

Научитесь использовать Vim как профессионал

Краткое знакомство с Vim

Vi - это модальный текстовый редактор, впервые выпущенный в 1976 году для систем Unix. Vim, преемник Vi (Vi Improved), был впервые выпущен в 1991 году. Несмотря на свой очень старый возраст, Vim чрезвычайно популярен среди веб-разработчиков и системных администраторов, поскольку он устанавливается по умолчанию во всех системах на основе Unix (дистрибутивы Mac OS и Linux. В отличие от классических текстовых редакторов, Vim имеет разные режимы, используемые для разных операций. Vim имеет в общей сложности 12 режимов, хотя в основном вы будете использовать следующие:

  • Режим вставки: Этот режим используется для вставки текста путем ввода, как и в любом другом текстовом редакторе.Чтобы войти в режим вставки, введите i в командном режиме.
  • Командный режим: Также называется Нормальный режим , этот режим используется для ввода команд Vim, подобных тем, которые вы найдете в нашей шпаргалке по Vim. Чтобы выйти из режима вставки и войти в командный режим, нажмите клавишу Esc на клавиатуре.
  • Визуальный режим: Аналогичен командному режиму, но используется для выделения областей текста. Обычные команды запускаются в выделенной области, которую, например, можно использовать для перемещения или редактирования выделения.Нажмите кнопку v , чтобы перейти в визуальный режим. Чтобы выйти из визуального режима, нажмите клавишу Esc .

Основы

Начнем с основных команд, которые позволят вам записывать, сохранять и закрывать файлы. Помните, что эти команды Vim нужно вводить в командном или визуальном режиме. Выйдите из режима вставки, нажав клавишу Esc, а затем введите нужную команду.

: e filename Открыть filename для выпуска
: w Сохранить файл
: q Выйти из Vim
: q! Выйти без сохранения текущего файла
: x Записать / сохранить файл (если были внесены изменения) и выйти из
: sav filename Сохранить текущий файл как filename
. Повторить последнее изменение, сделанное в нормальном режиме
5. Повторить 5 раз последнее изменение, сделанное в нормальном режиме

Перемещение в файл

В Vim есть мощные команды, которые позволяют легко перемещать курсор в любое желаемое место в текущем файле, что позволяет быстро и легко вставлять текст.

k или Стрелка вверх переместить курсор на одну строку вверх
j или Стрелка вниз переместить курсор на одну строку вниз
e переместить курсор в конец слова
b переместить курсор в начало слова
0 переместить курсор к первому непустому символу строки
G переместить курсор в конец файла
gg переместить курсор в начало файла
L переместить курсор в нижнюю часть экрана
: 59 переместить курсор в строку 59 .Замените 59 нужным номером строки.
% Переместите курсор к соответствующей скобке
[[ Перейти к началу функции
[{ Перейти к началу блока

Вырезать, скопировать и вставить

Vim предлагает мощные функции для вырезания, копирования и вставки. Этот раздел нашей шпаргалки по Vim покажет вам, как легко выполнять эти операции.
Обратите внимание, что y означает yank в Vim, который в других редакторах обычно называется копией.

y Янкинг / Копирование выделенного текста в буфер обмена
p Вставить содержимое буфера обмена
dd Вырезать текущую строку
yw Янк / Копировать слово
yy Yank / Копировать текущую строку
y $ Yank / Копировать в конец строки
D Перейти к концу строки

Искать

Поиск строки в огромном файле или нескольких файлах может быть сложным.Благодаря Vim, используя несколько команд, вы можете легко найти то, что ищете.

/ слово Поиск слово сверху вниз
? Слово Поиск слово снизу вверх
* Поиск слова под курсором
/ \ cstring Search STRING или string , без учета регистра
/ jo [ha] n Search john or joan
/ \ Search the, Theater or затем
/ \> Поиск или дышать
/ \ Поиск
/ \ <¦.\ n \ {3} Найти 3 пустые строки
: bufdo / searchstr / Искать в нескольких файлах
bufdo% s / something / somethingelse / g Искать something во всем открытом буферы и замените его на что-нибудь другое

Замените

Подобно Search , Vim предлагает мощные команды для замены любого заданного текста. Эта часть нашей шпаргалки содержит команды Vim для замены любой части текста другим.

:% s / old / new / g Заменить все вхождения старого на нового в файле
:% s / onward / forward / gi Заменить вперед на вперед, без учета регистра
:% s / old / new / gc Заменить все вхождения подтверждением
: 2,35s / old / new / g Заменить все вхождения между строками 2 и 35
: 5 , $ s / old / new / g Заменить все вхождения со строки 5 на EOF
:% s / ^ / hello / g Заменить начало каждой строки на hello
:% s / $ / Harry / g Замените конец каждой строки на Harry
:% s / onward / forward / gi Замените вперед на вперед , без учета регистра
x Удалить символ
:% s / * $ // g De удалите все пробелы и оставьте любой непустой символ
: g / string / d Удалите все строки, содержащие строку
: v / string / d Удалить все строки, не содержащие строка
: s / Bill / Steve / Заменить первое вхождение Bill на Steve в текущей строке
: s / Bill / Steve / g Заменить Bill на Steve в текущей строке
:% s / Bill / Steve / g Заменить Bill на Steve во всем файле
:% s / ^ M // g Удалить символы возврата каретки DOS (^ M)
:% s / \ r / \ r / g Преобразование возврата каретки DOS в возврате
:% s # <[^>] \ +> ## g Удалить HTML теги, но сохраните текст
:% s / ^ \ (.* \) \ n \ 1 $ / \ 1/ Удалить строки, которые появляются дважды
Ctrl + a Увеличить номер под курсором
Ctrl + x Уменьшить номер под курсором
ggVGg? Изменить текст на Rot13

Case

Vim предоставляет очень интересные команды для работы с кейсом. Давайте продолжим изучать нашу шпаргалку по Vim с очень полезными командами, относящимися к регистру.

Vu Строка нижнего регистра
VU Строка верхнего регистра
g ~~ Инвертировать регистр
vEU Перевести слово в верхний регистр
vE ~ Изменить слово case
ggguG Установить весь текст в нижний регистр
gggUG Установить весь текст в верхний регистр
: установить ignorecase Игнорировать регистр при поиске
: установить smartcase Игнорировать регистр в поиск, кроме случаев использования прописной буквы
:% s / \ <./ \ u & / g Устанавливает первую букву каждого слова в верхний регистр
:% s / \ <./ \ l & / g Устанавливает первый непустой символ каждого слова в нижний регистр
:% s /.*/ \ u & Устанавливает первый символ строки в верхний регистр
:% s /.*/ \ l & Устанавливает первый символ строки в нижний регистр

Чтение и записывать файлы

Vim позволяет легко манипулировать файлами.Ниже перечислены несколько примеров работы с файлами с помощью Vim.

: 1,10 w Outfile Сохранить строки от 1 до 10 в Outfile
: 1,10 w >> Outfile Строки с 1 по 10 в приложении Outfile
: r infile Вставить содержимое infile
: 23r infile Вставить содержимое infile под строкой 23

Проводник

Vim имеет встроенный файловый менеджер, который позволяет пользователям быстро визуализировать и открывать файлы в редакторе.

: e. Открыть интегрированный файловый проводник
: Sex Разделить окно и открыть интегрированный файловый проводник
: Sex! То же, что и : Sex , но разделяет окно по вертикали
: просмотреть e Графический проводник файлов
: ls Список буферов
: cd .. Перейти в родительский каталог
: args Файлы списка
: args *.php Открыть список файлов
: grep expression * .php Вернуть список файлов .php, содержащих выражение
gf Открыть имя файла под курсором

Взаимодействие с Unix

Поскольку Vi и Vim изначально были созданы для систем Unix, текстовый редактор может взаимодействовать с ОС.

:! Pwd Выполнить команду pwd Unix, затем вернуться в Vi
!! pwd Выполнить команду pwd unix и вставить вывод в файл
: sh Временный возврат в Unix
$ exit Возврат в Vi

Выравнивание

Используя Vim, можно автоматически выравнивать строки с помощью нескольких простых команд.Вот основные важные из них:

:%! Fmt Выровнять все линии
!} Fmt Выровнять все строки по текущему положению
5 !! fmt Выровнять следующие 5 линии

Вкладки и Windows

Vim может использовать различные вкладки и окна, что очень полезно для работы сразу со многими файлами.

: tabnew Создать / открыть новую вкладку
gt Показать следующую вкладку
: tabfirst Показать первую вкладку
: tablast Показать последнюю вкладку
: tabm n (позиция) Изменить порядок вкладок
: tabdo% s / foo / bar / g Выполнить команду на всех вкладках
: tab ball Помещает все открытые файлы на вкладки (каждый в новая вкладка)
: новый abc.txt Редактировать abc.txt в новом окне

Разделение окна

Как веб-разработчик, мне всегда нравится разделять редактор Vim на две части: одну для моего HTML и одну для моей таблицы стилей CSS. Эта часть нашей шпаргалки по Vim описывает, как разделить главное окно редактора.

: e имя файла Изменить имя файла в текущем окне
: разделить имя файла Разделить окно и открыть имя файла
ctrl-w стрелка вверх Поместить курсор в верхнее окно
ctrl-w ctrl-w Поместить курсор в следующее окно
ctrl-w_ Развернуть текущее окно по вертикали
ctrl-w | Развернуть текущее окно по горизонтали
ctrl-w = Дает одинаковый размер всем окнам
10 ctrl-w + Добавить 10 строк в текущее окно
: vsplit file Разделить окно по вертикали
: файл sview То же, что и : разделить в режиме только для чтения
: скрыть Закрыть текущее окно
: только Закрыть все окна, кроме текущего
: b 2 Открыть # 2 в этом окне

Автозавершение

Как и многие другие современные редакторы, Vim может автоматически дополнять ваш код и использовать словари.

Ctrl + N Ctrl + P (в режиме вставки) Полное слово
Ctrl + x Ctrl + l Полная строка
: установить словарь = dict Определить dict как словарь
Ctrl + x Ctrl + k В комплекте со словарем

Маркеры

Vim позволяет пользователям устанавливать метки в любом месте по своему выбору, чтобы они могли легко вернуться в это заранее определенное положение.Обязательно при работе с большими файлами.

м {az} Отмечает текущее положение как {az}
'{az} Переместить в положение {az}
Перейти к предыдущему положению

Сокращения

Еще одна удобная функция Vim - это возможность определять сокращения.

: ab mail [email protected] Определите mail как сокращение от mail @ provider.org

Отступ текста

Отступы - это ключ к читаемому и простому в поддержке коду. В Vim есть несколько команд, которые пригодятся для создания отступов в любом файле.

: установить автоотступ Включить автоотступ
: установить smartindent Включить интеллектуальный автоматический отступ
: установить ширину сдвига = 4 Определить 4 пробела как размер отступа
ctrl-t, ctrl-d Отступ / снятие отступа в режиме вставки
>> Отступ
<< Убрать отступ
=% Отступить код между скобками
1GVG = Отступ для всего файла

Подсветка синтаксиса

Подсветка синтаксиса часто очень полезна для предотвращения ошибок и опечаток в коде.Vim может работать с множеством различных режимов подсветки синтаксиса, в зависимости от того, на каком языке программирования вы кодируете.

: синтаксис включен Включить подсветку синтаксиса
: синтаксис выключен Отключить подсветку синтаксиса
: установить синтаксис = perl Принудительно выделить синтаксис

.

Графическая шпаргалка и руководство по vi-vim

Изучить vi или vim непросто. Но это не должно быть так сложно. Это в любом случае быстрее,
более мощный и более производительный, чем редактирование с помощью любого другого редактора, поэтому вам стоит вложить
время и усилия, чтобы научиться этому.

Поскольку я сам любитель vi, мне пришла в голову идея предоставить графическую шпаргалку для тех, кто изучает vi или vim,
и я также обнаружил, что это очень хороший способ структурировать учебник.Вот результаты для вашего удовольствия от обучения
(или ваших коллег).

Кстати, недавно я опубликовал исчерпывающую статью, объясняющую, почему редактирование vi / vim намного лучше
чем обычное редактирование. Он должен оказаться полезным, если вы хотите прочитать его сами или хотите указать на
скептически настроенные друзья к описанию того, почему это имеет смысл, помимо развлекательного чтения:
Почему, ну почему, эти #? @! чокнутые используют vi ?.

Графическая шпаргалка

Это отдельная страница, описывающая полную модель ввода vi / vim, функции всех клавиш и все основные
функции.Вы можете увидеть это как сжатое руководство по vi / vim. Нажмите на изображение ниже, чтобы получить доступ к полноразмерному растровому изображению,
или загрузите векторную масштабируемую версию SVG
(сжато в zip-архиве - обязательно просмотрите &
распечатать SVG с помощью приложения с открытым исходным кодом Inkscape или подключаемого модуля Adobe для
Internet Explorer, Firefox по какой-то причине ломает макет, кроме рендеринга без сглаживания!).

Учебное пособие на основе графической шпаргалки

Учебное пособие, приведенное выше, состоит из 7 уроков, в которых рассматриваются основные команды vi / vim.Oни
структурированы таким образом, что вы сначала изучите самые простые и полезные, а затем - более сложные.
Собственно, используя только команды, показанные в уроке 1, вы уже можете начать редактирование в vi / vim аналогично
как в обычном редакторе.
Урок 2 знакомит с очень мощными и эксклюзивными для vi / vim операторами , а остальные
оттуда уроки продвигаются вперед. Каждый эскиз ссылается на версию растрового изображения с высоким разрешением. Вы также можете скачать
полный учебник в
один zip-файл со всеми растровыми изображениями или
один zip-файл со всеми SVG
(см. примечание выше о неправильном рендеринге в Firefox).

Банкноты

vim - невероятный редактор Брэма Мооленаара, основанный на
оригинальный vi Билла Джоя, добавив к нему массу улучшений.
В настоящее время вы должны каждый раз выбирать vim вместо vi.

Шпаргалка и учебное пособие охватывают наиболее важные функции модели ввода vi, не считая дополнительных
расширенные регулярные выражения / материал командной строки ex. Это должно быть очень хорошее начало для того, чтобы стать
мастер vi / vim.

За единственным исключением функции внешнего фильтра ("!"), Все показанные функции поддерживаются ViEmu,
моя коммерческая надстройка, которая обеспечивает расширенную эмуляцию vi-vim в Visual Studio.

Соответствующие ссылки

Эта шпаргалка оказалась довольно популярной. Вот несколько соответствующих ссылок:

И, конечно же, статья о том, почему редактирование vi / vim является «самым убийственным»:

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *