Урок 05

Редакторы nano и vim

Зачем редактор в терминале

На сервере нет графической оболочки. Редактировать конфиги можно только через терминальные редакторы.

Два основных:

  • nano — простой
  • vim — мощный, но сложный

Для конфигов — nano. Для кода — vim (если привык).

nano

Открыть файл

nano /etc/nginx/sites-available/example.com

Создать новый:

nano new-file.txt

Интерфейс

Внизу экрана — список команд. Они всегда под рукой.

^G Get Help     ^O Write Out    ^W Where Is     ^K Cut Text
^X Exit         ^R Read File    ^\ Replace      ^U Uncut Text

^ = Ctrl.

Основные команды

КомбинацияДействие
Ctrl + OСохранить
Ctrl + XВыйти
Ctrl + WНайти
Ctrl + KВырезать строку
Ctrl + UВставить
Ctrl + GПомощь
Ctrl + CПоказать позицию курсора

Сохранение и выход

Сохранение:

  • Ctrl + O
  • Нажать Enter (подтвердить имя файла)

Выход:

  • Ctrl + X

Если есть несохранённые изменения — спросит:

Save modified buffer? (Answering "No" will DESTROY changes.)
 Y Yes
 N No
^C Cancel
  • Y — сохранить и выйти
  • N — выйти без сохранения
  • Ctrl + C — отмена

Поиск

Ctrl + W — вводишь текст, Enter — ищет. Alt + W — следующий результат.

Замена

Ctrl + \ — вводишь что искать, Enter, на что заменить, Enter. Спросит про каждое вхождение.

Полезные флаги

nano -w file.txt       # не переносить длинные строки
nano -l file.txt       # показывать номера строк
nano +50 file.txt      # открыть на 50-й строке

Настройка

Файл ~/.nanorc — настройки:

set linenumbers
set autoindent
set tabsize 4
set mouse
set smooth

set mouse — можно мышкой ставить курсор.

vim

Зачем vim

vim установлен везде — на любом сервере, в любом контейнере. Если nano нет — vim есть.

Умеешь vim — не паникуешь в чужой среде.

Открыть

vim /etc/nginx/nginx.conf

Три режима

1. Normal (обычный) — для навигации и команд. Тут стартуешь.

2. Insert (вставка) — для ввода текста.

3. Visual (визуальный) — для выделения.

Переключение:

  • Normal → Insert: i (перед курсором), a (после)
  • Insert → Normal: Esc
  • Normal → Visual: v

Сразу выйти

Как выйти из vim, если открыл случайно:

Esc, потом :q!, потом Enter.

Базовые команды (Normal режим)

КомандаДействие
iВставить перед курсором
aВставить после курсора
oНовая строка ниже
OНовая строка выше
EscВ Normal режим
:wСохранить
:qВыйти
:wqСохранить и выйти
:q!Выйти без сохранения
:w !sudo tee %Сохранить от root

Навигация (Normal)

КлавишаДействие
h j k lВлево/вниз/вверх/вправо
wСледующее слово
bПредыдущее слово
0Начало строки
$Конец строки
ggНачало файла
GКонец файла
:50На 50-ю строку
Ctrl + FСтраница вперёд
Ctrl + BСтраница назад

Редактирование

КомандаДействие
ddУдалить строку
yyСкопировать строку
pВставить после
PВставить перед
uОтменить
Ctrl + RВернуть отменённое
/textПоиск
nСледующее совпадение
NПредыдущее
:%s/old/new/gЗаменить во всём файле
:%s/old/new/gcС подтверждением

Сохранение от sudo

Открыл файл без sudo, а надо сохранить как root:

:w !sudo tee %

Спросит пароль, сохранит. Потом :q!.

Настройка

Файл ~/.vimrc:

syntax on
set number
set relativenumber
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent
set smartindent
set mouse=a
set clipboard=unnamed
set ignorecase
set smartcase
set incsearch
set hlsearch

Мнемоника команд

vim — это язык. Команды — как глаголы:

  • d — delete
  • y — yank (copy)
  • p — paste
  • c — change

Модификаторы:

  • w — word
  • $ — до конца строки
  • 0 — до начала строки

Примеры:

  • dw — удалить слово
  • d$ — удалить до конца строки
  • dd — удалить строку
  • yy — скопировать строку
  • 5dd — удалить 5 строк

Что делать, если попал в vim

1. Esc — в Normal режим. 2. :q! — выйти без сохранения. 3. Enter.

Если изменил — :wq вместо :q!.

Другие редакторы

vim — большой, но есть лёгкие варианты:

  • vi — старый, но везде есть
  • nvim (neovim) — современный форк vim
  • micro — редактор с привычными клавишами
  • emacs — для фанатов (свой мир)

Установка micro (если nano/vim не нравятся):

apt install micro
micro file.txt

Работает как привычный редактор: Ctrl + S — сохранить, Ctrl + Q — выйти.

Что выбрать

Для конфигов на сервере: nano.

Для серьёзной работы в терминале: vim.

Правило: если правишь конфиг раз в неделю — nano. Если живёшь в терминале — vim.

Сравнение

Действиеnanovim
СохранитьCtrl + O, Enter:w, Enter
ВыйтиCtrl + X:q, Enter
Выйти без сохраненияCtrl + X, N:q!, Enter
ПоискCtrl + W/text
ЗаменаCtrl + \:%s/old/new/g

Итог

Для работы на сервере хватит nano. Если хочешь больше — учи vim. Мнемоника простая, но нужно время.

Дальше — права доступа и владельцы.