## Модальность

У vim есть несколько модов:

* Normal: ходим по файлу и что-то меняем (по умолчанию)
* Insert: наконец-то пишем код
* Replace: заменяем текст
* Visual (plain, text, block): выбираем блоки текста, копируем и вставляем потом
* Cmd: исполняем команды из командной строки

По умолчанию в Vim мод написан слева снизу, Вы можете входить в какие-то моды
`i` для Insert, `R` для Replace, `v` для Visual (ещё можно Ctrl+V для блокового,
Visual), `:` для Cmd мода. Выйти из мода на нормальный можно при помощи `<ESC>`.

## Normal mode

Вы должны проводить большую часть своего времени в нормальном режиме, используя
команды движения для навигации по буферу. Движения в Vim также называются
"существительными" (nouns), потому что они относятся к фрагментам текста.

* Базовое движение: `hjkl` (влево, вниз, вверх, вправо)
* Слова: `w` (следующее слово), `b` (начало слова), `e` (конец слова)
* Строки: `0` (начало строки), `^` (первый непустой символ), `$` (конец строки)
* Экран: `H` (верх экрана), `M` (середина экрана), `L` (нижняя часть экрана)
* Прокрутка: `Ctrl-u` (вверх), `Ctrl-d` (вниз)
* Файл: `gg` (начало файла), `G` (конец файла)
* Номера строк: `:` {number} <CR> или {number} `G` (строка {номер})
* `%` (соответствующий элемент)
* Поиск: `f`{символ}, `t`{символ}, `F`{символ}, `T`{символ}
  * найти / для перехода вперед / назад {символ} в текущей строке
  * `,` `/;` для навигации по матчам
* Поиск: / {[regex](../1.3.4%20Regex/1.3.4.1%20Regex.md)}, n / N для поиска совпадений

## Insert

Нажимаем `i`, пишем текст который надо, как в обычном редакторе. Можно хорошо
настроить так, чтобы не отличалось от написания кода в любом другом редакторе &mdash;
нормальный TAB, нормальное понимание табуляции, скобок и т.д.

## Visual

`v` или `Ctrl+v` для входа, дальше просто навигация, выбор строк. `y` (yank)
для копирования, `p` для вставки (уже в Normal mode).

---

[1.3.2.1 Text Editors Theme](./1.3.2.1%20TextEditors.md) | [Back To iTWiki Contents](https://github.com/eldaroid/iTWiki) |  [1.3.3 Command Line Tools (CLI) Folder](../1.3.3%20CLI/)
