Vimi: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(→‎Изменить размеры текущего сплита)
(→‎Пролистывание)
 
(не показано 5 промежуточных версий этого же участника)
Строка 5: Строка 5:
 
=Первые шаги=
 
=Первые шаги=
  
−
==Запуск, открыть, сохранить файлы==
+
==Сплиты, табы, буферы==
 +
 
 +
===Буфер (buffer)===
 +
 
 +
Буфер = открытый файл в памяти
 +
 
 +
файл может быть открыт
 +
 
 +
может не быть видимым
 +
 
 +
один буфер можно показывать в нескольких окнах
 +
 
 +
Команды:
 +
 
 +
:ls      " список буферов
 +
:bn      " следующий
 +
:bp      " предыдущий
 +
:bd      " закрыть буфер
 +
 
 +
===Сплит/окно(window)===
 +
 
 +
Сплит = окно, в котором отображается буфер
 +
 
 +
делит экран
 +
 
 +
один таб может содержать несколько сплитов
 +
 
 +
каждый сплит показывает один буфер
 +
 
 +
Создание:
 +
 
 +
:split
 +
:vsplit
 +
 
 +
 
 +
Навигация:
 +
 
 +
Ctrl-w h j k l
 +
 
 +
===Таб (tabpage)===
 +
 
 +
Таб = набор сплитов
 +
 
 +
Это не файл, а layout (раскладка окон).
 +
 
 +
каждый таб может иметь свои сплиты
 +
 
 +
буферы могут быть общими между табами
 +
 
 +
похоже на «workspace» в IDE
 +
 
 +
Создание:
 +
 
 +
:tabnew
 +
:tabedit file.txt
 +
 
 +
===Визуально===
 +
 
 +
Tab 1
 +
  ├─ split A → file1.c
 +
  └─ split B → file2.c
 +
 
 +
Tab 2
 +
  └─ split A → terminal
 +
 
 +
===Переключение между табами===
 +
 
 +
Следующий / предыдущий
 +
 
 +
gt    " следующий таб
 +
gT    " предыдущий таб
 +
 
 +
Перейти к табу по номеру
 +
 
 +
:tabn 3
 +
 
 +
или:
 +
 
 +
3gt
 +
 
 +
Закрыть таб
 +
 
 +
:tabclose
 +
 
 +
Список табов
 +
 
 +
:tabs
 +
 
 +
===Когда использовать что===
 +
 
 +
Сплиты — для:
 +
 
 +
сравнения файлов
 +
 
 +
код + терминал
 +
 
 +
код + лог
 +
 
 +
 
 +
Табы — для:
 +
 
 +
разных задач / контекстов
 +
 
 +
разных проектов
 +
 
 +
разных раскладок
 +
 
 +
В Vim предпочитают сплиты, а табы используют как workspace.
 +
 
 +
 
 +
==Запуск, работа со сплитами==
  
 
===Запуск===
 
===Запуск===
Строка 111: Строка 221:
 
     J
 
     J
 
</pre>
 
</pre>
 +
 +
 +
==Пролистывание==
 +
 +
{| class="wikitable"
 +
! Действие !! Клавиши
 +
|-
 +
| Страница вниз || Ctrl + f
 +
|-
 +
| Страница вверх || Ctrl + b
 +
|-
 +
| Полстраницы вниз || Ctrl + d
 +
|-
 +
| Полстраницы вверх || Ctrl + u
 +
|-
 +
| На 1 строку вниз (без сдвига курсора) || Ctrl + e
 +
|-
 +
| На 1 строку вверх (без сдвига курсора) || Ctrl + y
 +
|-
 +
| В начало файла || gg
 +
|-
 +
| В конец файла || G
 +
|-
 +
| Перейти к строке N || :N
 +
|}
 +
 +
 +
==Выделение текста==
 +
 +
{| class="wikitable"
 +
! Действие !! Клавиши
 +
|-
 +
| Выделение по символам || v
 +
|-
 +
| Выделение по строкам || V
 +
|-
 +
| Прямоугольное выделение || Ctrl + v
 +
|-
 +
| Выделить слово || viw / vaw
 +
|-
 +
| Выделить строку || V
 +
|-
 +
| Выделить абзац || vip / vap
 +
|-
 +
| Выделить всё || ggVG
 +
|-
 +
| Копировать || y
 +
|-
 +
| Вырезать || d
 +
|-
 +
| Заменить || c
 +
|-
 +
| Форматировать || =
 +
|}
 +
 +
==Поиск==
 +
 +
Поиск вперёд по слову, на котором стоит курсор
 +
 +
*
 +
 +
Поиск назад по слову, на котором стоит курсор
 +
 +
#
 +
 +
Или
 +
 +
,f
 +
 +
===Замена===
 +
 +
Замена текущего слова
 +
 +
,s

Текущая версия на 10:28, 6 января 2026

Откуда

https://github.com/miripiruni/vimi

Первые шаги

Сплиты, табы, буферы

Буфер (buffer)

Буфер = открытый файл в памяти

файл может быть открыт

может не быть видимым

один буфер можно показывать в нескольких окнах

Команды:

:ls      " список буферов
:bn      " следующий
:bp      " предыдущий
:bd      " закрыть буфер

Сплит/окно(window)

Сплит = окно, в котором отображается буфер

делит экран

один таб может содержать несколько сплитов

каждый сплит показывает один буфер

Создание:

:split
:vsplit


Навигация:

Ctrl-w h j k l

Таб (tabpage)

Таб = набор сплитов

Это не файл, а layout (раскладка окон).

каждый таб может иметь свои сплиты

буферы могут быть общими между табами

похоже на «workspace» в IDE

Создание:

:tabnew
:tabedit file.txt

Визуально

Tab 1
 ├─ split A → file1.c
 └─ split B → file2.c
Tab 2
 └─ split A → terminal

Переключение между табами

Следующий / предыдущий

gt     " следующий таб
gT     " предыдущий таб

Перейти к табу по номеру

:tabn 3

или:

3gt

Закрыть таб

:tabclose

Список табов

:tabs

Когда использовать что

Сплиты — для:

сравнения файлов

код + терминал

код + лог


Табы — для:

разных задач / контекстов

разных проектов

разных раскладок

В Vim предпочитают сплиты, а табы используют как workspace.


Запуск, работа со сплитами

Запуск

vim

Дерево каталогов и файлов

Клавиша

<BACKSPACE>

открывает/закрывает дерево

Сразу хочется по этому дереву ходить клавишами-стрелками.

Но нет. В vim основная навигация - это:

    k

h       l

    j

Разделить экран (создать новый буфер)

,→ справа
,← слева
,↑ сверху
,↓ снизу


Переключаться между буферами

Нажать

<Ctrl+w>

затем выбрать в какую сторону:

    k

h       l

    j


Закрыть выбранный сплит

Нажать

<Ctrl+w>

затем

q


Изменить размеры текущего сплита

Высота

Ctrl-w +    увеличить
Ctrl-w -    уменьшить

Ширина

Ctrl-w >    увеличить
Ctrl-w <    уменьшить

Максимизировать окно

Ctrl-w _
Ctrl-w |

(по высоте / по ширине)

Вернуть нормальный размер

Ctrl-w =

Точный размер

:resize 20           " ровно 20 строк
:vertical resize 80  " ровно 80 колонок


Переместить текущий сплит на место другого (поменять местами текущий и рядом стоящий)

Нажать

<Ctrl+w>

затем выбрать в какую сторону (регистр букв важен!):

    K

H       L

    J


Пролистывание

Действие Клавиши
Страница вниз Ctrl + f
Страница вверх Ctrl + b
Полстраницы вниз Ctrl + d
Полстраницы вверх Ctrl + u
На 1 строку вниз (без сдвига курсора) Ctrl + e
На 1 строку вверх (без сдвига курсора) Ctrl + y
В начало файла gg
В конец файла G
Перейти к строке N :N


Выделение текста

Действие Клавиши
Выделение по символам v
Выделение по строкам V
Прямоугольное выделение Ctrl + v
Выделить слово viw / vaw
Выделить строку V
Выделить абзац vip / vap
Выделить всё ggVG
Копировать y
Вырезать d
Заменить c
Форматировать =

Поиск

Поиск вперёд по слову, на котором стоит курсор

*

Поиск назад по слову, на котором стоит курсор

#

Или

,f

Замена

Замена текущего слова

,s