Last active
July 11, 2018 18:54
-
-
Save ap-Codkelden/031baf02307988586f1d to your computer and use it in GitHub Desktop.
100 vim commands
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\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