this post was submitted on 14 Jul 2023
9 points (100.0% liked)

Neovim

29 readers
1 users here now

founded 1 year ago
MODERATORS
 

Answer

Hi, I am somewhat a noob when it comes to lua-script, so excuse me if this question is trivial. I want to change this line:

let g:slime_default_config = {"socket_name": "default", "target_pane": "{last}"}

to lua, but I don't know how. I have checked the learn-to-write-nvim-config-in-lua github, it was totally over my head. Can someone help me? Thank you!! ๐Ÿ˜‡

top 4 comments
sorted by: hot top controversial new old
[โ€“] reggie@lemmy.fmhy.ml 6 points 1 year ago (1 children)
vim.g.slime_default_config = {
    socket_name = 'default',
    target_pane = '{last}'
}

vim.g.<variable> is the same as g:<variable> in VimL. Assigning a dictionary is very straightforward as lua tables map to VimL dictionaries, with the exception of empty dicts where you have to use vim.empty_dict().

[โ€“] vhl@programming.dev 2 points 1 year ago (1 children)

Thank you so much. Now I finally am able to merge this feature branch into my main dotfile without shame. Also, please allow me to link your comment as the answer on the question.

[โ€“] reggie@lemmy.fmhy.ml 3 points 1 year ago

No need to ask for permission to link for stuff like this, I made a post on public platform and anyone can share it as they see fit. Also glad I could help.

[โ€“] TQuid 1 points 1 year ago

WARNING UNTESTED CHATGPT ANSWER:

You can use the vim.g global table in Neovim's built-in Lua to achieve the equivalent behavior. Here is how you might translate your Vimscript line to Lua:

vim.g.slime_default_config = {socket_name = "default", target_pane = "{last}"}

This code creates a global Vim variable g:slime_default_config with the given dictionary or table. vim.g is a table that represents the Vim's global g: scope.

Please ensure that you're running Neovim 0.5 or later, as the built-in Lua support was significantly improved in that version.