learnxinyminutes-docs/ru/vim.md
2024-12-08 23:20:53 -07:00

12 KiB
Raw Blame History

category contributors translators filename
tool
RadhikaG
https://github.com/RadhikaG
Anton Slukovskiy
https://github.com/slukovskiy
LearnVim-ru.txt

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