
| Server name    | ip             | port | username         | Private key  |
| -------------- | -------------- | ---- | ---------------- | ------------ |
| Optical        | 10.220.168.5   | 22   | vadym.samoilenko | id_rsa_vadym |
| box-cli        | 10.220.176.3   | 22   | vadym.samoilenko | id_rsa_vadym |
| librechat_dev  | 10.220.168.2   | 22   | vadym.samoilenko | id_rsa_vadym |
| librechat_prod | 10.220.168.4   | 22   | vadym.samoilenko | id_rsa_vadym |
| modocmms dev   | 10.220.168.6   | 22   | vadym.samoilenko | id_rsa_vadym |
| BAIC           | 10.220.72.13   | 22   | vadym.samoilenko | id_rsa_vadym |
| optical-dev    | 10.220.168.9   | 22   | vadym.samoilenko | id_rsa_vadym |
| optical-prod   | 10.220.168.8   | 22   | vadym.samoilenko | id_rsa_vadym |
| Aimpress       | 57.128.160.249 | 1220 | ubuntu           |              |
Vim

# Vim — шпаргалка

## Открыть файл

```bash
vim filename.txt          # открыть файл
vim +42 filename.txt      # открыть на строке 42
vim +/pattern file.txt    # открыть с поиском по слову
sudo vim /etc/nginx/nginx.conf  # редактировать системный файл
```

---

## Режимы

| Режим | Как войти | Индикатор внизу |
|---|---|---|
| **Normal** | `Esc` | ничего |
| **Insert** | `i` | `-- INSERT --` |
| **Visual** | `v` | `-- VISUAL --` |
| **Command** | `:` | `:` внизу |

> Всегда жми `Esc` перед командами если не уверен в текущем режиме.

---

## Движение (Normal mode)

```
h j k l        ← ↓ ↑ →
w / b          следующее / предыдущее слово
0 / $          начало / конец строки
gg / G         начало / конец файла
42G            перейти на строку 42
Ctrl+d         вниз на полэкрана
Ctrl+u         вверх на полэкрана
Ctrl+f         вниз на экран
Ctrl+b         вверх на экран
```

---

## Вставка текста (→ Insert mode)

```
i              вставить перед курсором
a              вставить после курсора
I              вставить в начало строки
A              вставить в конец строки
o              новая строка ниже
O              новая строка выше
```

---

## Редактирование (Normal mode)

```
x              удалить символ под курсором
dd             удалить строку
d3d / 3dd      удалить 3 строки
dw             удалить слово
D              удалить до конца строки
yy             скопировать строку
y3y / 3yy      скопировать 3 строки
p              вставить после курсора
P              вставить перед курсором
u              отменить (undo)
Ctrl+r         повторить (redo)
.              повторить последнее действие
r<char>        заменить символ под курсором
cw             изменить слово (удаляет + переходит в Insert)
cc             изменить всю строку
C              изменить до конца строки
```

---

## Поиск и замена

```
/pattern       искать вперёд
?pattern       искать назад
n              следующее совпадение
N              предыдущее совпадение
*              искать слово под курсором

:%s/old/new/g       заменить всё в файле
:%s/old/new/gc      заменить с подтверждением каждого
:10,20s/old/new/g   заменить в строках 10–20
```

---

## Сохранение и выход (Command mode)

```
:w             сохранить
:w filename    сохранить как другой файл
:q             выйти (если нет изменений)
:q!            выйти без сохранения
:wq            сохранить и выйти
:x             сохранить и выйти (только если были изменения)
ZZ             сохранить и выйти (без двоеточия)
ZQ             выйти без сохранения (без двоеточия)
```

---

## Работа с несколькими файлами

```
:e filename    открыть другой файл
:tabe file     открыть в новой вкладке
gt / gT        следующая / предыдущая вкладка
:split file    горизонтальное разделение
:vsplit file   вертикальное разделение
Ctrl+w w       переключиться между панелями
Ctrl+w q       закрыть панель
```

---

## Визуальный режим (выделение)

```
v              выделение посимвольно
V              выделение построчно
Ctrl+v         блочное выделение (колонки)

После выделения:
d              удалить
y              скопировать
>              сдвинуть вправо (отступ)
<              сдвинуть влево
```

---

## Полезные команды

```
:set number        показать номера строк
:set nonumber      скрыть номера строк
:set paste         режим вставки без автоотступов (для Ctrl+V из буфера)
:set nopaste       выключить paste-режим
:syntax on/off     включить / выключить подсветку синтаксиса
:noh               убрать подсветку поиска
gg=G               автоформатировать весь файл

:%y+               скопировать весь файл в системный буфер
```

---

## Типичный сценарий на сервере

```bash
# 1. Открыть конфиг
sudo vim /etc/nginx/sites-available/mysite.conf

# 2. Найти нужное место
/server_name

# 3. Перейти в Insert
i

# 4. Внести правки, выйти из Insert
Esc

# 5. Сохранить и выйти
:wq
```

---

## Если завис / не знаешь что делать

```
Esc Esc        вернуться в Normal mode
:q!            выйти без сохранения
u              отменить последнее действие
```
