Compare commits

..

19 Commits

Author SHA1 Message Date
eaad2e675c check rtp disable, lualine up disable duration 2025-08-16 21:28:48 +03:00
2e7e64def1 something... 2025-04-23 00:25:36 +03:00
c180adf85b markview
mend
2025-04-15 21:10:09 +03:00
6dd726ea14 markview 2025-04-15 20:44:47 +03:00
115e0b93c5 blackwritter integration 2025-04-12 15:55:11 +03:00
73175fd40c hx 2025-04-10 22:48:33 +03:00
dde7d87052 render markdown only line render 2025-04-03 15:18:04 +03:00
340430a5cd выход на q работает нормально 2025-03-17 01:09:45 +03:00
c42c23d5a8 gitignore 2025-03-16 19:00:46 +03:00
e7d4e1c5c0 - Связал nvim-tree и переход по директориям (zoxide и fzf lua )
- quotes headings md render
2025-03-13 23:16:31 +03:00
6f9fcff8fa - random colorscheme (common-settings)
- заменить Enter на Tab в cmp-path
- Теперь nvim tree стал более userfriendly: Enter открывает директорию как корневую, чтобы посмотреть просто ее содержимое Tab, так же Enter заменяет s(открытие файлов типа docx,pdf и тд. во внешнем приложении) так же удалены некоторые лишние на мой взгляд плагины: wichkey vimtex(возможно в будущем верну)
2025-03-09 07:45:59 +03:00
3ffda93c33 mutton + cmdline + headings + new name of nvim 2025-03-07 20:39:40 +03:00
ad70695803 - ограничение длины строки в md через mutton(два буфера) 2025-03-06 13:09:29 +03:00
7007025a20 Подсветка синтаксиса: C++/С/Rust 2025-03-05 16:57:55 +03:00
d4debecc55 - README - открытие ссылок через ln - отключение плагина bufferline тк есть замена - fzf lua 2025-03-05 15:11:34 +03:00
c8015ebb31 ДА 2025-03-02 20:01:20 +03:00
3dd801888d README + добавлен функционал .ignore в fzf lua files 2025-03-02 15:57:08 +03:00
2ac7303469 zoxide 2025-03-01 13:25:22 +03:00
70347b5042 хуйню какую то сделал 2025-03-01 05:23:24 +03:00
23 changed files with 908 additions and 287 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
lazy-lock.json

View File

@ -1,50 +1,70 @@
# 🔥ObsiVim
# SexNvim
Nvim как менеджер заметок! Что еще нужно для счастья ? Nvim как менеджер заметок! Что еще нужно для счастья ?
- Рендеринг markdown - Рендеринг markdown
- Дети - Дети
- Меню быстрого перехода - Размытый поиск файлов
- Глобальный поиск по содержимому файлов - Поиск по содержимому файлов
- .ignore - игнорирование вложенных файлов в поиске
# ⚠️ Требования # Требования
- fzf - Пакет для fuzzy поиска (необходим)
- [fzf](https://github.com/junegunn/fzf?tab=readme-ov-file#installation) - Пакет для fuzzy поиска (необходим)
- [chafa](https://github.com/hpjansson/chafa) - Предпросмотр фото прямо в терминале (необязательно) - [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) - Обработка синтаксиса - [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - Обработка синтаксиса
- [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - Система автодополнения - [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - Система автодополнения
- [fzf-lua](https://github.com/ibhagwan/fzf-lua) - Fuzzy finder - [fzf-lua](https://github.com/ibhagwan/fzf-lua) - Fuzzy finder
- [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) - Источник данных для nvim-cmp - [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) - Источник данных для nvim-cmp
- [nvim-tree.lua](https://github.com/kyazdani42/nvim-tree.lua) - Проводник файлов - [nvim-tree.lua](https://github.com/kyazdani42/nvim-tree.lua) - Проводник файлов
- [plenary.nvim](https://github.com/nvim-lua/plenary.nvim) - Библиотека 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 - [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) - Статусная строка - [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) - Статусная строка
- [mason.nvim](https://github.com/williamboman/mason.nvim) - Менеджер пакетов LSP - [mason.nvim](https://github.com/williamboman/mason.nvim) - Менеджер пакетов LSP
- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - Конфигурация LSP серверов - [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - Конфигурация LSP серверов
- [cmp-nvim-lsp-signature-help](https://github.com/hrsh7th/cmp-nvim-lsp-signature-help) - Подсказки для сигнатур функций - [cmp-nvim-lsp-signature-help](https://github.com/hrsh7th/cmp-nvim-lsp-signature-help) - Подсказки для сигнатур функций
- [suda.vim](https://github.com/lambdalisue/suda.vim) - Редактирование файлов с правами sudo
- [zoxide.vim](https://github.com/nanotee/zoxide.vim) - Интеграция zoxide для быстрого перехода между директориями
#### Визуал
### Визуал
- [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) - Визуализация отступов - [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) - Визуализация отступов
- [tokyonight.nvim](https://github.com/folke/tokyonight.nvim) - Цветовая схема Tokyo Night - [tokyonight.nvim](https://github.com/folke/tokyonight.nvim) - Цветовая схема Tokyo Night
- [gruvbox](https://github.com/morhetz/gruvbox) - Цветовая схема Gruvbox - [gruvbox](https://github.com/morhetz/gruvbox) - Цветовая схема Gruvbox
- [vim-nightfly-colors](https://github.com/bluz71/vim-nightfly-colors) - Цветовая схема Nightfly - [vim-nightfly-colors](https://github.com/bluz71/vim-nightfly-colors) - Цветовая схема Nightfly
- [kanagawa.nvim](https://github.com/rebelot/kanagawa.nvim) - Цветовая схема Kanagawa - [kanagawa.nvim](https://github.com/rebelot/kanagawa.nvim) - Цветовая схема Kanagawa
- [which-key.nvim](https://github.com/folke/which-key.nvim) - Показывает доступные комбинации клавиш - [which-key.nvim](https://github.com/folke/which-key.nvim) - Показывает доступные комбинации клавиш
- [noice.nvim](https://github.com/folke/noice.nvim) - Улучшение командной строки и сообщений
# 📖Структура
# Структура
```bash ```bash
. .
@ -56,11 +76,12 @@ Nvim как менеджер заметок! Что еще нужно для с
│   │   ├── cmp-nvim-lsp.lua │   │   ├── cmp-nvim-lsp.lua
│   │   ├── common-settings.lua │   │   ├── common-settings.lua
│   │   ├── fzf.lua │   │   ├── fzf.lua
│   │   ├── gitsigns.lua
│   │   ├── indent-blankline.lua │   │   ├── indent-blankline.lua
│   │   ├── lazy.lua │   │   ├── lazy.lua
│   │   ├── lualine.lua │   │   ├── lualine.lua
│   │   ├── mason.lua │   │   ├── mason.lua
│   │   ├── mkdx.lua
│   │   ├── noice.lua
│   │   ├── nvim-cmp.lua │   │   ├── nvim-cmp.lua
│   │   ├── nvim-lspconfig.lua │   │   ├── nvim-lspconfig.lua
│   │   ├── nvim-tree.lua │   │   ├── nvim-tree.lua
@ -71,8 +92,14 @@ Nvim как менеджер заметок! Что еще нужно для с
│   │   └── which-key.lua │   │   └── which-key.lua
│   └── plugins.lua │   └── plugins.lua
└── README.md └── README.md
3 directories, 22 files
``` ```
# ⬇️ Установка
# Установка
### linux ### linux
```bash ```bash
@ -80,17 +107,23 @@ mv ~/.config/nvim ~/.config/bkp_nvim
git clone ssh://git@root-kit.ru:17458/sam/Obsivim.git nvim git clone ssh://git@root-kit.ru:17458/sam/Obsivim.git nvim
nvim . nvim .
``` ```
*также не забудьте установить пакеты fzf и chafa* *также не забудьте установить пакеты fzf и chafa(если нужно)*
# ⌨️ Сочетания клавиш # Сочетания клавиш
Leader - пробел Leader - пробел
### Поиск (fzf.lua) ### Поиск (fzf.lua)
- Leader + o - поиск файлов по имени
- Leader + f - поиск файлов по содержимому - Leader + f - поиск файлов в текущей директории (files)
- Leader + o - поиск недавних файлов (old files)
- Leader + g - поиск файлов по содержимому (grep)
- Leader + z - переход между директориями (zoxide)
- Leader + r - переход между буферами
### Markdown-форматирование(mkdx) ### Markdown-форматирование(mkdx)
@ -104,17 +137,17 @@ Leader - пробел
- Leader + ` - обернуть инлайн кодом - Leader + ` - обернуть инлайн кодом
- Leader + k - переключить горячие клавиши - Leader + k - переключить горячие клавиши
- Leader + ll - переключить элемент списка - Leader + ll - переключить элемент списка
- Leader + lt - переключить элемент чеклиста - Leader + lc - переключить элемент чеклиста
- Leader + / - сгенерировать/обновить TOC - Leader + / - сгенерировать/обновить TOC
- Leader + s - перечеркнутый текст - Leader + s - перечеркнутый текст
- Leader + ln - обернуть ссылкой - Leader + ln - обернуть ссылкой
- Leader + t - переключить элемент чекбокса
- Leader + , - преобразовать CSV в таблицу (в режиме визуального выделения) - Leader + , - преобразовать CSV в таблицу (в режиме визуального выделения)
- Leader + j - перейти к заголовку - Leader + j - перейти к заголовку
- Leader + I - быстрый TOC - Leader + I - быстрый TOC
- Leader + L - быстрая проверка мертвых фрагментов ссылок - Leader + L - быстрая проверка мертвых фрагментов ссылок
- Leader + gf - перейти к файлу - Leader + gf - перейти к файлу
- Leader + gx - открыть внешний файл - Leader + gx - открыть внешний файл
- Leader + gl - открыть ссылку
- Tab - отступ нумерованного элемента списка - Tab - отступ нумерованного элемента списка
- Shift + Tab - уменьшение отступа нумерованного элемента списка - Shift + Tab - уменьшение отступа нумерованного элемента списка
- ]] - переход к следующему заголовку - ]] - переход к следующему заголовку
@ -127,9 +160,29 @@ Leader - пробел
- ctrl+n - обработчик автодополнения ctrl+n - ctrl+n - обработчик автодополнения ctrl+n
- ctrl+p - обработчик автодополнения ctrl+p - ctrl+p - обработчик автодополнения ctrl+p
### Остальное
- Leader + tab - скрыть строку состояния
- Leader + n - скрыть нумерацию строк
***Так же для своего хранилища заметок можно настроить файл .ignore***
Например для всех файлов кроме формата .md:
```git {.ignore}
# Игнорировать все файлы
*
# Кроме .md
!*.md
# Разрешить все папки
!*/
```
###### Помогите ###### Помогите
>Бедным детям в Уганде нужна ваша помощь! >Бедным детям в Уганде нужна ваша помощь!
> >
>Наберите :help iccf<Enter> для дополнительной информации >Наберите :help iccf<Enter> для дополнительной информации

View File

@ -1,20 +1,24 @@
require("config.lazy") require("config.lazy")
require("config.common-settings") require("config.common-settings")
require("config.mason") require("config.mason")
require("config.nvim-tree") require("config.nvim-tree")
--require("config.render-markdown")
require("config.markview")
require("config.nvim-treesitter") require("config.nvim-treesitter")
require("config.lualine") require("config.lualine")
require("config.nvim-cmp") require("config.nvim-cmp")
require("config.nvim-lspconfig") require("config.nvim-lspconfig")
require("config.bufferline")
require("config.vimtex")
require("config.render-markdown")
require("config.which-key")
require("config.indent-blankline") require("config.indent-blankline")
require("config.fzf") require("config.fzf")
require("config.noice")
require("config.mkdx") require("config.mkdx")
--require("config.mutton")
require('config.cigan')
vim.api.nvim_set_keymap('n', '<leader><CR>', [[<cmd>lua require('config.cigan').run_script()<CR>]], { noremap = true, silent = true })

View File

@ -1,29 +0,0 @@
{
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
"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": "ae9378a48fcf07475d93b3dc7775c2aab0b9fa7b" },
"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" },
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
"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": "a3f8422b752e03334dbaf4a46940d8aee0acdebf" },
"nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" },
"nvim-tree.lua": { "branch": "master", "commit": "6709463b2d18e77f7a946027917aa00d4aaed6f4" },
"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": "595ac4f7e7c0eaba7bf1d8fd6ec0f6ac91c7e33b" },
"suda.vim": { "branch": "master", "commit": "9adda7d195222d4e2854efb2a88005a120296c47" },
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
"vim-nightfly-colors": { "branch": "master", "commit": "e4fd65b08c5ae590511d77c2ad26c59c353fc64a" },
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
}

View File

@ -1,4 +1,9 @@
require("bufferline").setup{} require("bufferline").setup{
options = {
tab_size = 30
}
}
-- Настройка биндов узнать что действительно нажимается - перейти в режим вставки нажать <c-v> и потом необходимое сочетание -- Настройка биндов узнать что действительно нажимается - перейти в режим вставки нажать <c-v> и потом необходимое сочетание
vim.keymap.set('n', '<A-;>', ':BufferLineCycleNext<CR>', { noremap = true, silent = true }) vim.keymap.set('n', '<A-;>', ':BufferLineCycleNext<CR>', { noremap = true, silent = true })
@ -11,20 +16,3 @@ vim.keymap.set('t', '<A-w>', '<C-\\><C-N>:bd!<CR>', { noremap = true, silent = t
-- Добавление выхода из режима вставки в терминале -- Добавление выхода из режима вставки в терминале
vim.keymap.set('t', '<A-i>', '<C-\\><C-N>', { noremap = true, silent = true }) vim.keymap.set('t', '<A-i>', '<C-\\><C-N>', { noremap = true, silent = true })
local function toggle_bufferline()
local bufferline = require("bufferline")
local api = vim.api
-- Получаем текущие опции Bufferline
local options = bufferline.get_options()
-- Переключаем значение always_show_bufferline
options.always_show_bufferline = not options.always_show_bufferline
-- Обновляем конфигурацию Bufferline
bufferline.setup({ options = options })
-- Очищаем кэш и перерисовываем интерфейс
api.nvim_command("redraw")
end

31
lua/config/cigan.lua Normal file
View File

@ -0,0 +1,31 @@
local M = {}
function M.run_script()
-- Проверяем, что открыт именно файл ~/desktop/govno/ui.md
local current_file = vim.fn.expand('%:p') -- Полный путь к текущему файлу
local target_file = vim.fn.expand('~/desktop/govno/ui.md')
if current_file ~= target_file then
print("Ошибка: Открыт не тот файл. Должен быть открыт " .. target_file)
return
end
-- Сохраняем файл
vim.cmd('w')
-- Запускаем скрипт
print("Ожидайте ответа")
local script_path = vim.fn.expand('~/dev/python/interface.py')
vim.fn.jobstart({'python3', script_path}, {
on_exit = function()
vim.cmd('e') -- Перезагружаем файл после завершения скрипта
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<S-g>", true, false, true), 'n', false)
print("Отвечено!")
end
})
end
return M

View File

@ -1,10 +1,10 @@
--------------------------------------------------------------------------[[ФУНКЦИОНАЛ]]-------------------------------------------------------------------------- --------------------------------------------------------------------------[[FUNC]]-------------------------------
-- Установка клавиши Leader на пробел -- Установка клавиши Leader на пробел
vim.g.mapleader = " " vim.g.mapleader = " "
vim.cmd([[autocmd BufRead,BufNewFile config_zero setfiletype i3config]])
-- CUSTOM MOVE -- CUSTOM MOVE
-- NORMAL -- NORMAL
vim.keymap.set('n', 'h', '<nop>', { noremap = true, silent = true }) vim.keymap.set('n', 'h', '<nop>', { noremap = true, silent = true })
@ -20,22 +20,24 @@ vim.keymap.set('v', 'l', 'k', { noremap = true, silent = true })
vim.keymap.set('v', ';', 'l', { noremap = true, silent = true }) vim.keymap.set('v', ';', 'l', { noremap = true, silent = true })
-- Настройка сохранения на Ctrl+S
vim.api.nvim_set_keymap('n', '<C-s>', ':w<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('i', '<C-s>', '<Esc>:w<CR>a', { noremap = true, silent = true })
-- Выход из сессии -- buffers
vim.api.nvim_set_keymap('n', '<C-q>', ':q!<CR>', { noremap = true, silent = true }) vim.keymap.set("n", "<C-w>j", "<C-w>h", { noremap = true, silent = true })
vim.api.nvim_set_keymap('i', '<C-q>', '<Esc>:q!<CR>', { noremap = true, silent = true }) vim.keymap.set("n", "<C-w>k", "<C-w>j", { noremap = true, silent = true })
vim.keymap.set("n", "<C-w>l", "<C-w>k", { noremap = true, silent = true })
vim.keymap.set("n", "<C-w>;", "<C-w>l", { noremap = true, silent = true })
-- Настройка выхода из режима ввода через Atl+i -- Настройка выхода из режима ввода через Atl+i
vim.api.nvim_set_keymap('i', '<A-i>', '<Esc>', { noremap = true, silent = true }) vim.api.nvim_set_keymap('i', '<A-i>', '<Esc>', { noremap = true, silent = true })
-- Настройка терминала -- Настройка терминала
vim.api.nvim_set_keymap('n', '<Space>t', ':terminal<CR>', { noremap = true, silent = true }) vim.api.nvim_set_keymap('t', '<A-i>', '<C-\\><C-n>', { noremap = true, silent = true })
-- установить время ожидания в 200 миллисекунд -- установить время ожидания в 200 миллисекунд
vim.o.timeoutlen = 300 vim.o.timeoutlen = 1000
@ -92,12 +94,13 @@ vim.opt.showmatch = true
--------------------------------------------------------------------------[[VISUAL]]--------------------------------------------------------------------------
--------------------------------------------------------------------------[[ВИЗУАЛ]]--------------------------------------------------------------------------
vim.o.laststatus = 0 -- Отключает строку состояния vim.o.laststatus = 0 -- Отключает строку состояния
--vim.cmd("colorscheme tokyonight")
vim.cmd("colorscheme gruvbox")
--vim.cmd("colorscheme retrobox")
--vim.cmd("colorscheme gruvbox")
--vim.cmd("colorscheme astra") -- Применение темы --vim.cmd("colorscheme astra") -- Применение темы
--vim.cmd("colorscheme kanagawa") -- Основная схема --vim.cmd("colorscheme kanagawa") -- Основная схема
--vim.cmd("colorscheme kanagawa-wave") -- Более светлая версия --vim.cmd("colorscheme kanagawa-wave") -- Более светлая версия
@ -105,7 +108,21 @@ vim.cmd("colorscheme gruvbox")
--vim.cmd("colorscheme kanagawa-lotus") -- Альтернативная палитра --vim.cmd("colorscheme kanagawa-lotus") -- Альтернативная палитра
--vim.cmd("colorscheme nightfly") --vim.cmd("colorscheme nightfly")
--vim.cmd("colorscheme randomhue") --vim.cmd("colorscheme randomhue")
--vim.cmd("colorscheme kanagawa")
--vim.cmd("colorscheme wildcharm")
vim.cmd("colorscheme retrobox")
--status line disabling
vim.opt.laststatus = 0
vim.defer_fn(function() vim.opt.laststatus = 0 end, 35) vim.defer_fn(function() vim.opt.laststatus = 0 end, 35)
local laststatus_values = {0, 3} local laststatus_values = {0, 3}
@ -116,9 +133,20 @@ vim.keymap.set('n', '<Leader><Tab>', function()
end, { noremap = true, silent = true }) end, { noremap = true, silent = true })
-- Включение относительной нумерации строк
vim.opt.number = true -- Включить абсолютную нумерацию строк
vim.opt.relativenumber = true -- Включить относительную нумерацию строк
--vim.opt.number = true -- Включить абсолютную нумерацию слева
--vim.opt.relativenumber = true -- Включить относительную нумерацию справа
vim.api.nvim_set_hl(0, "SignColumn", { bg = "None", fg = "#abb2bf" }) -- прозрачный фон
-- Определение функции для переключения number и relativenumber -- Определение функции для переключения number и relativenumber
local function toggle_number_and_relativenumber() local function toggle_number_and_relativenumber()
local number = vim.opt.number:get() local number = vim.opt.number:get()
@ -153,9 +181,9 @@ vim.g.loaded_netrwPlugin = 1
vim.opt.termguicolors = true vim.opt.termguicolors = true
-- перенос строк по словам
vim.opt.textwidth = 100 vim.opt.linebreak = true
vim.opt.number = true
vim.opt.relativenumber = true

View File

@ -1,4 +1,7 @@
local actions = require("fzf-lua.actions")
require("fzf-lua").setup({ require("fzf-lua").setup({
keymap = { keymap = {
fzf = { fzf = {
["alt-k"] = "down", -- Ctrl + k теперь движется вниз ["alt-k"] = "down", -- Ctrl + k теперь движется вниз
@ -21,11 +24,29 @@ require("fzf-lua").setup({
}, },
}, },
}, },
oldfiles = {
cwd_only = true, -- Только файлы из текущей директории
stat_file = true, -- Проверка существования файлов на диске
include_current_session = true, -- Включать только файлы из текущей сессии
},
files = {
-- other configurations...
hidden = true, -- Disable showing hidden files
no_ignore = false, -- Игнорировать .gitignore
fd_opts = [[--color=never --hidden --type f --type l --exclude .git]],
ignore_files = { ".gitignore", ".ignore" }, -- Добавьте эту строку
toggle_ignore_flag = "--no-ignore",
actions = {
["ctrl-i"] = actions.toggle_ignore, -- Новое сокращение для переключения игнорирования
}
}
}) })
vim.api.nvim_set_keymap('n', '<leader>o', ':FzfLua files<CR>', { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', '<leader>f', ':FzfLua files<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>f', ':FzfLua live_grep<CR>', { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', '<leader>g', ':FzfLua live_grep<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>z', ':FzfLua zoxide<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>o', ':FzfLua oldfiles<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>r', ':FzfLua buffers<CR>', { noremap = true, silent = true })

View File

@ -32,6 +32,9 @@ require("lazy").setup({
install = { colorscheme = { "habamax" } }, install = { colorscheme = { "habamax" } },
-- automatically check for plugin updates -- automatically check for plugin updates
checker = { enabled = true }, checker = { enabled = true },
experimental = {
check_rtp = false,
},
}) })
local function augroup(name) local function augroup(name)

185
lua/config/markview.lua Normal file
View File

@ -0,0 +1,185 @@
require('markview').setup({
markdown = {
debounce = 300, -- Задержка обновления
headings = {
enable = true,
org_shift_char = " ",
shift_width = 0,
org_indent = false,
org_indent_wrap = false,
heading_1 = {
style = "label",
sign = "",
},
heading_2 = {
style = "label",
sign = "",
},
heading_3 = {
style = "label",
},
heading_4 = {
style = "label",
},
heading_5 = {
style = "label",
},
heading_6 = {
style = "label",
},
setext_1 = {
style = "decorated",
sign = "", sign_hl = "MarkviewHeading1Sign",
icon = "", hl = "MarkviewHeading1",
border = ""
},
setext_2 = {
style = "decorated",
sign = "", sign_hl = "MarkviewHeading2Sign",
icon = "", hl = "MarkviewHeading2",
border = ""
}
};
horizontal_rules = {
enable = true, -- Оставляем предпросмотр горизонтальных линий включенным
parts = {
{
type = "repeating",
repeat_amount = function (buffer)
local utils = require("markview.utils");
local window = utils.buf_getwin(buffer)
local width = vim.api.nvim_win_get_width(window)
local textoff = vim.fn.getwininfo(window)[1].textoff;
return math.floor((width - textoff - 3) / 2);
end,
text = "", -- Символ для повторения
hl = "MarkviewBlockQuoteDefault" -- Упрощенная подсветка без градиента
},
{
-- type = "text",
---- text = " $ ", -- Центральный символ изменен на "$"
hl = "MarkviewBlockQuoteDefault" -- Упрощенная подсветка без градиента
},
{
type = "repeating",
repeat_amount = function (buffer)
local utils = require("markview.utils");
local window = utils.buf_getwin(buffer)
local width = vim.api.nvim_win_get_width(window)
local textoff = vim.fn.getwininfo(window)[1].textoff;
return math.ceil((width - textoff - 3) / 2);
end,
direction = "right",
text = "", -- Символ для повторения
hl = "MarkviewBlockQuoteDefault" -- Упрощенная подсветка без градиента
}
}
};
list_items = {
enable = true,
wrap = false,
indent_size = 2,
shift_width = 4,
marker_minus = {
add_padding = false,
conceal_on_checkboxes = true,
text = "",
hl = "MarkviewListItemMinus"
},
marker_plus = {
add_padding = false,
conceal_on_checkboxes = true,
text = "",
hl = "MarkviewListItemPlus"
},
marker_star = {
add_padding = false,
conceal_on_checkboxes = true,
text = "",
hl = "MarkviewListItemStar"
},
marker_dot = {
add_padding = false,
conceal_on_checkboxes = true,
},
marker_parenthesis = {
add_padding = false,
conceal_on_checkboxes = true,
}
},
},
preview = {
enable = true,
enable_hybrid_mode = true,
modes = { "n", "i", "v", "c" }, -- Работает во всех основных режимах
hybrid_modes = { "n", "v", "c" }, -- Hybrid mode во всех режимах
linewise_hybrid_mode = true, -- Линейный режим hybrid
edit_range = { 0, 0 }, -- Диапазон для input mode (-1, 1)
draw_range = { vim.o.lines, vim.o.lines }, -- Рендерить весь остальной текст
filetypes = { "markdown", "rmd", "quarto", "typst" }, -- Поддерживаемые форматы
ignore_buftypes = { "nofile" },
callbacks = {
on_attach = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 3
end
end,
on_detach = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 0
end
end,
on_enable = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 3
end
end,
on_disable = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 0
end
end,
on_hybrid_enable = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 3
end
end,
on_hybrid_disable = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 0
end
end,
on_mode_change = function(_, wins, current_mode)
local preview_modes = { "n", "i", "v", "c" }
for _, win in ipairs(wins) do
if vim.tbl_contains(preview_modes, current_mode) then
vim.wo[win].conceallevel = 3
else
vim.wo[win].conceallevel = 0
end
end
end
}
}
})

View File

@ -1,17 +1,27 @@
vim.keymap.set('n', '<Plug>(mkdx-gen-or-upd-toc)', '<Plug>', { noremap = true, silent = true }) -- leader i
vim.keymap.set('n', '<Plug>(mkdx-toggle-checkbox-n)', '<Plug>', { noremap = true, silent = true }) -- leader t
vim.keymap.set('n', '<leader>/', '<Nop>', { noremap = true, silent = true })
vim.keymap.set('v', '<leader>/', '<Nop>', { noremap = true, silent = true })
-- Italic -- Italic
vim.keymap.set('n', '<leader>/', '<Nop>', { noremap = true, silent = true })
vim.keymap.set('v', '<leader>/', '<Nop>', { noremap = true, silent = true })
vim.keymap.set('n', '<leader>i', '<Plug>(mkdx-text-italic-n)', { noremap = true, silent = true }) vim.keymap.set('n', '<leader>i', '<Plug>(mkdx-text-italic-n)', { noremap = true, silent = true })
vim.keymap.set('v', '<leader>i', '<Plug>(mkdx-text-italic-v)', { noremap = true, silent = true }) vim.keymap.set('v', '<leader>i', '<Plug>(mkdx-text-italic-v)', { noremap = true, silent = true })
-- Toggle Checkbox -- Toggle Checkbox
vim.keymap.set('n', '<leader>c', '<Plug>(mkdx-toggle-checkbox-n)', { noremap = true, silent = true }) vim.keymap.set('n', '<Plug>(mkdx-toggle-checkbox-n)', '<Plug>', { noremap = true, silent = true }) -- leader t
vim.keymap.set('v', '<leader>t', '<Nop>', { noremap = true, silent = true })
vim.keymap.set('v', '<leader>lt', '<Nop>', { noremap = true, silent = true })
--vim.keymap.set('v', '<leader>c', '<Nop>', { noremap = true, silent = true })
--vim.keymap.set('v', '<leader>c', '<Plug>(mkdx-toggle-checkbox-n)', { noremap = true, silent = true })
vim.keymap.set('v', '<leader>lc', '<Plug>(mkdx-toggle-checkbox-n)', { noremap = true, silent = true })
-- Generate/Update TOC -- Generate/Update TOC
vim.keymap.set('n', '<Plug>(mkdx-gen-or-upd-toc)', '<Plug>', { noremap = true, silent = true }) -- leader i
vim.keymap.set('n', '<leader>h', '<Plug>(mkdx-gen-or-upd-toc)', { noremap = true, silent = true }) vim.keymap.set('n', '<leader>h', '<Plug>(mkdx-gen-or-upd-toc)', { noremap = true, silent = true })

68
lua/config/mutton.lua Normal file
View File

@ -0,0 +1,68 @@
vim.g.mutton_min_center_width = 110
-- Для Mutton
local normal_bg = vim.fn.synIDattr(vim.fn.hlID("Normal"), "bg")
vim.api.nvim_set_hl(0, "EndOfBuffer", { fg = normal_bg} ) -- overrides `~` character at the end of buffer
vim.api.nvim_set_hl(0, "VertSplit", { fg = normal_bg} ) -- overrides `~` character at the end of buffer
vim.api.nvim_set_hl(0, "WinSeparator", { fg = normal_bg })
local mutton = false
local function on_buf_read()
vim.defer_fn(function()
local buf_name = vim.api.nvim_buf_get_name(0) -- Получаем имя файла
if buf_name:match("%.md$") and mutton == false and not buf_name:match("ui.md$") then -- Проверяем, заканчивается ли имя на ".md"
mutton = true
vim.cmd("MuttonToggle")
elseif mutton == true and buf_name:match("ui.md$") then
mutton = false
vim.cmd("wincmd l | q")
vim.cmd("wincmd h | q")
vim.cmd("MuttonToggle")
elseif buf_name:match("NvimTree_1$") then
elseif buf_name:match("%[%[Mutton%]%]$") then
elseif buf_name:match("/usr/bin/sh$") then
elseif mutton == true and not buf_name:match("%.md$") then
mutton = false
vim.cmd("MuttonToggle")
end
end, 100)
end
vim.api.nvim_create_autocmd("BufEnter", { callback = on_buf_read })
-- Создаем автокоманду для события QuitPre
vim.api.nvim_create_autocmd("QuitPre", {
callback = function()
local buf_name = vim.api.nvim_buf_get_name(0) -- Получаем имя файла
if buf_name:match("%.md$") then -- Проверяем, заканчивается ли имя на ".md"
vim.cmd("q")
vim.cmd("q")
vim.cmd("q")
end
end,
})

View File

@ -1,18 +0,0 @@
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
},
})

View File

@ -10,7 +10,7 @@ cmp.setup({
['<A-l>'] = cmp.mapping.select_prev_item(), ['<A-l>'] = cmp.mapping.select_prev_item(),
['<A-k>'] = cmp.mapping.select_next_item(), ['<A-k>'] = cmp.mapping.select_next_item(),
['<C-;>'] = cmp.mapping.confirm({ select = true }), ['<C-;>'] = cmp.mapping.confirm({ select = true }),
['<CR>'] = cmp.mapping.confirm({ select = true }), ['<Tab>'] = cmp.mapping.confirm({ select = true }),
['<C-Space>'] = cmp.mapping.complete(), ['<C-Space>'] = cmp.mapping.complete(),
['<C-j>'] = cmp.mapping.close(), ['<C-j>'] = cmp.mapping.close(),
['<C-e>'] = cmp.mapping.close(), ['<C-e>'] = cmp.mapping.close(),
@ -20,8 +20,8 @@ cmp.setup({
{ name = 'buffer' }, { name = 'buffer' },
{ name = 'nvim_lsp_signature_help' }, { name = 'nvim_lsp_signature_help' },
{ name = 'render-markdown' }, { name = 'render-markdown' },
{ name = 'path' },
}, },
-- другие настройки
}) })
-- Diagnostic -- Diagnostic

View File

@ -2,6 +2,7 @@ local capabilities = require('cmp_nvim_lsp').default_capabilities()
local lspconfig = require('lspconfig') local lspconfig = require('lspconfig')
-- Java
lspconfig.jdtls.setup { lspconfig.jdtls.setup {
cmd = { "jdtls" }, cmd = { "jdtls" },
settings = { settings = {
@ -13,8 +14,10 @@ lspconfig.jdtls.setup{
}, },
} }
-- C/C++
lspconfig.clangd.setup {} lspconfig.clangd.setup {}
-- Rust
lspconfig.rust_analyzer.setup({ lspconfig.rust_analyzer.setup({
capabilities = capabilities, capabilities = capabilities,
settings = { settings = {
@ -28,3 +31,17 @@ lspconfig.rust_analyzer.setup({
}, },
}, },
}) })
-- Python
lspconfig.pyright.setup({
capabilities = capabilities,
settings = {
python = {
analysis = {
autoSearchPaths = true,
diagnosticMode = "workspace", -- Включить диагностику для всего проекта
useLibraryCodeForTypes = true,
},
},
},
})

View File

@ -4,7 +4,7 @@ require("nvim-tree").setup({
sorter = "case_sensitive", sorter = "case_sensitive",
}, },
view = { view = {
width = 30, width = 40,
}, },
renderer = { renderer = {
group_empty = true, group_empty = true,
@ -17,6 +17,52 @@ require("nvim-tree").setup({
quit_on_open = true, -- закрывать дерево при открытии файла quit_on_open = true, -- закрывать дерево при открытии файла
}, },
}, },
on_attach = function(bufnr)
local api = require("nvim-tree.api")
-- Apply default mappings
api.config.mappings.default_on_attach(bufnr)
-- Remove default C-] mapping
vim.keymap.del("n", "<C-]>", { buffer = bufnr })
-- Define file extensions to handle with system open
local special_extensions = {
".pdf", ".png", ".jpeg", ".jpg", ".doc", ".docx", ".epub", ".fb2"
}
-- Helper function to check file extension
local function has_special_extension(node)
for _, ext in ipairs(special_extensions) do
if node.name:match("%.?[^.]+$") == ext then
return true
end
end
return false
end
-- Create combined CR mapping
vim.keymap.set("n", "<CR>", function()
local node = api.tree.get_node_under_cursor()
if node and has_special_extension(node) then
api.node.run.system() -- Open file in system
else
api.node.open.edit() -- Default open file behavior
api.tree.change_root_to_node() -- Change root to node
end
end, { buffer = bufnr })
end,
}) })
-- Глобальные бинды для nvim-tree
vim.keymap.set("n", "<Leader>e", ":NvimTreeToggle<CR>", { noremap = true, silent = true }) vim.keymap.set("n", "<Leader>e", ":NvimTreeToggle<CR>", { noremap = true, silent = true })
vim.keymap.set("n", "<Leader>q", ":NvimTreeFindFile<CR>", { noremap = true, silent = true }) vim.keymap.set("n", "<Leader>q", ":NvimTreeFindFile<CR>", { 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,
})

View File

@ -1,5 +1,27 @@
require'nvim-treesitter.configs'.setup { require'nvim-treesitter.configs'.setup {
ensure_installed = { "markdown", "markdown_inline","lua", "python", "javascript", "html", "css" }, highlight = {
highlight = { enable = true }, -- Включение подсветки синтаксиса enable = true,
indent = { enable = true }, -- Включение автоматической настройки отступов disable = function(lang, buf)
-- Проверяем, существует ли буфер и связан ли он с файлом
if not buf or buf == 0 then
return true
end
-- Получаем информацию о файле
local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
if not ok or not stats or not stats.size then
return true
end
-- Отключаем подсветку для больших файлов
local max_filesize = 500 * 1024 -- 500 KB
if stats.size > max_filesize then
return true
end
-- Включаем подсветку для всех остальных случаев
return false
end,
},
} }

View File

@ -1,10 +1,73 @@
require('render-markdown').setup({ require('render-markdown').setup({
debounce = 100,
-- render_modes = true,
heading = { heading = {
width = 'block', enabled = true,
left_pad = 2, icons = { "", },
right_pad = 4, position = 'inline',
border = true, border = { true, true, true, false, false, false},
border_virtual = true, border_virtual = true,
width = 'block',
right_pad = 1,
left_pad = 1,
}, },
sign = { enabled = false }, 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 = '󰗃 ' },
},
},
checkbox = {
unchecked = { icon = '' },
checked = { icon = '' },
},
bullet = { icons = { '', '', '-',} },
}) })
-- переход по ссылкам
vim.keymap.set('n', 'gl', function() FindHttpOrWwwInLine() end, { silent = true })
function FindHttpOrWwwInLine()
local line = vim.api.nvim_get_current_line()
local start_pos, end_pos = line:find("http")
if start_pos then
local col = start_pos - 1
vim.api.nvim_win_set_cursor(0, {vim.fn.line('.'), col})
vim.cmd("normal! vE")
vim.fn.feedkeys("gx")
vim.api.nvim_input("<Esc>")
end
end

View File

@ -1,43 +0,0 @@
require('telescope').setup({
--дополнения
extensions = {
fzf = {
fuzzy = true, -- false will only do exact matching
override_generic_sorter = true, -- override the generic sorter
override_file_sorter = true, -- override the file sorter
case_mode = "ignore_case", -- or "ignore_case" or "respect_case"
-- the default case_mode is "smart_case"
}
},
--настройки
defaults = {
debug = true,
mappings = {
i = {
-- Замена j на l для перемещения вниз
["k"] = "move_selection_next",
-- Замена k на h для перемещения вверх
["l"] = "move_selection_previous",
-- Отключение оригинальных j и k, если нужно
["j"] = false,
},
n = {
-- Аналогично для режима normal
["k"] = "move_selection_next",
["l"] = "move_selection_previous",
["j"] = false,
},
},
},
})
-- To get fzf loaded and working with telescope, you need to call
-- load_extension, somewhere after setup function:
require('telescope').load_extension('fzf')
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<Leader>o', builtin.find_files, { desc = 'Telescope find files' })
vim.keymap.set('n', '<Leader>f', builtin.live_grep, { desc = 'Telescope live grep' })

View File

@ -1 +0,0 @@
vim.g.vimtex_view_method = "zathura" -- Настройте просмотрщик PDF (например, Zathura)

View File

@ -1 +0,0 @@
require("which-key").setup()

View File

@ -1,7 +1,138 @@
return { return {
-- Список плагинов -- ==============================
-- Визуальные плагины
-- ==============================
-- Treesitter для синтаксического анализа -- Темы оформления
{
"bluz71/vim-nightfly-colors", -- Nightfly тема
},
{
"folke/tokyonight.nvim", -- TokyoNight тема
},
{
"morhetz/gruvbox", -- Gruvbox тема
},
{
"rebelot/kanagawa.nvim", -- Kanagawa тема
},
{
"navarasu/onedark.nvim",
config = function()
require("onedark").setup({
style = "dark", -- Выберите стиль: 'dark', 'darker', 'cool', 'deep', 'warm', 'warmer'
})
require("onedark").load() -- Активируйте тему
end,
},
-- Иконки
{
"nvim-tree/nvim-web-devicons", -- Провайдер иконок для других плагинов
},
-- Интерфейс и UI
-- {
-- "MeanderingProgrammer/render-markdown.nvim", -- Рендеринг Markdown
-- dependencies = { "echasnovski/mini.nvim", opt = true },
-- config = function()
-- require("config.render-markdown")
-- end,
-- },
{
"nvim-lualine/lualine.nvim", -- Статусная строка
dependencies = { "kyazdani42/nvim-web-devicons", optional = true },
},
{
"lukas-reineke/indent-blankline.nvim", -- Визуализация отступов
config = function()
require("config.indent-blankline")
end,
},
{
"folke/noice.nvim",
event = "VeryLazy",
opts = {
-- add any options here
},
dependencies = {
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
"MunifTanjim/nui.nvim",
-- OPTIONAL:
-- `nvim-notify` is only needed, if you want to use the notification view.
-- If not available, we use `mini` as the fallback
"rcarriga/nvim-notify",
}
},
{
"iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
build = "cd app && yarn install",
init = function()
vim.g.mkdp_filetypes = { "markdown" }
vim.g.mkdp_markdown_css = vim.fn.expand("~/.config/nvim/markdown.css")
end,
ft = { "markdown" },
},
-- ==============================
-- Функциональные плагины
-- ==============================
-- LSP и автодополнение
{
"hrsh7th/cmp-nvim-lsp", -- Интеграция nvim-cmp с LSP
},
{
"hrsh7th/cmp-nvim-lsp-signature-help", -- Поддержка сигнатур LSP в автодополнении
},
{
"hrsh7th/cmp-path", -- Автодополнение путей
},
{
"hrsh7th/nvim-cmp", -- Основной плагин автодополнения
},
{
"neovim/nvim-lspconfig", -- Конфигурация LSP
},
{
"williamboman/mason.nvim", -- Управление LSP серверами
},
-- Поиск и навигация
{
"ibhagwan/fzf-lua", -- FZF для быстрого поиска
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {},
},
{
"nvim-lua/plenary.nvim", -- Библиотека для других плагинов
},
-- Другие функциональные плагины
{
"antoinemadec/FixCursorHold.nvim", -- Исправление CursorHold событий
},
{
"gabenespoli/vim-mutton", -- Дополнительные возможности для работы с текстом
},
{
"kyazdani42/nvim-tree.lua", -- Файловый менеджер
dependencies = { "nvim-tree/nvim-web-devicons" },
},
{
"nanotee/zoxide.vim", -- Интеграция с zoxide для быстрой навигации
},
{
"SidOfc/mkdx", -- Улучшения для работы с Markdown
},
{
"OXY2DEV/markview.nvim",
lazy = false,
config = function()
require("config.markview")
end,
dependencies = { "nvim-treesitter/nvim-treesitter" },
},
{ {
"nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter",
build = ":TSUpdate", build = ":TSUpdate",
@ -9,104 +140,41 @@ return {
require("config.nvim-treesitter") require("config.nvim-treesitter")
end, end,
}, },
-- Icon provider plugins
{ "antoinemadec/FixCursorHold.nvim" },
{ "nvim-tree/nvim-web-devicons" },
-- Render Markdown
{ {
"MeanderingProgrammer/render-markdown.nvim", 'gsuuon/model.nvim',
dependencies = { "echasnovski/mini.nvim", opt = true },
config = function() config = function()
require("config.render-markdown") local bash_provider = {
end, request_completion = function(handlers, params, options)
}, local input = params.input
local command = "~/test '" .. input .. "'"
local handle = io.popen(command)
local result = handle:read("*a")
handle:close()
local response = vim.json.decode(result)
-- Показывает доступные комбинации клавиш handlers.on_partial(response.message.content)
{ handlers.on_finish()
"folke/which-key.nvim",
config = function()
require("config.which-key")
end,
},
-- Визуализация отступов
{
"lukas-reineke/indent-blankline.nvim",
config = function()
require("config.indent-blankline")
end,
},
-- Канагава theme
{
"rebelot/kanagawa.nvim",
lazy = false, -- Убедитесь, что плагин загружается при запуске
priority = 1000, -- Высокий приоритет для применения цветовой схемы
config = function()
vim.cmd("colorscheme kanagawa")
end end
}, }
require('model').setup({
--nigthfly theme chats = {
{ mybash = {
"bluz71/vim-nightfly-colors", provider = bash_provider,
lazy = false, create = function(input, context)
priority = 1000, return {
config = function() messages = {
end, { role = 'user', content = input }
}, }
}
{ end,
"folke/noice.nvim", -- Плагин для улучшения командной строки и сообщений run = function(messages, config)
event = "VeryLazy", -- Загружается при старте NeoVim local last_message = messages[#messages]
dependencies = { return { input = last_message.content }
-- Требуется для UI-компонентов end
"MunifTanjim/nui.nvim", }
-- Опционально: для замены стандартных уведомлений NeoVim }
"rcarriga/nvim-notify", })
}, end
}, }
{
"hrsh7th/nvim-cmp"
},
{
"hrsh7th/cmp-nvim-lsp"
},
{
"ibhagwan/fzf-lua",
-- optional for icon support
dependencies = { "nvim-tree/nvim-web-devicons" },
-- or if using mini.icons/mini.nvim
-- dependencies = { "echasnovski/mini.icons" },
opts = {}
},
{
'SidOfc/mkdx'
},
{
'lambdalisue/suda.vim'
},
{"nvim-lualine/lualine.nvim", dependencies = { "kyazdani42/nvim-web-devicons", optional = true } },
{ "morhetz/gruvbox" },
{ "folke/tokyonight.nvim" },
{ "neovim/nvim-lspconfig" },
{ "kyazdani42/nvim-tree.lua", dependencies = { "nvim-tree/nvim-web-devicons" } },
{ "akinsho/bufferline.nvim", version = "*", dependencies = "nvim-tree/nvim-web-devicons" },
{ "williamboman/mason.nvim" },
{ "hrsh7th/cmp-nvim-lsp-signature-help" },
{ "nvim-lua/plenary.nvim", lazy = true },
} }

105
markdown.css Normal file
View File

@ -0,0 +1,105 @@
/* Увеличение размера шрифта для блочных формул */
.katex-display {
font-size: 1.5em; /* Увеличение размера шрифта */
margin-top: 1em; /* Верхний отступ */
margin-bottom: 1em; /* Нижний отступ */
}
/* Увеличение размера шрифта для инлайн-формул */
.katex {
font-size: 1em; /* Увеличение размера шрифта */
}
/* Установка глобального размера шрифта */
.markdown-body {
font-size: 35px;
margin-bottom: 900px; /* Добавление отступа внизу страницы */
}
/* Уменьшение отступов для списков */
ul, ol {
padding-left: 40px; /* Уменьшение отступа слева для списков */
margin-top: 0.5em; /* Уменьшение верхнего отступа */
margin-bottom: 0.5em; /* Уменьшение нижнего отступа */
}
li {
margin-bottom: 0.2em; /* Уменьшение отступа между элементами списка */
}
/* Уменьшение отступов для параграфов */
p {
font-size: 1.45em; /* Увеличиваем размер шрифта (например, до 1.2em) */
margin-top: 0.5em; /* Уменьшение верхнего отступа */
margin-bottom: 0.5em; /* Уменьшение нижнего отступа */
}
/* Уменьшение отступов для заголовков */
h1, h2, h3, h4, h5, h6 {
margin-top: 1em; /* Уменьшение верхнего отступа */
margin-bottom: 0.5em; /* Уменьшение нижнего отступа */
}
/* Уменьшение отступов для цитат */
blockquote {
margin-left: 10px; /* Уменьшение отступа слева */
margin-right: 10px; /* Уменьшение отступа справа */
margin-top: 0.5em; /* Уменьшение верхнего отступа */
margin-bottom: 0.5em; /* Уменьшение нижнего отступа */
padding-left: 5px; /* Уменьшение внутреннего отступа слева */
}
/* Уменьшение отступов для блоков кода */
pre {
margin-top: 0.5em; /* Уменьшение верхнего отступа */
margin-bottom: 0.5em; /* Уменьшение нижнего отступа */
padding: 5px; /* Уменьшение внутренних отступов */
}
code {
padding: 2px 4px; /* Уменьшение внутренних отступов для встроенного кода */
}
u
/* Уменьшение отступов для списков */
ul, ol {
padding-left: 40px; /* Уменьшение отступа слева для списков */
margin-top: 0.5em; /* Уменьшение верхнего отступа */
margin-bottom: 0.5em; /* Уменьшение нижнего отступа */
}
li {
margin-bottom: 0.2em; /* Уменьшение отступа между элементами списка */
}
/* Уменьшение отступов для параграфов */
p {
margin-top: 0.5em; /* Уменьшение верхнего отступа */
margin-bottom: 0.5em; /* Уменьшение нижнего отступа */
}
/* Уменьшение отступов для заголовков */
h1, h2, h3, h4, h5, h6 {
margin-top: 1em; /* Уменьшение верхнего отступа */
margin-bottom: 0.5em; /* Уменьшение нижнего отступа */
}
/* Уменьшение отступов для цитат */
blockquote {
margin-left: 10px; /* Уменьшение отступа слева */
margin-right: 10px; /* Уменьшение отступа справа */
margin-top: 0.5em; /* Уменьшение верхнего отступа */
margin-bottom: 0.5em; /* Уменьшение нижнего отступа */
padding-left: 5px; /* Уменьшение внутреннего отступа слева */
}
/* Уменьшение отступов для блоков кода */
pre {
margin-top: 0.5em; /* Уменьшение верхнего отступа */
margin-bottom: 0.5em; /* Уменьшение нижнего отступа */
padding: 5px; /* Уменьшение внутренних отступов */
}
code {
padding: 2px 4px; /* Уменьшение внутренних отступов для встроенного кода */
}