diff --git a/README.md b/README.md index 8f8186b..ada6ed2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ObsiVim +# 🔥ObsiVim Nvim как менеджер заметок! Что еще нужно для счастья ? @@ -7,10 +7,86 @@ Nvim как менеджер заметок! Что еще нужно для с - Меню быстрого перехода - Глобальный поиск по содержимому файлов +# ⚠️ Требования +- fzf - Пакет для fuzzy поиска (необходим) +- [chafa](https://github.com/hpjansson/chafa) - Предпросмотр фото прямо в терминале (необязательно) + + +# ✨Установленные плагины + +### Функционал + +##### Obsivim +- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - Обработка синтаксиса +- [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - Система автодополнения +- [fzf-lua](https://github.com/ibhagwan/fzf-lua) - Fuzzy finder +- [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) - Источник данных для nvim-cmp +- [nvim-tree.lua](https://github.com/kyazdani42/nvim-tree.lua) - Проводник файлов +- [plenary.nvim](https://github.com/nvim-lua/plenary.nvim) - Библиотека Lua функций +- [bufferline.nvim](https://github.com/akinsho/bufferline.nvim) - Менеджер буферов + +##### Дополнения +- [FixCursorHold.nvim](https://github.com/antoinemadec/FixCursorHold.nvim) - Исправление проблемы CursorHold +- [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) - Интеграция с Git +- [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) - Статусная строка +- [mason.nvim](https://github.com/williamboman/mason.nvim) - Менеджер пакетов LSP +- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - Конфигурация LSP серверов +- [cmp-nvim-lsp-signature-help](https://github.com/hrsh7th/cmp-nvim-lsp-signature-help) - Подсказки для сигнатур функций + +### Визуал +- [nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons) - Иконки (рекомендуется) +- [render-markdown.nvim](https://github.com/MeanderingProgrammer/render-markdown.nvim) - Визуализация Markdown (рекомендуется) +- [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) - Визуализация отступов +- [tokyonight.nvim](https://github.com/folke/tokyonight.nvim) - Цветовая схема Tokyo Night +- [gruvbox](https://github.com/morhetz/gruvbox) - Цветовая схема Gruvbox +- [vim-nightfly-colors](https://github.com/bluz71/vim-nightfly-colors) - Цветовая схема Nightfly +- [kanagawa.nvim](https://github.com/rebelot/kanagawa.nvim) - Цветовая схема Kanagawa +- [which-key.nvim](https://github.com/folke/which-key.nvim) - Показывает доступные комбинации клавиш + + +# 📖Структура + +```bash +. +├── init.lua +├── lazy-lock.json +├── lua +│   ├── config +│   │   ├── bufferline.lua +│   │   ├── cmp-nvim-lsp.lua +│   │   ├── common-settings.lua +│   │   ├── fzf.lua +│   │   ├── gitsigns.lua +│   │   ├── indent-blankline.lua +│   │   ├── lazy.lua +│   │   ├── lualine.lua +│   │   ├── mason.lua +│   │   ├── nvim-cmp.lua +│   │   ├── nvim-lspconfig.lua +│   │   ├── nvim-tree.lua +│   │   ├── nvim-treesitter.lua +│   │   ├── render-markdown.lua +│   │   ├── telescope.lua +│   │   ├── vimtex.lua +│   │   └── which-key.lua +│   └── plugins.lua +└── README.md +``` +# ⬇️ Установка + +### linux +```bash +mv ~/.config/nvim ~/.config/bkp_nvim +git clone ssh://git@root-kit.ru:17458/sam/Obsivim.git nvim +nvim . +``` +*также не забудьте установить пакеты fzf и chafa* + + + +>Бедным детям в Уганде нужна ваша помощь! +> +>Наберите :help iccf для дополнительной информации ---- -# Требования -- fzf (пакет для fuzzy поиска) -- [chafa](https://github.com/hpjansson/chafa) (предпросмотр фото прямо в терминале) diff --git a/init.lua b/init.lua index ab466b7..6ef49cd 100644 --- a/init.lua +++ b/init.lua @@ -14,3 +14,5 @@ require("config.gitsigns") require("config.which-key") require("config.indent-blankline") require("config.fzf") +require("config.noice") +require("config.mkdx") diff --git a/lazy-lock.json b/lazy-lock.json index c81e096..9d89fec 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -3,7 +3,7 @@ "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" }, - "fzf-lua": { "branch": "main", "commit": "9b84b53f3297d4912d7eb95b979e9b27e2e61281" }, + "fzf-lua": { "branch": "main", "commit": "ae9378a48fcf07475d93b3dc7775c2aab0b9fa7b" }, "gitsigns.nvim": { "branch": "main", "commit": "4c40357994f386e72be92a46f41fc1664c84c87d" }, "gruvbox": { "branch": "master", "commit": "f1ecde848f0cdba877acb0c740320568252cc482" }, "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" }, @@ -11,15 +11,19 @@ "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" }, "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, - "mini.nvim": { "branch": "main", "commit": "e554890210cd29d017d6a0c1b1a46f995dcf9e64" }, + "mini.nvim": { "branch": "main", "commit": "3a354c754656538ad76d1add93ca21e75b7f3181" }, + "mkdx": { "branch": "master", "commit": "ee667cad506954b706c3fa972fbaaad46b1bf028" }, + "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, + "nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" }, "nvim-cmp": { "branch": "main", "commit": "5a11682453ac6b13dbf32cd403da4ee9c07ef1c3" }, - "nvim-lspconfig": { "branch": "master", "commit": "d793c5cb0206d976a38e70e62479a60ba87722ca" }, + "nvim-lspconfig": { "branch": "master", "commit": "62c5fac4c59be9e41b92ef62f3bb0fbdae3e2d9e" }, + "nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" }, "nvim-tree.lua": { "branch": "master", "commit": "6709463b2d18e77f7a946027917aa00d4aaed6f4" }, - "nvim-treesitter": { "branch": "master", "commit": "8bc635a25f581d42b0a0e5ba8870bd73244dcdea" }, + "nvim-treesitter": { "branch": "master", "commit": "99487eb34a397befce8182ff63347a21c5f4b881" }, "nvim-web-devicons": { "branch": "master", "commit": "1020869742ecb191f260818234517f4a1515cfe8" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, - "render-markdown.nvim": { "branch": "main", "commit": "1cd546e96cb8520a148610ca86596ed238eeb936" }, + "render-markdown.nvim": { "branch": "main", "commit": "b57d51d760f5e4f520414dbeb6dee3ec1ae07a83" }, "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, - "vim-nightfly-colors": { "branch": "master", "commit": "c27e76b1adc562b60415ec3688f610206020d64e" }, + "vim-nightfly-colors": { "branch": "master", "commit": "e4fd65b08c5ae590511d77c2ad26c59c353fc64a" }, "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } } diff --git a/lua/config/common-settings.lua b/lua/config/common-settings.lua index e341dd7..c28444a 100644 --- a/lua/config/common-settings.lua +++ b/lua/config/common-settings.lua @@ -101,10 +101,10 @@ vim.api.nvim_set_keymap('n', '6', "0i###### $", { noremap = true, s -- Бинд для VISUAL MODE: Добавление * в начало и конец выделенного текста -vim.api.nvim_set_keymap('v', 'i', "``>a*", { noremap = true, silent = true }) -vim.api.nvim_set_keymap('v', 'b', "``>a**", { noremap = true, silent = true }) +--vim.api.nvim_set_keymap('v', 'i', "``>a*", { noremap = true, silent = true }) +--vim.api.nvim_set_keymap('v', 'b', "``>a**", { noremap = true, silent = true }) -vim.api.nvim_set_keymap('v', '`', "````bash`>a```", { noremap = true, silent = true }) +--vim.api.nvim_set_keymap('v', '`', "````bash`>a```", { noremap = true, silent = true }) function Table(mode, n) @@ -162,7 +162,8 @@ end --vim.cmd("colorscheme kanagawa-wave") -- Более светлая версия --vim.cmd("colorscheme kanagawa-dragon")-- Более тёмная версия --vim.cmd("colorscheme kanagawa-lotus") -- Альтернативная палитра -vim.cmd("colorscheme nightfly") +--vim.cmd("colorscheme nightfly") +vim.cmd("colorscheme randomhue") -- Включение относительной нумерации строк diff --git a/lua/config/mkdx.lua b/lua/config/mkdx.lua new file mode 100644 index 0000000..f9717c9 --- /dev/null +++ b/lua/config/mkdx.lua @@ -0,0 +1,25 @@ +-- Файл: init.lua (или lua/mkdx_config.lua, если вы используете модульную структуру) + +-- Создаем группу автокоманд для mkdx +local function setup_mkdx_mappings() + -- Отключаем стандартные маппинги плагина + vim.api.nvim_set_keymap('n', '(mkdx-gen-or-upd-toc)', '', { noremap = true }) + vim.api.nvim_set_keymap('n', '(mkdx-text-italic-n)', '', { noremap = true }) + vim.api.nvim_set_keymap('n', '(mkdx-toggle-checkbox-n)', '', { noremap = true }) + + -- Переназначаем leader/ на leaderi (Italicize text) + vim.api.nvim_set_keymap('n', 'i', '(mkdx-text-italic-n)', { noremap = true, silent = true }) + vim.api.nvim_set_keymap('v', 'i', '(mkdx-text-italic-v)', { noremap = true, silent = true }) + + -- Переназначаем leadert на leaderw (Toggle checklist item) + vim.api.nvim_set_keymap('n', 'w', '(mkdx-toggle-checklist-n)', { noremap = true, silent = true }) + vim.api.nvim_set_keymap('v', 'w', '(mkdx-toggle-checklist-v)', { noremap = true, silent = true }) +end + +-- Создаем автокоманду для применения настроек после загрузки всех файлов +vim.cmd [[ +augroup MkdxMappings + autocmd! + autocmd VimEnter * if &filetype == 'markdown' || &filetype == 'mkdx' | lua setup_mkdx_mappings() | endif +augroup END +]] diff --git a/lua/config/noice.lua b/lua/config/noice.lua new file mode 100644 index 0000000..0e6fbeb --- /dev/null +++ b/lua/config/noice.lua @@ -0,0 +1,18 @@ +require("noice").setup({ + lsp = { + -- override markdown rendering so that **cmp** and other plugins use **Treesitter** + override = { + ["vim.lsp.util.convert_input_to_markdown_lines"] = true, + ["vim.lsp.util.stylize_markdown"] = true, + ["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp + }, + }, + -- you can enable a preset for easier configuration + presets = { + bottom_search = true, -- use a classic bottom cmdline for search + command_palette = true, -- position the cmdline and popupmenu together + long_message_to_split = true, -- long messages will be sent to a split + inc_rename = false, -- enables an input dialog for inc-rename.nvim + lsp_doc_border = false, -- add a border to hover docs and signature help + }, +}) diff --git a/lua/plugins.lua b/lua/plugins.lua index a03d04e..97c9304 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -67,6 +67,16 @@ return { end, }, + { + "folke/noice.nvim", -- Плагин для улучшения командной строки и сообщений + event = "VeryLazy", -- Загружается при старте NeoVim + dependencies = { + -- Требуется для UI-компонентов + "MunifTanjim/nui.nvim", + -- Опционально: для замены стандартных уведомлений NeoVim + "rcarriga/nvim-notify", + }, + }, { @@ -88,9 +98,10 @@ return { -- dependencies = { "echasnovski/mini.icons" }, opts = {} }, - - - + + { + 'SidOfc/mkdx' + }, {"nvim-lualine/lualine.nvim", dependencies = { "kyazdani42/nvim-web-devicons", optional = true } }, { "morhetz/gruvbox" },