* [vim/ru] Translate Vim doc * Add '(EN)' label to links, and replace Arch wiki link with russian version
12 KiB
category | tool | contributors | translators | filename | lang | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
tool | vim |
|
|
LearnVim-ru.txt | ru-ru |
Vim (Vi IMproved) это клон полулярного текстового редактора для Unix. Он разработан с целью повышения скорости и продуктивности и повсеместно используется в большинство Юникс-подобных систем. В нем имеется множество клавиатурных сочетаний для быстрой навигации к определенным точкам в файле и быстрого редактирования.
Основы навигации в vim
vim <filename> # Открыть <filename> в vim
:q # Выйти из vim
:w # Сохранить текущий файл
:wq # Сохранить и выйти
:q! # Выйти из vim не сохраняя файл
:x # Сохранить файл и выйти из vim, короткая версия :wq
u # Отмена последней команды
CTRL+R # Отмена отмены
h # Переместить курсор на один символ влево
j # Переместить курсор на один символ вниз
k # Переместить курсор на один символ вверх
l # Переместить курсор на один символ вправо
# Перемещение по строке
0 # Переместить курсор к началу строки
$ # Переместить курсор к концу строки
^ # Переместить курсор к первому непустому символу в строке
# Поиск в тексте
/<word> # Подсветить все вхождения <word> в тексте после курсора
?<word> # Подсветить все вхождения <word> в тексте до курсора
n # Передвигает курсор к следующему вхождения искомого слова
N # Передвигает курсор к предыдущему вхождения искомого слова
:%s/foo/bar/g # Меняет 'foo' на 'bar' во всем файле
:s/foo/bar/g # Меняет 'foo' на 'bar' на текущей строке
# Переходы к символу
f<character> # Перенести курсор к <character>
t<character> # Перенести курсор вперед и остановиться прямо перед <character>
# Например,
f< # Перести курсор и остановиться на <
t< # Перенсти курсор и остановиться прямо перед <
# Перемещение по словам
w # Переместиться вперед на одно слово
b # Перенеститься назад на одно слово
e # Перейти к концу текущего слова
# Другие команды для передвижения по тексту
gg # Перейти к началу файла
G # Перейти к концу файла
:NUM # Перейти к строке под номером NUM (NUM может быть любым числом)
H # Переместить курсор к верхнему краю экрана
M # Переместить курсор к середине экрана
L # Переместить курсор к нижнему краю экрана
Режимы:
Vim основывается на концепте режимов.
Командный режим - vim запускается в этом режиме по-умолчанию, используется для навигации и ввода комманд Режим ввода - используется для внесения изменений в файле Визуальный режим - используется для подсветки текста и выполнения операций над ним Режим командной строки - используется для ввода команд в нижнем углу экрана после символа ':'
i # Переводит vim в режим вставки перед позицией курсора
a # Переводит vim в режим вставки после позиции курсора
v # Переводит vim в визуальный режим
: # Переводит vim в режим командной строки
<esc> # Выходит из любого режима в котором вы находитесь в командный режим
# Копирование и вставка текста
y # Скопировать выделенное
yy # Скопировать текущую строку
d # Удалить выделенное
dd # Удалить текущую строку
p # Вставить скопированный текст после текущей позиции курсора
P # Вставить скопированный текст перед текущей позицией курсора
x # Удалить символ под текущей позицией курсора
'Грамматика' vim
Vim можно рассматривать как набор команд в формате 'Глагол-Модификатор-Существительное', где:
Глагол - ваше действие Модификатор - то как вы его выполняете Существительное - объект над которым вы его выполняете
Несколько важных пример 'Глаголов', 'Модификаторов', и 'Существительных':
# 'Глаголы'
d # Удалить
c # Изменить
y # Скопировать
v # Визуально выделить
# 'Модификаторы'
i # Внутри
a # Снаружи
NUM # Число
f # Ищет что-то и останавливается на нем
t # Ищет что-то и останавливается перед ним
/ # Ищет строку после курсора
? # Ищет строку перед курсором
# 'Существительные'
w # Слово
s # Предложение
p # Параграф
b # Блок
# Образцы 'предложений' или команд
d2w # Удалить 2 слова
cis # Изменить объемлющее предложение
yip # Скопировать объемлющий параграф
ct< # Изменяет текст от курсора до следующей открывающей скобки
d$ # Удалить все от положения курсора до конца строки
Некоторые сокращения и хитрости
<!--TODO: Add more!-->
> # Сдвинуть выделенное на один отступ вправо
< # Сдвинуть выделенное на один отступ влево
:earlier 15m # Возвращает документ к состоянию в котором он был 15 минут назад
:later 15m # Отменяет предыдущую команду
ddp # Меняет позиции последовательных строк, сначала dd затем p
. # Повторяет предыдущее действие
Макросы
Макросы это просто записываемые действия. Во время записи макросы запоминают все действия и команды до тех пор пока запись не будет остановлена.При вызове макрос применяет ту же самую последовательность действий и команд на выделенном тексте.
qa # Начать запись макроса под именем 'a'
q # Закончить запись
@a # Выполнить макрос
Настройка ~/.vimrc
Файл .vimrc может использоваться для настройки Vim при запуске.
Вот пример файла ~/.vimrc:
" Пример ~/.vimrc
" 2015.10
" Отключает совместимость со старым vi
set nocompatible
" Определяет тип файла по его имени для разрешения автоматических отступов и т. д.
filetype indent plugin on
" Включает подсветку синтаксиса
syntax on
" Улучшенное автодополнение команд
set wildmenu
" Использовать поиск не чувствительный к регистру
" за исключением использования заглавный букв
set ignorecase
set smartcase
" Копирует отступы с текущей строки при добавлении новой
set autoindent
" Показывать номера строк
set number
" Настройки отступов, изменяйте по собственному вкусу
" Количество видимых пробелов на один символ табуляции
set tabstop=4
" Количество пробелов в символе табуляции при редактировании
set softtabstop=4
" Количество пробелов в отступе при использовании операций >> и <<
set shiftwidth=4
" Конвертировать символы табуляции в пробелы
set expandtab
" Включить умную табуляцию и пробелы для отступов и выравнивания
set smarttab
Ссылки
$ vimtutor
A vim Tutorial and Primer (EN)
What are the dark corners of Vim your mom never told you about? (Stack Overflow thread) (EN)