Compare commits
19 Commits
81487f1abd
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| eaad2e675c | |||
| 2e7e64def1 | |||
| c180adf85b | |||
| 6dd726ea14 | |||
| 115e0b93c5 | |||
| 73175fd40c | |||
| dde7d87052 | |||
| 340430a5cd | |||
| c42c23d5a8 | |||
| e7d4e1c5c0 | |||
| 6f9fcff8fa | |||
| 3ffda93c33 | |||
| ad70695803 | |||
| 7007025a20 | |||
| d4debecc55 | |||
| c8015ebb31 | |||
| 3dd801888d | |||
| 2ac7303469 | |||
| 70347b5042 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
lazy-lock.json
|
||||||
99
README.md
99
README.md
@ -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> для дополнительной информации
|
||||||
|
|||||||
16
init.lua
16
init.lua
@ -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 })
|
||||||
|
|||||||
@ -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" }
|
|
||||||
}
|
|
||||||
@ -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
31
lua/config/cigan.lua
Normal 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
|
||||||
@ -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
|
||||||
|
|||||||
@ -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 })
|
||||||
|
|
||||||
|
|||||||
@ -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
185
lua/config/markview.lua
Normal 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
@ -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
68
lua/config/mutton.lua
Normal 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,
|
||||||
|
})
|
||||||
@ -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
|
|
||||||
},
|
|
||||||
})
|
|
||||||
@ -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
|
||||||
|
|||||||
@ -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,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|||||||
@ -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,
|
||||||
|
})
|
||||||
|
|||||||
@ -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,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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' })
|
|
||||||
|
|
||||||
@ -1 +0,0 @@
|
|||||||
vim.g.vimtex_view_method = "zathura" -- Настройте просмотрщик PDF (например, Zathura)
|
|
||||||
@ -1 +0,0 @@
|
|||||||
require("which-key").setup()
|
|
||||||
264
lua/plugins.lua
264
lua/plugins.lua
@ -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
105
markdown.css
Normal 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; /* Уменьшение внутренних отступов для встроенного кода */
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user