It's my config for NvChad with orientation to C++ and python.
Install neovim ( google it if you don't know how )
If you are on linux:
- In a console:
git clone https://github.com/Gerodote/Nvchad_config_cpp.git --branch master ~/.config/nvim
If another operational system:
- check where neovim config is usually located and change the last part of the command for linux.
Then maybe type :MasonInstallAll
Then maybe type :Lazy
and update all packages using <shift>u
keybindging.
To get some plugins working, which are written in some other languages than lua ( aka remote plugins ), do next stuff:
:runtime! plugin/rplugin.vim
:UpdateRemotePlugins
- restart neovim
It's have clangd through Mason, cmake plugin, cmake debugger, c++ debugger, python debugger, some keybindings. In general, it's great to use.
- Find a good solution for .ipynb files.
- goerz/jupytext.vim only editing, not executing. Though, amazing, needs jupytext installed
- dccsillag/magma-nvim seems to be about executing
*.py
scripts using jupyter. Not about executing ipynb. - luk400/vim-jukit investigation...
- migrate to nvchad v2.5
- apply migrate.sh
- transform mappings syntax to vim mappings
- cheatsheet doesn't have hints for categories with one mapping
- Debugger stuff. Console GDB/LLDB is cool, but some want it inside editor...
- CMake debugger in neovim !!! CMake Generate (
<leader>G
), toggle a breakpoint (<leader>b
), press Continue(<F5>
), it works! Prerequisite: cmake is 3.27+ and is compiled with dap feature. (for gentoo usersflaggie dev-build/cmake +dap
).- build folder is taken from cmake plugin
- (Resolved) is taken at the initialization of neovim. Changed build dir? Right now only restart neovim.
- (Resolved) it doesn't take
generate_options
from:CMakeSettings
.
- build folder is taken from cmake plugin
- c++/c/rust debugger : press CMake debug (
<leader>cd
), enjoy- codelldb by default is taken from meson. So, generally, no manual typing pathes
- how to go through asm instructions? seems that codelldb doesn't support it, or my experimental mapping doesn't work.
- how to place breakpoint at main, if executable is compiled with
-g0
? In raw gdb or lldb it's possible.
- nvim-dapui is connected
- added bindings for opening(
<leader>do
) and closing (<leader>dc
) nvim-dapui .
- added bindings for opening(
- nvim-dap-ui and cmake-tools are added at startup, not lazy.
- for cmake stuff find out how in
lazy
package manager load it if project folder has CMakeLists.txt . Investigation. - for dap stuff should be loading by certain keymappings, though idk how exactly now. Investigation.
- for cmake stuff find out how in
- where's python debugger?
- added debugpy through mason and copy pasted config for it with slight changes
- toggle breakpoint,
<F5>
, wooalla
- CMake debugger in neovim !!! CMake Generate (
- More keybindigs for some plugins
- dap related
- telescope related
- gitsigns related
- tmux navigator. Added keybindings for it. Ctrl+hjkl for navigating + tmux integration!!!
- added CodeCompanion plugin. Do you have ollama installed? Do you have a self-deployed AI ? This plugin is for you
- check next stuff to specify what model to use, if it's self-deployed: here
- still no shortcuts.
:CodeCompanion
will give you options to use.
- Find out if there's a way to turn on less plugin not lazily. Investigation
-
ft
for some plugins works, for some not, idk why0
-
- Added rcarriga/nvim-notify. Good looking plugin.
- Find a plugin for cool command palette
- hachy/cmdpalette.nvim doesn't support ranges and feels not so good
- gelguy/wilder.nvim seems to be a little bit unmaintained (my pain at installing it). UPD: it's still is too buggy, and most important: it's slow. It's using python behind in sync way and on my pc it feels so badly sometimes... Maybe this plugin should be rewritten to lua or C/C++/Rust/Go/whatever_language ?
- has some problems with config portability?
- VonHeikemen/fine-cmdline.nvim doesn't support ranges
- mrjones2014/legendary.nvim seems to not have ability to somehow get commands from everywhere like
:Telescope commands
, though looks cool. Doesn't support ranges.
- Find out how to put more snippets and put them from somewhere. Investigation.
- Find a good alternative to
:s
. - Allow more diversity of folder structures for include-guard plugin. Now only works if there's
src
in a path to a file.- Rewrite plugin to lua and use neovim's API?
- Actually there's a snippet
#guard
.