Neovim: Difference between revisions

Layer-09 (talk | contribs)
Revamped the page; Broken translation markers.
Ardenet (talk | contribs)
Marked this version for translation
Tags: Mobile edit Mobile web edit
 
(8 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{infobox application
{{infobox application
   |title=Neovim
   |name=Neovim
   |image=Neovim-mark.svg
   |image=Neovim-mark.svg
   |type=Text Editor
   |type=Text Editor
Line 17: Line 17:
   |documentation=[https://neovim.io/doc/ Official Documentation]
   |documentation=[https://neovim.io/doc/ Official Documentation]
}}
}}
<translate>
<translate>
<!--T:1-->
<!--T:1-->
Line 27: Line 28:
== Installation == <!--T:3-->
== Installation == <!--T:3-->


==== Shell ====
==== Shell ==== <!--T:4-->


<!--T:60-->
To temporarily use Neovim in a shell environment without modifying your system configuration, you can run:
To temporarily use Neovim in a shell environment without modifying your system configuration, you can run:
</translate>
{{code|lang=bash|line=no|1=$ nix-shell -p neovim}}
{{code|lang=bash|line=no|1=$ nix-shell -p neovim}}
<translate>
<!--T:61-->
This makes the Neovim editor available in your current shell. You can then launch Neovim by typing <code>neovim</code>.
This makes the Neovim editor available in your current shell. You can then launch Neovim by typing <code>neovim</code>.


==== System setup ====
==== System setup ==== <!--T:62-->


<!--T:63-->
To install Neovim system-wide, making it available to all users, add the following to your configuration:
To install Neovim system-wide, making it available to all users, add the following to your configuration:
{{code|lang=nix|line=no|1=# Example for /etc/nixos/configuration.nix
</translate>
 
{{code|lang=nix|line=no|1=<translate><!--T:64--> # Example for /etc/nixos/configuration.nix</translate>
environment.systemPackages = [
environment.systemPackages = [
   pkgs.neovim
   pkgs.neovim
];
];


# User-specific installation (in ~/.config/nixpkgs/home.nix)
<translate><!--T:65--> # User-specific installation (in ~/.config/nixpkgs/home.nix)</translate>
home.packages = [
home.packages = [
   pkgs.neovim
   pkgs.neovim
];}}
];}}
<translate>
<!--T:66-->
After rebuilding your system with <code>nixos-rebuild switch</code> or <code>home-manager switch</code>, Neovim will be installed and accessible.
After rebuilding your system with <code>nixos-rebuild switch</code> or <code>home-manager switch</code>, Neovim will be installed and accessible.


== Configuration == <!--T:7-->
== Configuration == <!--T:7-->


==== Basic ==== <!--T:8-->
==== Basic ==== <!--T:8-->
</translate>


</translate>
{{code|lang=nix|line=no|1=<translate>
{{code|lang=nix|line=no|1=<translate>
<!--T:39-->
<!--T:39-->
Line 72: Line 84:
   '';
   '';
};}}
};}}
<translate>
<translate>
==== Advanced ==== <!--T:10-->
==== Advanced ==== <!--T:10-->
</translate>


</translate>
{{code|lang=nix|line=no|1=<translate>
{{code|lang=nix|line=no|1=<translate>
<!--T:41-->
<!--T:41-->
Line 108: Line 120:
</translate>
</translate>
environment.variables.EDITOR = "nvim";}}
environment.variables.EDITOR = "nvim";}}
<translate>
<translate>
 
<!--T:12-->
== Tips and Tricks == <!--T:12-->
== Tips and Tricks ==
{{expand}}
{{expand}}


==== Package Variations ==== <!--T:15-->
==== Package Variations ==== <!--T:15-->


<!--T:44-->
Have a look at the [https://github.com/nix-community/neovim-nightly-overlay Neovim Nightly Overlay]<ref>Nix Community, "neovim-nightly-overlay", GitHub, Last updated June 2025, Accessed June 2025. https://github.com/nix-community/neovim-nightly-overlay</ref> to install the most recent current nightly version of Neovim.
Have a look at the [https://github.com/nix-community/neovim-nightly-overlay Neovim Nightly Overlay]<ref>Nix Community, "neovim-nightly-overlay", GitHub, Last updated June 2025, Accessed June 2025. https://github.com/nix-community/neovim-nightly-overlay</ref> to install the most recent current nightly version of Neovim.
<!--T:16-->
You can run the master version via the following command:
You can run the master version via the following command:
</translate>
{{code|lang=bash|line=no|1=$ nix run "github:nix-community/neovim-nightly-overlay"}}
{{code|lang=bash|line=no|1=$ nix run "github:nix-community/neovim-nightly-overlay"}}


<translate>
==== Plugin Management ==== <!--T:21-->
==== Plugin Management ==== <!--T:21-->
</translate>


</translate>
{{code|lang=nix|line=no|1=plugins = [
{{code|lang=nix|line=no|1=plugins = [
<translate>
<translate>
Line 212: Line 231:
</translate>
</translate>
];}}
];}}
<translate>
<translate>
==== Frameworks ==== <!--T:18-->
==== Frameworks ==== <!--T:18-->


Line 223: Line 242:


<!--T:46-->
<!--T:46-->
* [https://astronvim.com/ AstroVim]<ref>AstroNvim Team, "AstroNvim", AstroNvim Official Website, Accessed June 2025. https://astronvim.com/</ref>
* [https://astronvim.com/ AstroNvim]<ref>AstroNvim Team, "AstroNvim", AstroNvim Official Website, N/A, Accessed June 2025. https://astronvim.com/</ref>


<!--T:47-->
<!--T:47-->
* [https://nvchad.com/ NVChad]<ref>Siduck, "NvChad", NvChad Official Website, © 2025, Accessed June 2025. https://nvchad.com/</ref>
* [https://nvchad.com/ NVChad]<ref>Siduck, "NvChad", NvChad Official Website, © 2025, Accessed June 2025. https://nvchad.com/</ref>


<!--T:48-->
==== FHS wrapper ==== <!--T:67-->
Another excellent option is [https://www.lunarvim.org/docs/installation LunarVim]<ref>LunarVim Team, "Installation", LunarVim Documentation, Version 1.4, Accessed June 2025. https://www.lunarvim.org/docs/installation</ref>. The development community describes it as "an IDE layer for Neovim with sane defaults." LunarVim includes an installer/updater for LSP modules and other features. It can be installed via the <code>lunarvim</code> package from <code>nixpkgs</code> and is started with the <code>lvim</code> command.
 
<!--T:20-->
The configuration for LunarVim is stored in <code>./config/lvim</code>.
 
==== FHS wrapper ====


<!--T:68-->
You can create a custom neovim FHS wrapper
You can create a custom neovim FHS wrapper
</translate>


{{code|lang=nix|line=no|1={
{{code|lang=nix|line=no|1=
{
   buildFHSEnv,
   buildFHSEnv,
   writeShellScript,
   writeShellScript,
Line 250: Line 266:
     exec ${neovim}/bin/nvim "$@"
     exec ${neovim}/bin/nvim "$@"
   '';
   '';
}
}}
}}
}


this is copied from [https://github.com/NixOS/nixpkgs/pull/334032 nixpkgs#334032]<ref>NixOS, "Feature: Custom Neovim FHS Wrapper" (Pull Request #334032), GitHub, 2025, Accessed June 2025. https://github.com/NixOS/nixpkgs/pull/334032</ref>
<!--T:FHS_WRAPPER_SOURCE-->
<translate>
<!--T:69-->
This FHS wrapper example is based on a contribution to nixpkgs<ref name="nixpkgs-pr-334032">NixOS, "Feature: Custom Neovim FHS Wrapper" (Pull Request #334032), GitHub, 2025, Accessed June 2025. https://github.com/NixOS/nixpkgs/pull/334032</ref>.
For an extended configuration that includes setting up `mason.nvim` with a similar FHS environment, see this [https://github.com/NixOS/nixpkgs/issues/281219#issuecomment-2284713258 NixOS/nixpkgs issue comment].


See also: [https://github.com/NixOS/nixpkgs/issues/281219#issuecomment-2284713258 this configuration] which extends upon the above to setup mason.nvim
<!--T:59-->
 
== Troubleshooting ==
== Troubleshooting == <!--T:59-->
{{expand}}
{{expand}}


==== lua-language-server: Dynamically linked executable error ====
==== lua-language-server: Dynamically linked executable error ==== <!--T:70-->


<!--T:71-->
In your <code>~/.local/state/nvim/lsp.log</code>, you have the following error:
In your <code>~/.local/state/nvim/lsp.log</code>, you have the following error:
</translate>


{{code|lang=text|line=no|1=[ERROR][2025-06-07 23:13:15] ...p/_transport.lua:36 "rpc" "lua-language-server" "stderr" "Could not start dynamically linked executable: /home/incogshift/.local/share/nvim/mason/packages/lua-language-server/libexec/bin/lua-language-server\nNixOS cannot run dynamically linked executables intended for generic\nlinux environments out of the box. For more information, see:\nhttps://nix.dev/permalink/stub-ld\n"}}
{{code|lang=text|line=no|1=[ERROR][2025-06-07 23:13:15] ...p/_transport.lua:36 "rpc" "lua-language-server" "stderr" "Could not start dynamically linked executable: /home/incogshift/.local/share/nvim/mason/packages/lua-language-server/libexec/bin/lua-language-server\nNixOS cannot run dynamically linked executables intended for generic\nlinux environments out of the box. For more information, see:\nhttps://nix.dev/permalink/stub-ld\n"}}


refer to: [https://stackoverflow.com/a/78215911/27134695 stackoverflow comment]<ref>Stack Overflow Contributor, "Answer to 'Could not start dynamically linked executable... on NixOS'", Stack Overflow, 2025, Accessed June 2025. https://stackoverflow.com/a/78215911/27134695</ref>
<!--T:LUA_LS_SO_REF-->
 
<translate>
== References == <!--T:27-->
<!--T:72-->
A solution for this issue can be found on Stack Overflow<ref name="so-lua-ls-dynlink">Stack Overflow Contributor, "Answer to 'Could not start dynamically linked executable... on NixOS'", Stack Overflow, 2025, Accessed June 2025. https://stackoverflow.com/a/78215911/27134695</ref>.


== See also ==
== See also == <!--T:73-->


<!--T:74-->
* [[Home Manager]] – For declarative Neovim configuration at the user level: [https://nix-community.github.io/home-manager/options.html#opt-programs.neovim.enable Neovim module in Home Manager]
* [[Home Manager]] – For declarative Neovim configuration at the user level: [https://nix-community.github.io/home-manager/options.html#opt-programs.neovim.enable Neovim module in Home Manager]
* [https://neovim.io/doc/ Official Documentation] – Official Neovim documentation.
* [https://neovim.io/doc/ Official Documentation] – Official Neovim documentation.
* [https://search.nixos.org/options?channel=unstable&query=services.neovim NixOS options for Neovim services] – System-level Neovim configuration.
* [https://search.nixos.org/options?channel=unstable&query=programs.neovim NixOS options for Neovim] – System-level Neovim configuration.
* [https://discourse.nixos.org/search?q=neovim Neovim discussions on NixOS Discourse] – Community tips, troubleshooting, and use cases.
* [https://discourse.nixos.org/search?q=neovim Neovim discussions on NixOS Discourse] – Community tips, troubleshooting, and use cases.
* [https://github.com/nix-community/neovim-overlay Neovim Overlay on Nixpkgs] – For nightly builds and additional Neovim packages.
* [https://github.com/nix-community/neovim-overlay Neovim Overlay on Nixpkgs] – For nightly builds and additional Neovim packages.


== References ==
== References == <!--T:27-->
 
</translate>


<!--T:75-->
[[Category:Applications]]
[[Category:Applications]]
[[Category:CLI Applications]]
[[Category:CLI Applications]]
[[Category:Text Editor]]
[[Category:Text Editor]]
</translate>