diff --git a/README.md b/README.md index 7c681c7..de5d373 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,16 @@ Nvim как менеджер заметок! Что еще нужно для с - .ignore - игнорирование вложенных файлов в поиске # ⚠️ Требования + - [fzf](https://github.com/junegunn/fzf?tab=readme-ov-file#installation) - Пакет для fuzzy поиска (необходим) - [chafa](https://github.com/hpjansson/chafa) - Предпросмотр фото прямо в терминале (необязательно) - [zoxide](https://github.com/ajeetdsouza/zoxide) - Пакет для быстрого перехода между директориями (необязательно) +- Также желательно настроить xdg-open/open на открытие файлов типа .docx, pdf и тд. для полной функциональности (nvim-tree позволит запускать файлы в системных приложениях из nvim) # ✨ Установленные плагины -## Obsivim +## Менеджер заметок #### Функционал - [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - Обработка синтаксиса @@ -26,19 +28,21 @@ Nvim как менеджер заметок! Что еще нужно для с - [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) - Менеджер буферов - [mkdx](https://github.com/SidOfc/mkdx) - Утилита для работы с Markdown #### Визуал + - [render-markdown.nvim](https://github.com/MeanderingProgrammer/render-markdown.nvim) - Визуализация Markdown (рекомендуется) - [mutton.vim](https://github.com/gabenespoli/vim-mutton) - ограничение длины строки: отступы слева и справа (рекомендуется) - [nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons) - Иконки (рекомендуется) - [mini.nvim](https://github.com/echasnovski/mini.nvim) - Набор компактных плагинов (опциональная зависимость) ## Дополнения + Данные плагины я установил для себя, чтобы прокачать свой Neovim, но для создания Obsivim необходимы только те, которые представлены выше. Остальные плагины идут по желанию. #### Функционал + - [FixCursorHold.nvim](https://github.com/antoinemadec/FixCursorHold.nvim) - Исправление проблемы CursorHold - [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) - Статусная строка - [mason.nvim](https://github.com/williamboman/mason.nvim) - Менеджер пакетов LSP @@ -91,20 +95,27 @@ Nvim как менеджер заметок! Что еще нужно для с 3 directories, 22 files ``` + + + # ⬇️ Установка + ### linux ```bash mv ~/.config/nvim ~/.config/bkp_nvim git clone ssh://git@root-kit.ru:17458/sam/Obsivim.git nvim nvim . ``` -*также не забудьте установить пакеты fzf и chafa* +*также не забудьте установить пакеты fzf и chafa(если нужно)* # ⌨️ Сочетания клавиш + Leader - пробел + ### Поиск (fzf.lua) + - Leader + f - поиск файлов в текущей директории (files) - Leader + o - поиск недавних файлов (old files) - Leader + g - поиск файлов по содержимому (grep) @@ -149,6 +160,7 @@ Leader - пробел - ctrl+p - обработчик автодополнения ctrl+p ### Остальное + - Leader + tab - скрыть строку состояния - Leader + n - скрыть нумерацию строк @@ -169,6 +181,7 @@ Leader - пробел ###### Помогите + >Бедным детям в Уганде нужна ваша помощь! > >Наберите :help iccf для дополнительной информации diff --git a/init.lua b/init.lua index 5fa710e..ca6ea12 100644 --- a/init.lua +++ b/init.lua @@ -13,7 +13,6 @@ require("config.render-markdown") require("config.indent-blankline") require("config.fzf") ---require("config.noice") require("config.mkdx") require("config.mutton") diff --git a/lazy-lock.json b/lazy-lock.json index 826bd49..6539613 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -3,25 +3,25 @@ "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, - "fzf-lua": { "branch": "main", "commit": "33e704a07d1f79e55e26becf60992971266719fa" }, + "fzf-lua": { "branch": "main", "commit": "15d5cd9a74da7f8739030a5c411c046c70f66a60" }, "gruvbox": { "branch": "master", "commit": "f1ecde848f0cdba877acb0c740320568252cc482" }, "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" }, "kanagawa.nvim": { "branch": "master", "commit": "cfd67b0e1eeaa04302b8c7eb072253d24bf22d84" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" }, + "lualine.nvim": { "branch": "master", "commit": "02d61f515e7d88e1b02366ca972aecf2768d53df" }, "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, - "mini.nvim": { "branch": "main", "commit": "f6fe169821506a59b2407e3c7a3327562600e0e3" }, + "mini.nvim": { "branch": "main", "commit": "b21cd5b1b330844e4c4b93d65e99ecb7c79a63c9" }, "mkdx": { "branch": "master", "commit": "ee667cad506954b706c3fa972fbaaad46b1bf028" }, "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, "nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" }, "nvim-cmp": { "branch": "main", "commit": "c27370703e798666486e3064b64d59eaf4bdc6d5" }, - "nvim-lspconfig": { "branch": "master", "commit": "fd26f8626c03b424f7140d454031d1dcb8d23513" }, + "nvim-lspconfig": { "branch": "master", "commit": "8a1529e46eef5efc86c34c8d9bdd313abc2ecba0" }, "nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" }, "nvim-tree.lua": { "branch": "master", "commit": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4" }, - "nvim-treesitter": { "branch": "master", "commit": "ffd284c4706d91c0d94916995f584b22ce89afcb" }, + "nvim-treesitter": { "branch": "master", "commit": "683816f14718b257666b29f792a8d330936cf5c1" }, "nvim-web-devicons": { "branch": "master", "commit": "ab4cfee554e501f497bce0856788d43cf2eb93d7" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, - "render-markdown.nvim": { "branch": "main", "commit": "81374ffd26f9a9d5f44274a9e7e60547b5fd106f" }, + "render-markdown.nvim": { "branch": "main", "commit": "c065031d030955e1d071a7fcdd8c59e0fd2f0343" }, "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, "vim-mutton": { "branch": "master", "commit": "1601de411cfebcb358ab4ed469190d861901ce70" }, "vim-nightfly-colors": { "branch": "master", "commit": "43cd633951ea75cad622a881953b02094fdd4b46" }, diff --git a/lua/config/common-settings.lua b/lua/config/common-settings.lua index a54d7f9..3ef9dfc 100644 --- a/lua/config/common-settings.lua +++ b/lua/config/common-settings.lua @@ -88,16 +88,6 @@ vim.opt.showmatch = true --------------------------------------------------------------------------[[VISUAL]]-------------------------------------------------------------------------- vim.o.laststatus = 0 -- Отключает строку состояния ---vim.cmd("colorscheme tokyonight-night") ---vim.cmd("colorscheme gruvbox") ---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") -- init.lua @@ -110,7 +100,6 @@ local function set_random_colorscheme() "kanagawa", "kanagawa-wave", "kanagawa-dragon", - "kanagawa-lotus", "nightfly", "randomhue", "darkblue", @@ -120,26 +109,26 @@ local function set_random_colorscheme() "slate", "zaibatsu", } - -- Инициализация генератора случайных чисел math.randomseed(os.time()) - - -- Генерация случайного индекса для списка colorschemes local random_index = math.random(1, #colorschemes) - - -- Применение случайной цветовой схемы vim.cmd("colorscheme " .. colorschemes[random_index]) - - end - --- Запускаем функцию при старте Neovim set_random_colorscheme() - --- (Опционально) Добавляем команду для ручного вызова функции vim.api.nvim_create_user_command("RandomColorscheme", set_random_colorscheme, {}) +--vim.cmd("colorscheme tokyonight-night") +--vim.cmd("colorscheme gruvbox") +--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 slate") diff --git a/lua/config/fzf.lua b/lua/config/fzf.lua index 8786f49..25e5cc0 100644 --- a/lua/config/fzf.lua +++ b/lua/config/fzf.lua @@ -1,3 +1,4 @@ + local actions = require("fzf-lua.actions") require("fzf-lua").setup({ @@ -49,4 +50,3 @@ vim.api.nvim_set_keymap('n', 'z', ':FzfLua zoxide', { noremap = true vim.api.nvim_set_keymap('n', 'o', ':FzfLua oldfiles', { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', 'r', ':FzfLua buffers', { noremap = true, silent = true }) - diff --git a/lua/config/noice.lua b/lua/config/noice.lua deleted file mode 100644 index bfd4dd8..0000000 --- a/lua/config/noice.lua +++ /dev/null @@ -1,31 +0,0 @@ -require("noice").setup({ - views = { - cmdline_popup = { - position = { - row = "50%", -- Центрируем по вертикали - col = "50%", -- Центрируем по горизонтали - }, - }, - }, - presets = { - bottom_search = true, -- Перемещение поиска вниз - command_palette = true, -- Палитра команд - long_message_to_split = true, -- Длинные сообщения в отдельное окно - }, - 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/config/nvim-tree.lua b/lua/config/nvim-tree.lua index 2cb55ff..a890506 100644 --- a/lua/config/nvim-tree.lua +++ b/lua/config/nvim-tree.lua @@ -4,7 +4,7 @@ require("nvim-tree").setup({ sorter = "case_sensitive", }, view = { - width = 50, + width = 40, }, renderer = { group_empty = true, @@ -28,7 +28,7 @@ require("nvim-tree").setup({ -- Define file extensions to handle with system open local special_extensions = { - ".pdf", ".png", ".jpeg", ".jpg", ".doc", ".docx" + ".pdf", ".png", ".jpeg", ".jpg", ".doc", ".docx", ".epub", ".fb2" } -- Helper function to check file extension @@ -57,3 +57,12 @@ require("nvim-tree").setup({ -- Глобальные бинды для nvim-tree vim.keymap.set("n", "e", ":NvimTreeToggle", { noremap = true, silent = true }) vim.keymap.set("n", "q", ":NvimTreeFindFile", { noremap = true, silent = true }) + + +vim.api.nvim_create_autocmd("DirChanged", { + callback = function() + local new_dir = vim.fn.getcwd() -- Получаем текущую рабочую директорию + require("nvim-tree.api").tree.change_root(new_dir) + -- Здесь можно добавить любые действия, например, логирование или обновление плагинов + end, +}) diff --git a/lua/config/render-markdown.lua b/lua/config/render-markdown.lua index 18f2a71..b0b23fc 100644 --- a/lua/config/render-markdown.lua +++ b/lua/config/render-markdown.lua @@ -1,18 +1,51 @@ require('render-markdown').setup({ - --для vim wiki heading = { - width = 'block', - left_pad = 2, - right_pad = 2, - border = {true,true,true,true,false,false}, - border_virtual = true, + icons = { '' }, position = 'inline', - min_width = {50,40,30,20,10,5}, + backgrounds = { + }, }, + dash = { icon = '------ ' }, sign = { enabled = false }, + quote = { repeat_linebreak = true }, + link = { + enabled = true, + render_modes = false, + footnote = { + superscript = false, + prefix = '', + suffix = '', + }, + image = '󰥶 ', + email = '󰀓 ', + hyperlink = '', + highlight = 'RenderMarkdownLink', + wiki = { + icon = '󱗖 ', + body = function() + return nil + end, + highlight = 'RenderMarkdownWikiLink', + }, + custom = { + web = { pattern = '^http', icon = '󰖟 ' }, + discord = { pattern = 'discord%.com', icon = '󰙯 ' }, + github = { pattern = 'github%.com', icon = '󰊤 ' }, + gitlab = { pattern = 'gitlab%.com', icon = '󰮠 ' }, + google = { pattern = 'google%.com', icon = '󰊭 ' }, + neovim = { pattern = 'neovim%.io', icon = ' ' }, + reddit = { pattern = 'reddit%.com', icon = '󰑍 ' }, + stackoverflow = { pattern = 'stackoverflow%.com', icon = '󰓌 ' }, + wikipedia = { pattern = 'wikipedia%.org', icon = '󰖬 ' }, + youtube = { pattern = 'youtube%.com', icon = '󰗃 ' }, + }, + }, }) + + +-- переход по ссылкам vim.keymap.set('n', 'gl', function() FindHttpOrWwwInLine() end, { silent = true }) function FindHttpOrWwwInLine() @@ -27,3 +60,4 @@ function FindHttpOrWwwInLine() end end +