-- vim.o.background = 'dark' -- 'dark' or 'light' vim.o.background = 'dark' -- 'dark' or 'light' -- vim.g.everforest_background = 'hard' -- vim.cmd('colorscheme everforest') -- vim.cmd('colorscheme nord') -- vim.cmd('colorscheme base16-black-metal') -- vim.cmd('colorscheme dracula') -- vim.cmd('colorscheme onedark') -- vim.cmd('colorscheme nightfox') -- vim.cmd('colorscheme Tomorrow-Night-Bright') vim.cmd('colorscheme doom-one') -- vim.cmd('colorscheme dracula-soft') -- vim.cmd('colorscheme solarized') -- vim.cmd('colorscheme gruvbox') -- vim.cmd('colorscheme iceberg') -- vim.cmd('colorscheme lake') -- vim.cmd('colorscheme tokyonight') -- vim.cmd('highlight Normal guibg=#000000 ctermbg=black') vim.api.nvim_set_hl(0, 'CursorLine', { underline = true }) -- vim.cmd('highlight Normal guibg=none') -- цвет номеров строк vim.cmd('hi linenr guifg=white') -- vim.cmd('hi linenr guifg=white') -- vim.cmd('hi linenr guifg=#D3C6AA') -- telescope local builtin = require('telescope.builtin') -- Функция для поиска файлов, исключая скрытые local function custom_file_search() builtin.find_files({ prompt_title = "< Search without hidden files >", find_command = { "find", ".", "-type", "f", "-not", "-path", "*/.*", "-not", "-path", "./env/*", "-not", "-path", "./fonts/*", "-not", "-path", "*.pyc" }, }) end -- -not \( -path "./dir1" -o -path "./dir2/*" \) -- lualine vim.o.showtabline = 2 require('lualine').setup() -- nerdtree vim.cmd('autocmd FileType nerdtree setlocal relativenumber') -- Open the existing NERDTree on each new tab. vim.cmd("autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif") -- Close the tab if NERDTree is the only window remaining in it. vim.cmd("autocmd BufEnter * if winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif") -- Open the existing NERDTree on each new tab. vim.g['NERDTreeShowHidden'] = 1 vim.g['NERDTreeWinSize'] = 50 -- # nvim-treesitter local status_ok, configs = pcall(require, "nvim-treesitter.configs") if not status_ok then return end configs.setup({ ensure_installed = {"python", "lua", "http", "json", "go"}, ignore_install = { "" }, -- List of parsers to ignore installing sync_install = true, auto_install = true, highlight = { enable = true, -- false will disable the whole extension disable = {}, -- list of language that will be disabled additional_vim_regex_highlighting = false, }, autopairs = { enable = true, }, indent = { enable = true, disable = {} }, }) -- hob local hop = require('hop') hop.setup() local directions = require('hop.hint').HintDirection vim.keymap.set('', 'f', function() hop.hint_char1({ direction = directions.AFTER_CURSOR, current_line_only = true }) end, {remap=true}) vim.keymap.set('', 'F', function() hop.hint_char1({ direction = directions.BEFORE_CURSOR, current_line_only = true }) end, {remap=true}) -- auto pairs -- Настройка символов, для которых будет автоматически вставляться закрывающая скобка require('nvim-autopairs').setup{} -- require("no-neck-pain").setup({ width = 150 }) require("no-neck-pain").setup({ width = 180 }) -- harpoon print(vim.api.nvim_win_get_width(0)) require("harpoon").setup({ menu = { -- width = vim.api.nvim_win_get_width(0) - 4, width = 90 } }) -- golang vim.api.nvim_create_autocmd("FileType", { pattern = "go", callback = function() vim.bo.tabstop = 4 vim.bo.shiftwidth = 4 vim.bo.expandtab = false end, }) -- ---------------------- -- lsp -- ---------------------- local lsp_zero = require('lsp-zero') lsp_zero.preset({ name = 'minimal', set_lsp_keymaps = true, manage_nvim_cmp = true, suggest_lsp_servers = false, }) lsp_zero.on_attach(function(client, bufnr) -- see :help lsp-zero-keybindings -- to learn the available actions lsp_zero.default_keymaps({buffer = bufnr}) end) -- cmp local cmp = require('cmp') local cmp_action = require('lsp-zero').cmp_action() local cmp_format = require('lsp-zero').cmp_format({details = true}) require('luasnip.loaders.from_vscode').lazy_load() cmp.setup({ sources = { {name = 'nvim_lsp'}, {name = 'luasnip'}, }, mapping = cmp.mapping.preset.insert({ [''] = cmp.mapping.confirm({select = true}), }), snippet = { expand = function(args) require('luasnip').lsp_expand(args.body) end, }, formatting = cmp_format, }) -- to learn how to use mason.nvim -- read this: https://github.com/VonHeikemen/lsp-zero.nvim/blob/v3.x/doc/md/guide/integrate-with-mason-nvim.md require('mason').setup({}) require('mason-lspconfig').setup({ ensure_installed = { 'pyright', 'gopls' }, handlers = { function(server_name) require('lspconfig')[server_name].setup({}) end, }, }) -- ---------------------- -- Syntax CHeck -- ---------------------- vim.g.ale_echo_msg_error_str = 'E' vim.g.ale_echo_msg_warning_str = 'W' vim.g.ale_echo_msg_format = '[%linter%] %s [%severity%]' -- ---------------------- -- SHORTCUTS -- ---------------------- -- vim.keymap.set('n','y','"+y') -- vim.keymap.set('n','yy','"+yy') -- vim.keymap.set('n','Y','"+Y') -- vim.keymap.set('x','y','"+y') -- vim.keymap.set('x','Y','"+Y') -- vim.keymap.set('n','yy','"gg+yy') -- vim.keymap.set('n','Y','"gg+yG') -- vim.keymap.set('x','y','"+y') -- vim.keymap.set('x','Y','"+Y') vim.api.nvim_set_keymap('n', 'v', 'p', { noremap = true, silent = true }) -- vim.api.nvim_set_keymap('i', 'v', 'pa', { noremap = true, silent = true }) vim.api.nvim_set_keymap('c', 'v', '"', { noremap = true, silent = true }) vim.keymap.set('n', 'cp', ':NoNeckPain') vim.keymap.set('n', '', 'zz') vim.keymap.set('n', '', 'zz') vim.keymap.set('n', '', 'kzz') vim.keymap.set('n', '', 'jzz') vim.keymap.set('i', 'jk', '') vim.keymap.set('n', '', '', { silent=true }) vim.keymap.set('n', '', ':bn') vim.keymap.set('n', '', ':bp') vim.keymap.set('v', 'p', 'P') vim.keymap.set('n', '"', ':noh', { silent=true }) vim.keymap.set('n', '', ':vertical resize +5') vim.keymap.set('n', '', ':vertical resize -5') vim.keymap.set('n', '', ':resize +5') vim.keymap.set('n', '', ':resize -5') vim.keymap.set('n', '', '') vim.keymap.set('n', '', '') vim.keymap.set('n', '', '') vim.keymap.set('n', '', '') vim.keymap.set('n', 'll', 'zz') vim.keymap.set('n', '', '') vim.keymap.set('i', '', '') vim.keymap.set('v', '', '') -- nerd tree vim.keymap.set('n', '', ':NERDTreeFind') vim.keymap.set('n', '', ':NERDTreeToggle') -- save vim.keymap.set('n', '8', ':w') vim.keymap.set('n', '2', ':q') -- exit without save vim.keymap.set('n', '6', ':q!') -- copy vim.api.nvim_set_keymap('n', 'vl', ':normal!_v$y ', { noremap = true, silent = true }) vim.api.nvim_set_keymap('v', '', 'y', {}) -- move vim.keymap.set('n', '7', '_') vim.keymap.set('n', '9', '$') vim.keymap.set('v', '7', '_') vim.keymap.set('v', '9', '$h') vim.keymap.set('n', '.', 'zz') vim.keymap.set('n', ',', 'zz') vim.keymap.set('v', '.', 'zz') vim.keymap.set('v', ',', 'zz') -- split vim.keymap.set('n', 'sh', ':vs') vim.keymap.set('n', 'sv', ':sp') -- telescope -- vim.keymap.set('n', '', builtin.find_files, {}) vim.keymap.set('n', '', custom_file_search, {}) vim.keymap.set('n', 'pg', builtin.live_grep, {}) vim.keymap.set('n', 'bb', builtin.buffers, {}) vim.keymap.set('n', 'm', builtin.marks, {}) -- harpoon vim.api.nvim_set_keymap("n", "ha", "lua require('harpoon.mark').add_file()", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "hl", "lua require('harpoon.ui').toggle_quick_menu()", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "hn", 'lua require("harpoon.ui").nav_next()', { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "hp", 'lua require("harpoon.ui").nav_prev()', { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "h1", 'lua require("harpoon.ui").nav_file(1)', { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "h2", 'lua require("harpoon.ui").nav_file(2)', { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "h3", 'lua require("harpoon.ui").nav_file(3)', { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "h4", 'lua require("harpoon.ui").nav_file(4)', { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "h5", 'lua require("harpoon.ui").nav_file(5)', { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "h6", 'lua require("harpoon.ui").nav_file(6)', { noremap = true, silent = true })