Освоить Linux для deploy aka путь криптопанка/ Часть 2: CLI

Освоить 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

Report Page