Освоить Linux для deploy aka путь криптопанка/ Часть 2: CLI
Начнем с ZSH, накинем удобную тему, полезных плагинов. Да и в целом приведем терминал в порядок, попутно изучая полезные команды и горячие клавиши.
Установка oh my zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Это установит нам oh my zsh, который позволит кидать в zsh всякие плагины и темы
y там не забудь. А быть точнее эта команда скачает .sh скрипт, который и установит.
Открываем конфиг zsh
nvim ~/.zshrc
Терминал можешь пока свернуть, мы идем выбирать/набирать тем и плагинов
Искать тут:
https://github.com/ohmyzsh/ohmyzsh/wiki/Themes - базовые и простые темы
https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes - навороченные темы
https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins - базовые плагины
https://github.com/ohmyzsh/ohmyzsh/wiki/External-plugins - очевидно, навороченные
Лично я выбрал на ВМ тему: https://github.com/ChesterYue/ohmyzsh-theme-passion#install
Давай приступим к ее установке
git clone https://github.com/ChesterYue/ohmyzsh-theme-passion
git - команды github, clone - копирует репозиторий к нам.
cp ./ohmyzsh-theme-passion/passion.zsh-theme ~/.oh-my-zsh/themes/passion.zsh-theme
cp - копирование. Копируем тему из скопированного репозитория в папку oh my zsh
Возвращаемся в наш терминал и приводим строчку ZSH_THEME=
К логичному виду: ZSH_THEME="passion"
Neovim, пока только учимся, плагины в конце
Если вы ранее игнорировали использование neovim не вникнули в базовое управление, кажется нигде не упоминал : и wq - ваше время!
Самое основное это режим ввода, для правки каких либо строк - i
Написав что-либо вы нажимаете ESC и выходите из режима набора текста
Большую часть деплоя (99%) приходилось делать crtl-c ctrl-v или shift insert, посему я не вдавался в подробности управления neovim, да и оно легко гуглится.
Нажимаем : и wq, получаем :wq - это команда сохранить и выйти
Вы можете выйти без сохранения с помощью :q! и просто сохранить с помощью :w
P.S. если вы что-то правите в системных файлах используйте либо sudo nvim, либо в самом nvim :w!

Плагины zsh
На мой взгляд невозможно жить без этих двух плагинов:
zsh-syntax-highlighting и zsh-autosuggestions
Установка:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
в ~/.zshrc
plugins=(
zsh-syntax-highlighting
zsh-autosuggestions
)
И еще три полезных плагина, что достаточно указать в plugins
git, sudo, dirhistory
sudo - нажми дважды ESC и повторится прошлая команда с sudo (или добавится к набираемому тексту в данный момент)
dirhistory - alt + стрелочки это перемещение по директориям. Нужно на папку выше? alt + вверх. https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/dirhistory
Neovim плагины
Та самая мякотка, превращение nvim в целую замену IDE, возможность писать код, редактировать код и получать кайф. Нам как деплоерам-арбузерам тоже удобно.
Packer - менеджер плагинов и установка Dashboard, и даже темная тема
git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim
Команда выше ОБЯЗАТЕЛЬНО в две строчки должна быть, но это ОДНА команда.
Затем залетаем в папку ~/.config/nvim (если нет - создай, mkdir в помощь)
Создаем тут файл init.lua и вставляем в него:
-----------------------------------------------------------
-- Импорт модулей Lua
-----------------------------------------------------------
require('plugins')
require('settings')
Создаем папку lua и делаем в ней два файла: plugins.lua и settings.lua
Проверь себя: nvim ~/.config/nvim/lua/plugins.lua
И заполняем:
vim.cmd [[packadd packer.nvim]]
return require('packer').startup(function(use)
-- Автоустановка пакетного менеджера
use 'wbthomason/packer.nvim'
use {
'glepnir/dashboard-nvim',
event = 'VimEnter',
config = function()
require('dashboard').setup {
-- config
}
end,
requires = {'nvim-tree/nvim-web-devicons'}
}
use { "catppuccin/nvim", as = "catppuccin" }
end)
Затем, nvim ~/.config/nvim/lua/settings.lua
local opt = vim.opt
-----------------------------------------------------------
-- ОБЩИЕ ОПЦИИ
-----------------------------------------------------------
opt.mouse = 'a' --Включит мышь
opt.encoding = 'utf-8' --Кодировка
opt.showcmd = true --Отображение команд
vim.cmd([[
filetype indent plugin on
syntax enable
]])
opt.swapfile = false --Не создаем свап файлы
-----------------------------------------------------------
-- ВИЗУАЛЬНЫЕ ОПЦИИ
-----------------------------------------------------------
opt.number = true --Номер строк сбоку
opt.wrap = true --Длинные линии будет видно
opt.expandtab = true --???
opt.tabstop = 4 --1 tab = 4 пробела
opt.smartindent = true
opt.shiftwidth = 4 --Смещаем на 4 пробела
-- 2 spaces for selected filetypes
vim.cmd [[
autocmd FileType xml,html,xhtml,css,scss,javascript,lua,yaml,htmljinja setlocal shiftwidth=2 tabstop=2
]]
opt.so = 5 --Отступ курсора от края экрана
opt.foldcolumn = '2' --Ширина колонки для фолдов
opt.colorcolumn = '119' --Расположение цветной колонки
-- remove line lenght marker for selected filetypes
vim.cmd [[autocmd FileType text,markdown,html,xhtml,javascript setlocal cc=0]]
opt.cursorline = true -- Подсветка строки с курсором
opt.termguicolors = true
-- Компактный вид у тагбара и Отк. сортировка по имени у тагбара
vim.g.tagbar_compact = 1
vim.g.tagbar_sort = 0
-----------------------------------------------------------
-- ПОЛЕЗНЫЕ ФИШКИ
-----------------------------------------------------------
-- Подсвечивает на доли секунды скопированную часть текста
vim.api.nvim_exec([[
augroup YankHighlight
autocmd!
autocmd TextYankPost * silent! lua vim.highlight.on_yank{higroup="IncSearch", timeout=300}
augroup end
]], false)
-------------------------------------
-- Автостарт плагинов --
-------------------------------------
vim.cmd.colorscheme "catppuccin-mocha"
-------------------------------------
-- НАСТРОЙКИ ПЛАГИНОВ --
-------------------------------------
-- dashboard
--local db=require'dashboard-nvim'
db.setup({
theme = 'hyper',
config = {
week_header = {
enable = true,
},
shortcut = {
{ desc = ' Update', group = '@property', action = 'Lazy update', key = 'u' },
{
icon = ' ',
icon_hl = '@variable',
desc = 'Files',
group = 'Label',
action = 'Telescope find_files',
key = 'f',
},
{
desc = ' Apps',
group = 'DiagnosticHint',
action = 'Telescope app',
key = 'a',
},
{
desc = ' dotfiles',
group = 'Number',
action = 'Telescope dotfiles',
key = 'd',
},
},
},
})
Теперь в nvim вбей команду :PackerSync (TAB в помощь, он дополняет команды в терминале)
Packer должен будет скачать и установить вписанные в конфиг плагины, включая самого себя. :Dashboard или открой заново nvim

Теперь ты можешь через :Dashboard открывать это меню и бегать между недавними файлами, а там еще можно вкладочки добавить..
Если зайдет и захочется и дальше накидывать фаршу на neovim - сделаю обзор на прочие плагины. Но для работы этого вполне достаточно.
Ссылки на полезные материалы я оставлю здесь:
https://habr.com/ru/post/706110/
https://github.com/glepnir/dashboard-nvim
https://github.com/catppuccin/nvim
https://github.com/zsh-users/zsh-autosuggestions
https://github.com/zsh-users/zsh-syntax-highlighting