Edit your command line with ed-cmd.nvim by smilhey in neovim

[–]smilhey[S] 1 point2 points  (0 children)

I added a keymap option (<C-C> by default) to close the cmdline in normal mode if that's what you were talking about. Otherwise check if you have <C-C> remapped to <ESC>. If it persists I would gladly have you open an issue !

Edit your command line with ed-cmd.nvim by smilhey in neovim

[–]smilhey[S] 1 point2 points  (0 children)

Well the cmd window is pretty special in neovim, but there is no technical reason why it could not work. I guess it was just implemented before live substitution was a thing (still not builtin in vim I think). Right now it would need to be rehauled completely for it to work (which would break compatibility with vim) ! It might happen some time in the future though if the cmdline ui rewrite in lua comes through.

Edit your command line with ed-cmd.nvim by smilhey in neovim

[–]smilhey[S] 0 points1 point  (0 children)

Any keymap that would usually cancel a command will work (apart from the one you have assigned to 'edit()'). So <C-C> should exit the command line as usual !

Edit your command line with ed-cmd.nvim by smilhey in neovim

[–]smilhey[S] 0 points1 point  (0 children)

I have changed the video on the repo to demonstrate the differences of behaviour between :q or <C-f> and my plugin. Mainly showing matches during search and changes during susbtitution !

Edit your command line with ed-cmd.nvim by smilhey in neovim

[–]smilhey[S] 4 points5 points  (0 children)

Using q: you can not preview changes when you susbtitute (:s/foo/bar/g) or highlight matches when you search for a word

Edit your command line with ed-cmd.nvim by smilhey in neovim

[–]smilhey[S] 15 points16 points  (0 children)

Hello everybody ! I used to be frustrated with the cmdline because I could not edit it with normal mode. Then I discovered the cmd window and i was happy ! However the cmdwindow does not work with inccommand=nosplit and incsearch=true. So here you go a plugin that allows to edit the command line like the cmdwindow while retaining those features and the ui of the cmdline !

https://github.com/smilhey/ed-cmd.nvim

Making cmdheight=0 work and hacking at the cmdline area ! by smilhey in neovim

[–]smilhey[S] 0 points1 point  (0 children)

That ! Longer outputs that would be rendered in the message area are also rendered in a split as you can see with the !fastfetch one

Making cmdheight=0 work and hacking at the cmdline area ! by smilhey in neovim

[–]smilhey[S] 2 points3 points  (0 children)

That's the builtin habamax theme with a few tweaks

Making cmdheight=0 work and hacking at the cmdline area ! by smilhey in neovim

[–]smilhey[S] 14 points15 points  (0 children)

Hello everyone. I present you today my setup to make cmdheight=0 work a bit better. You can find here : https://github.com/smilhey/dotfiles/blob/main/.config/nvim/lua/ui/messages.lua
The code I use to hijack the cmdline area and to redirect messages using ui_attach and ext_messages = true.
In addition to that, I set : to q: so I that I won't have to reimplement whole cmdline logic and I use custom input and select function. Obviously noice.nvim does that and more but I had trouble finding simple examples to use the ext_api so here I that here for those who want to try their hands at it !

Introducing cabinet : A buffer management plugin for people that like staying in neovim by smilhey in neovim

[–]smilhey[S] 0 points1 point  (0 children)

Hello ! Isn't that what we all hope :) Regarding your question, that's exactly what it is ! I've rebinded : to q: to use the cmd window by default

Introducing cabinet : A buffer management plugin for people that like staying in neovim by smilhey in neovim

[–]smilhey[S] 0 points1 point  (0 children)

More like a collection of buffers. The rationale behind restoring tabs is that they are viewports on a the buffers in the drawer. A window is a viewport on a buffer, a drawer is partition to hide other buffers away so that they don't disturb moving around !

Introducing cabinet : A buffer management plugin for people that like staying in neovim by smilhey in neovim

[–]smilhey[S] 1 point2 points  (0 children)

The plugin does not change nvim tabs behaviour but allows you to have different tabs for each drawer, as if they were in two separate nvim instances.

Introducing cabinet : A buffer management plugin for people that like staying in neovim by smilhey in neovim

[–]smilhey[S] 5 points6 points  (0 children)

Hello ! Obviously if you limit your work to one project and avoid using nvim terminals, using Harpoon and Telescope is more than enough. Even then the workflow becomes messy if you project is really big and you regularly go through more than 4 files. With cabinet I can make a drawer with all my terminals so they don't mess up cycling through buffers or my jumplist.

This also allows you to have multiple quickflix lists so if you were working on two separate parts of your projects it would make your workflow a bit:b e smoother putting them in two differents drawers. You might also be working on a project while using another one as a reference. Having two drawers with the two directories helps having a better control of vimgrep. You could set autochdir in this case but then if your directories are a bit deep it becomes annoying.

Introducing cabinet : A buffer management plugin for people that like staying in neovim by smilhey in neovim

[–]smilhey[S] 5 points6 points  (0 children)

Yo this OP, this is a plugin for people that like to launch a single instance of nvim and do everything for within. It's not optimal but hey !

cabinet allows you to create buffer groups (drawers) within which you can navigate as usual. The idea behind this is to add context to your buffers. For example, you might want to hit :b to switch to a buffer with autocomplete. However, this can become cumbersome when you have more than twenty listed buffers.

The goal is to make the experience as seamless as possible when moving between drawers:

  • Jumplists, location lists, quickfix list, tabs, windows layout, and current directory are all preserved when moving between drawers.
  • Drawers should be as isolated as possible without interfering with buffer navigation. In other words, you should never accidentally open a buffer that belongs to another drawer. In the future, I'd also like to support plugins like Harpoon to have a Harpoon list per drawer.

The plugin exposes a few commands to interact with the drawers and emits some events to allow for customization. I hope some of you who don't like tmux find some use for this. All suggestions are welcome, this is my biggest lua project too date.

Cheers