My move from Emacs to LunarVim
The context
I have been using Emacs for about 20 years. I have been using it as my main editor. I have used it for writing code and writing blog posts.
I especially love the rectangle feature, that I extensively used for commenting text up to reformat data
On the other hand, despite all the good it is told about org-mode and magit, I never really used them.
The extremum of my love for Emacs was when language servers landed in (I dont remember the year), but I could then have decent code completion.
The trigger
In 2023, arrived (in my life!) Github Copilot. I was amazed by the power of the tool. I am still.
When looked at the Github repository of the Copilot team, I saw that NeoVim was part of the supported editors, with the "copilot.vim" plugin.
I was curious to see how it works: I installed NeoVim and the plugin.
The solution
After about one month of trial, I made my decision: I switch to Neovim.
But when I practized Neovim, I heard about LunarVim and tried it: immediate adoption.
The few things I had to tune were:
- The installation of Github Copilot
- The setting of Alt+Enter to accept the suggestion of Copilot
- The setting to use a light theme
- The setting to have a more visible cursor
lvim.plugins = { { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, { "github/copilot.vim", config = function() vim.keymap.set('i', '', 'copilot#Accept("\\ ")', { expr = true, replace_keycodes = false }) vim.g.copilot_no_tab_map = true end, }, } lvim.colorscheme = "catppuccin-latte" lvim.builtin.bufferline.active = false vim.api.nvim_command("au VimEnter,WinEnter,BufWinEnter * setlocal cursorline") vim.api.nvim_command("au VimEnter,WinEnter,BufWinEnter * setlocal cursorcolumn") -- In NeoVim, the mapping is for something I dont know. I need to unmap it. vim.api.nvim_del_keymap("i", " ") -- Enable intelephense -- Make sure "gd" is mapped to "vim.lsp.buf.definition()" and "gr" is mapped to "vim.lsp.buf.references()" require'lspconfig'.intelephense.setup{ cmd = { "intelephense", "--stdio" }, on_attach = function(client, bufnr) vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", " lua vim.lsp.buf.definition() ", { noremap = true, silent = true }) vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", " lua vim.lsp.buf.references() ", { noremap = true, silent = true }) end }