hkupty / nvimux

Neovim as a TMUX replacement
Apache License 2.0
445 stars 17 forks source link

Bug: let g:nvimux_new_window = 'term' does nothing #38

Closed artem-nefedov closed 5 years ago

artem-nefedov commented 5 years ago

I discovered that specifying let g:nvimux_new_window = 'term' in vimrc doesn't work, so I had to edit lua "vars" file instead. At the same time, let g:nvimux_new_tab = 'term' actually did work as expected (even before I edited "vars").

hkupty commented 5 years ago

Hi. Thanks a lot for your issue.

Previously, nvimux was written in VimL and configuring it through variables was the way to go. As neovim implemented the lua layer, given that lua is a much nicer language to work with (as it allows a cleaner separation of layers/modules, logic is simpler to describe), I've moved away from using vim variables as those would require more lua<->neovim interop, whereas setting up variables directly in lua pushes the boundaries to where it would be less-frequently invoked.

(All that preamble to say that) now, to have the same behavior, one should set it up using lua directly, like this:

lua << EOF
local nvimux = require('nvimux')

-- Nvimux configuration
nvimux.config.set_all{
  new_window = 'term',
}

nvimux.bootstrap()
EOF

I've checked the source code and there's still a proxy that tries to fallback to vim vars if the relevant var isn't found in lua, however, I believe that's going to be dropped whenever I set up to work on nvimux again..

artem-nefedov commented 5 years ago

Ok, lua version works works, so I'll close the issue.

Still, it's weird how g:nvimux_new_window doesn't work but g:nvimux_new_tab does, even though they are handled the same way in the code.

hkupty commented 5 years ago

Once again thanks for the issue. I'll double check just in case, but keep in mind that neovim variables will be removed on future updates.

Best regards, Henry John Kupty