learnxinyminutes-docs/ru-ru/vim-ru.html.markdown
Anton daea2973e6 [vim/ru] Translate Vim doc (#2506)
* [vim/ru] Translate Vim doc

* Add '(EN)' label to links, and replace Arch wiki link with russian version
2016-10-25 22:57:32 +02:00

12 KiB
Raw Blame History

category tool contributors translators filename lang
tool vim
RadhikaG
https://github.com/RadhikaG
Anton Slukovskiy
https://github.com/slukovskiy
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

Ссылки

Vim | Home (EN)

$ vimtutor

A vim Tutorial and Primer (EN)

What are the dark corners of Vim your mom never told you about? (Stack Overflow thread) (EN)

Arch Linux Wiki