SexNvim/lua/config/common-settings.lua
2025-04-15 20:44:47 +03:00

208 lines
6.3 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--------------------------------------------------------------------------[[FUNC]]-------------------------------
-- Установка клавиши Leader на пробел
vim.g.mapleader = " "
vim.cmd([[autocmd BufRead,BufNewFile config_zero setfiletype i3config]])
-- CUSTOM MOVE
-- NORMAL
vim.keymap.set('n', 'h', '<nop>', { noremap = true, silent = true })
vim.keymap.set('n', 'j', 'h', { noremap = true, silent = true })
vim.keymap.set('n', 'k', 'j', { noremap = true, silent = true })
vim.keymap.set('n', 'l', 'k', { noremap = true, silent = true })
vim.keymap.set('n', ';', 'l', { noremap = true, silent = true })
-- VISUAL
vim.keymap.set('v', 'h', '<nop>', { noremap = true, silent = true })
vim.keymap.set('v', 'j', 'h', { noremap = true, silent = true })
vim.keymap.set('v', 'k', 'j', { noremap = true, silent = true })
vim.keymap.set('v', 'l', 'k', { noremap = true, silent = true })
vim.keymap.set('v', ';', 'l', { noremap = true, silent = true })
-- Настройка выхода из режима ввода через Atl+i
vim.api.nvim_set_keymap('i', '<A-i>', '<Esc>', { noremap = true, silent = true })
-- Настройка терминала
vim.api.nvim_set_keymap('t', '<A-i>', '<C-\\><C-n>', { noremap = true, silent = true })
-- установить время ожидания в 200 миллисекунд
vim.o.timeoutlen = 300
-- СИСТЕМНЫЙ БУФЕР
-- Копирование в системный буфер
vim.api.nvim_set_keymap('v', 'y', '"+y', { noremap = true, silent = true })
-- Вставка из системного буфера
vim.api.nvim_set_keymap('n', 'p', '"+p', { noremap = true, silent = true })
-- Вырезание в системный буфер
vim.api.nvim_set_keymap('v', 'x', '"+x', { noremap = true, silent = true })
-- Включаем поддержку undo
vim.opt.undofile = true
-- Указываем директорию для хранения файлов undo
vim.opt.undodir = "/tmp/nvim-changes/"
-- Функции для табуляции выделенной области
local function tab_selected()
vim.cmd('normal! >gv') -- Сдвиг вправо и возврат к выделению
end
local function shift_tab_selected()
vim.cmd('normal! <gv') -- Сдвиг влево и возврат к выделению
end
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
-- Привязка клавиш
vim.keymap.set('v', '<Tab>', tab_selected, { noremap = true, silent = true })
vim.keymap.set('v', '<S-Tab>', shift_tab_selected, { noremap = true, silent = true })
--[[ Поиск ]]--
-- Игнорировать регистр при поиске
vim.opt.ignorecase = true
-- Не игнорировать регистр, если есть символы в верхнем регистре
vim.opt.smartcase = true
-- Подсвечивать найденные текстовые объекты
vim.opt.showmatch = true
--------------------------------------------------------------------------[[VISUAL]]--------------------------------------------------------------------------
vim.o.laststatus = 0 -- Отключает строку состояния
-- init.lua
-- Функция для случайного выбора цветовой темы
--
-- local function set_random_colorscheme()
-- -- Список доступных цветовых тем
-- local colorschemes = {
-- "tokyonight-night",
-- "gruvbox",
-- "kanagawa",
-- "kanagawa-wave",
-- "kanagawa-dragon",
-- "nightfly",
-- "randomhue",
-- "darkblue",
-- "habamax",
-- "minischeme",
-- "retrobox",
-- "slate",
-- "zaibatsu",
-- }
-- math.randomseed(os.time())
-- local random_index = math.random(1, #colorschemes)
-- vim.cmd("colorscheme " .. colorschemes[random_index])
-- end
-- set_random_colorscheme()
-- vim.api.nvim_create_user_command("RandomColorscheme", set_random_colorscheme, {})
--vim.cmd("colorscheme retrobox")
--vim.cmd("colorscheme retrobox")
--vim.cmd("colorscheme astra") -- Применение темы
--vim.cmd("colorscheme kanagawa") -- Основная схема
--vim.cmd("colorscheme kanagawa-wave") -- Более светлая версия
--vim.cmd("colorscheme kanagawa-dragon")-- Более тёмная версия
--vim.cmd("colorscheme kanagawa-lotus") -- Альтернативная палитра
--vim.cmd("colorscheme nightfly")
--vim.cmd("colorscheme randomhue")
--vim.cmd("colorscheme kanagawa")
vim.cmd("colorscheme habamax")
--status line disabling
vim.defer_fn(function() vim.opt.laststatus = 0 end, 35)
local laststatus_values = {0, 3}
local current_index = 1
vim.keymap.set('n', '<Leader><Tab>', function()
current_index = current_index % #laststatus_values + 1
vim.opt.laststatus = laststatus_values[current_index]
end, { noremap = true, silent = true })
--vim.opt.number = true -- Включить абсолютную нумерацию слева
--vim.opt.relativenumber = true -- Включить относительную нумерацию справа
vim.api.nvim_set_hl(0, "SignColumn", { bg = "None", fg = "#abb2bf" }) -- прозрачный фон
-- Определение функции для переключения number и relativenumber
local function toggle_number_and_relativenumber()
local number = vim.opt.number:get()
local relativenumber = vim.opt.relativenumber:get()
if number and relativenumber then
-- Если обе включены, выключаем их
vim.opt.number = false
vim.opt.relativenumber = false
else
-- Если обе выключены, включаем их
vim.opt.number = true
vim.opt.relativenumber = true
end
end
-- Привязка функции к <Leader>n
vim.keymap.set('n', '<Leader>n', toggle_number_and_relativenumber, { desc = 'Toggle number and relativenumber' })
vim.cmd [[
autocmd TermOpen * setlocal nonumber norelativenumber
]]
vim.opt.cmdheight = 0
-- disable netrw at the very start of your init.lua
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
-- Включаем поддержку цветовой схемы
vim.opt.termguicolors = true
-- перенос строк по словам
vim.opt.linebreak = true
vim.opt.number = true
vim.opt.relativenumber = true