Разное

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

Содержание

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

Файл настройки: ~/.vimrc
Можно редактировать файлы через сеть, например
:e ://[email protected]/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 не будет опубликован. Обязательные поля помечены *