Skip to content

Instantly share code, notes, and snippets.

@ap-Codkelden
Last active July 11, 2018 18:54
Show Gist options
  • Save ap-Codkelden/031baf02307988586f1d to your computer and use it in GitHub Desktop.
Save ap-Codkelden/031baf02307988586f1d to your computer and use it in GitHub Desktop.
100 vim commands
\documentclass[9pt, notumble]{leaflet}
\usepackage{amssymb}
\usepackage[T1]{fontenc}
\usepackage[russian]{babel}
\usepackage[useregional]{datetime2}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{stix}
\usepackage{textcomp}
\usepackage[unicode=true,colorlinks=true]{hyperref}
% для клавиш, решение с http://tex.stackexchange.com/a/16981/28759
\usepackage{tikz}
\usetikzlibrary{shadows}
% клавиши
\newcommand*\keystroke[1]{%
\tikz[baseline=(key.base)]
\node[%
draw,
fill=white,
drop shadow={shadow xshift=0.25ex,shadow yshift=-0.25ex,fill=black,opacity=0.75},
rectangle,
rounded corners=2pt,
inner sep=1pt,
line width=0.5pt,
font=\scriptsize\sffamily
](key) {#1\strut}
;
}
%% Leaflet options
\CutLine*{1}
\CutLine*{6}
\setmargins{7mm}{7mm}{5mm}{5mm}
\date{Обновлено~\DTMdisplaydate{2016}{2}{23}{-1}} %% \\напечатано \today}
\title{100 команд vim, которые должен знать каждый\footnote{С незначительными
изменениями по \href{http://scabere.livejournal.com/62886.html}{материалам}
(там же приведены ссылки на остальные источники).}}
\sloppy
\begin{document}
\maketitle
\section{Поиск}
\begin{tabular}{p{2.3cm}p{5.5cm}}
\texttt{/\textsl{word}} & Искать слово \texttt{\textsl{word}} сверху вниз\\
\texttt{?\textsl{word}} & Искать слово \texttt{\textsl{word}} снизу вверх\\
\texttt{/jo[ha]n\textgreater} & Искать \texttt{john} или \texttt{joan}\\
\texttt{/\textbackslash\textless \textsl{the}} & Искать слова, начинающееся на \texttt{\textsl{the}}\\
\texttt{/\textsl{the}\textbackslash\textless} & Искать слова, заканчивающиеся на \texttt{\textsl{the}}\\
\texttt{/\textbackslash\textless \textsl{the}\textbackslash\textgreater} & Искать \texttt{\textsl{the}} (точное соответствие)\\
\texttt{/\textbackslash\textless....\textbackslash\textgreater} & Искать слова из четырех символов\\
\texttt{/\textsl{fred}\textbackslash\textbar \textsl{joe}} & Искать \texttt{\textsl{fred}} или \texttt{\textsl{joe}}\\
\texttt{/\textbackslash\textless\textbackslash d\textbackslash d\textbackslash d\textbackslash d\textbackslash\textgreater} & Искать 4 цифры подряд\\
\texttt{/\^{}\textbackslash n\textbackslash\{3\}} & Искать 3 пустые строки\\
\texttt{:bufdo /\textsl{str}/} & Искать \texttt{\textsl{str}} во всех открытых файлах\\
\end{tabular}
\section{Удаление}
\begin{tabular}{p{2.8cm}p{5.1cm}}
\texttt{d\^{}} & Удалить все символы от текущей позиции до начала строки\\
\texttt{d\$} & Удалить все символы от текущей позиции до конца строки\\
\texttt{d/\textsl{word}} & Удалить всё от текущей позиции до слова \texttt{\textsl{word}}\\
\texttt{df\textsl{x}} & Удалить всё от текущей позиции до символа \texttt{\textsl{x}}\\
\end{tabular}
\section{Замена}
\begin{tabular}{p{2.9cm}p{5.0cm}}
\texttt{:\%s/\textsl{foo}/\textsl{bar}/g} & Заменить все вхождения \texttt{\textsl{foo}} на \texttt{\textsl{bar}}\\
\texttt{:\%s/\textsl{foo}/\textsl{bar}/gw} & Заменить все вхождения \texttt{\textsl{foo}} на \texttt{\textsl{bar}} с запросом подтверждения\\
\texttt{:2,35s/\textsl{foo}/\textsl{bar}/g} & Заменить все вхождения \texttt{\textsl{foo}} на \texttt{\textsl{bar}} между 2 и 35 строками\\
\texttt{:5,\$s/\textsl{foo}/\textsl{bar}/g} & Заменить все вхождения \texttt{\textsl{foo}} на \texttt{\textsl{bar}} начиная с 5 строки и до конца файла\\
\texttt{:\%s/\^{}/\textsl{foo}/g} & Добавить \texttt{\textsl{foo}} в начало каждой строки\\
\texttt{:\%s/\$/\textsl{Bar}/g} & Добавить \texttt{\textsl{Bar}} в конец каждой строки\\
\texttt{:\%s/\textsl{Foo}/\textsl{bar}/gi} & Заменить \texttt{\textsl{Foo}} на \texttt{\textsl{bar}} с учетом регистра\\
\texttt{:\%s/\textvisiblespace \**\$//g} & Убрать все пробелы\\
\texttt{:g/\textsl{foo}/d} & Удалить все строки, содержащие \texttt{\textsl{foo}}\\
\texttt{:v/\textsl{foo}/d} & Удалить все строки, не содержащие \texttt{\textsl{foo}}\\
\texttt{:s/\textsl{Foo}/\textsl{Bar}/} & Заменить первое вхождение \texttt{\textsl{Foo}} на \texttt{\textsl{Bar}} в текущей строке\\
\texttt{:s/\textsl{Foo}/\textsl{Bar}/g} & Заменить все вхождения \texttt{\textsl{Foo}} на \texttt{\textsl{Bar}} в текущей строке\\
\texttt{:\%s/\textbackslash r//g} & Убрать символ возврата каретки (такие тексты обычно приходят от Windows-пользователей)\\
\texttt{:\%s\#\textgreater[\^{}\textless]\textbackslash+\textgreater\#\#g} & Очистить текст от HTML-тегов\\
% :%s/^\(.*\)\n\1$/\1/
\small\texttt{:\%s/\^{}\textbackslash(.$\ast$\textbackslash)\textbackslash n\textbackslash1\$/\textbackslash1/}\normalfont & Удалить строки, повторяющиеся дважды\\
\texttt{\keystroke{Ctrl+a}} & Увеличить число под курсором на единицу\\
\texttt{\keystroke{Ctrl+x}} & Уменьшить число под курсором на единицу\\
\texttt{ggVGg?} & Преобразовать текст в Rot13\\
\end{tabular}
\section{Регистр}
\begin{tabular}{p{2.8cm}p{5.1cm}}
\texttt{Vu} & Перевести строку в нижний регистр\\
\texttt{VU} & Перевести строку в верхний регистр\\
\texttt{g\~{}\~{}} & Инвертировать регистр\\
\texttt{vEU} & Перевести слово под курсором в верхний регистр\\
\texttt{vE\~{}} & Инвертировать регистр слова\\
\texttt{ggguG} & Перевести весь текст в нижний регистр\\
\texttt{:set ignorecase} & Регистронезависимый поиск\\
\texttt{:set smartcase} & Игнорировать регистр при поиске, если в искомом выражении нет символов верхнего регистра\\
% :%s/\<./\u&/g
\texttt{:\%s/\textbackslash\textless./\textbackslash u\&/g} & Перевести первую букву каждого слова в верхний регистр\\
% :%s/\<./\l&/g
\texttt{:\%s/\textbackslash\textless./\textbackslash l\&/g} & Перевести первую букву каждого слова в нижний регистр\\
% :%s/.*/\u&
\texttt{:\%s/.*/\textbackslash u\&} & Перевести первую букву первого слова в каждой строке в верхний регистр\\
% :%s/.*/\l&
\texttt{:\%s/.*/\textbackslash l\&} & Перевести первую букву первого слова в каждой строке в нижний регистр\\
\end{tabular}
\section{Чтение/запись файлов}
\begin{tabular}{p{2.8cm}p{5.1cm}}
\texttt{:1,10 w \textsl{outfile}} & Записать в \texttt{\textsl{outfile}} с первой по десятую строки\\
\texttt{:1,10 w \textgreater{}\textgreater \textsl{outfile}} & Добавить в \texttt{\textsl{outfile}} с первой по десятую строки\\
\texttt{:r \textsl{infile}} & Вставить содержимое файла \texttt{\textsl{infile}}\\
\texttt{:23r \textsl{infile}} & Вставить содержимое файла \texttt{\textsl{infile}} после 23 строки\\
\end{tabular}
\section{Навигация по ФС}
\begin{tabular}{p{2.8cm}p{5.1cm}}
\texttt{:e .} & Открыть встроенный файл-менеджер\\
\texttt{:Sex} & Разбить окно и открыть встроенный файл менеджер\\
\texttt{:browse e} & Графический файл-менеджер\\
\texttt{:ls} & Список буферов\\
\texttt{:cd ..} & Перейти в родительскую директорию\\
\texttt{:args} & Список открытых файлов\\
\texttt{:args \textsl{$\ast$.php}} & Открыть все файлы с расширением \texttt{$\ast$.php}\\
\mbox{\texttt{:grep \textsl{expr} *.php}} & Показать список файлов с расширением \texttt{$\ast$.php}, содержащих в имени \texttt{\textsl{expr}}\\
\texttt{gf} & Открыть файл с именем, равным слову, находящемуся под курсором\\
\end{tabular}
\section{Взаимодействие с ОС}
\begin{tabular}{p{2.8cm}p{5.1cm}}
\texttt{:!pwd} & Выполнить команду pwd и вернуться\\
\texttt{!!pwd} & Выполнить команду pwd и вставить результат в редактор\\
\texttt{:sh} & Открыть шелл\\
\texttt{\$exit} & Вернуться в редактор из шелла\\
\end{tabular}
\section{Выравнивание}
\begin{tabular}{p{2.8cm}p{5.1cm}}
\texttt{:\%!fmt} & Выровнять все строки\\
\texttt{!\}fmt} & Выровнять все строки в текущей позиции\\
\texttt{5!!fmt} & Выровнять следующие 5 строк\\
\end{tabular}
\section{Вкладки}
\begin{tabular}{p{2.8cm}p{5.1cm}}
\texttt{:tabnew} & Создать новую вкладку\\
\texttt{gt} & Перейти на следующую вкладку\\
\texttt{:tabfirst} & Перейти на первую вкладку\\
\texttt{:tablast} & Перейти на последнюю вкладку\\
\texttt{:tabm \textsl{n}} & Изменить порядок вкладок (\texttt{\textsl{n}}~-- номер желаемой позиции)\\
\texttt{:tabdo \textsl{command}} & Выполнить команду \texttt{\textsl{command}} во всех вкладках\\
\texttt{:tab ball} & Поместить все открытые файлы во вкладки\\
\end{tabular}
\section{Разделение окна}
\begin{tabular}{p{2.8cm}p{5.1cm}}
\texttt{:e \textsl{file}} & Редактировать \texttt{\textsl{file}} в текущем окне\\
\texttt{:split \textsl{file}} & Разделить окно и открыть \texttt{\textsl{file}}\\
\texttt{\keystroke{Ctrl-w} + \keystroke{$\Uparrow$}} & Переместить курсор в верхнее окно\\
\texttt{\keystroke{Ctrl-w ctrl-w}} & Переместить курсор в следующее окно\\
\texttt{\keystroke{Ctrl-w ctrl-p}} & Переместить курсор в предыдущее окно(вернуться назад)\\
\texttt{\keystroke{Ctrl-w ctrl-x}} & Поменять окна местами\\
\texttt{\keystroke{Ctrl-w\_}} & Максимизировать текущее окно\\
\texttt{\keystroke{Ctrl-w=}} & Подогнать окна по размеру\\
\texttt{10 \keystroke{Ctrl-w+}} & Увеличить текущее окно на 10 строк\\
\texttt{:vsplit [\textsl{file}]} & Вертикально разделить окно, если указан \texttt{\textsl{file}}, то открыть его\\
\texttt{:sview \textsl{file}} & Разделить окно и открыть \texttt{\textsl{file}} только для чтения\\
\texttt{:hide} & Закрыть текущее окно\\
\texttt{:only} & Закрыть все окна, кроме текущего\\
\texttt{:b \textsl{buffer\_name}} & Открыть \texttt{\textsl{buffer\_name}} в текущем окне\\
\end{tabular}
\section{Автодополнение}
\begin{tabular}{p{2.9cm}p{5.1cm}}
\texttt{\keystroke{Ctrl-n ctrl-p}} & (в режиме вставки) Дополнить слово\\
\texttt{\keystroke{Ctrl-x ctrl-l}} & Дополнить строку\\
\mbox{\small\texttt{:set dictionary=dict}}\normalfont & Установить словарь\\
\texttt{\keystroke{Ctrl-x ctrl-k}} & Дополнение из словаря\\
\end{tabular}
\section{Метки}
\begin{tabular}{p{2.8cm}p{5.1cm}}
\texttt{m\textsl{k}} & Пометить текущую позиция как \texttt{\textsl{k}}\\
\texttt{‘\textsl{k}} & Перейти к метке \texttt{\textsl{k}}\\
\texttt{d\lq \textsl{k}} & Удалить все до метки \texttt{\textsl{k}}\\
\texttt{d’\textsl{a},’\textsl{k}} & Удалить все от метки \texttt{\textsl{a}} до метки \texttt{\textsl{k}}\\
\end{tabular}
\section{Сокращения}
\begin{tabular}{p{2.8cm}p{5.1cm}}
\small\texttt{:ab \textsl{mlx} [email protected]}\normalsize & Определить \texttt{\textsl{mlx}} как сокращение от \texttt{[email protected]}\\
\end{tabular}
\section{Отступы}
\begin{tabular}{p{2.8cm}p{5.1cm}}
\texttt{:set autoindent} & Включить автоматическую расстановку отступов\\
\small\texttt{:set smartindent}\normalsize & Включить <<умную>> расстановку отступов\\
\small\texttt{\mbox{:set shiftwidth=4}}\normalsize & Установить отступ равный 4 пробелам\\
\texttt{\keystroke{Ctrl-t ctrl-d}} & Убрать/добавить отступ в режиме вставки\\
\texttt{\textless{}\textless} & Добавить отступ\\
\texttt{\textgreater{}\textgreater} & Убрать отступ\\
\end{tabular}
\section{Подсветка синтаксиса}
\begin{tabular}{p{2.8cm}p{5.1cm}}
\texttt{:syntax on} & Включить подсветку\\
\texttt{:syntax off} & Выключить подсветку\\
\texttt{:set syntax=\textit{perl}} & Установить режим подсветки синтаксиса Perl\\
\end{tabular}
\end{document}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment