Neovim: Difference between revisions
Revamped the page; Broken translation markers. |
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 | ||
| | |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> | |||
{{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> | |||
{{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 == | |||
{{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> | |||
{{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/ | * [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> | ||
==== FHS wrapper ==== <!--T:67--> | |||
==== 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 "$@" | ||
''; | ''; | ||
} | |||
}} | }} | ||
<!--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]. | |||
<!--T:59--> | |||
== Troubleshooting == | |||
{{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"}} | ||
<!--T:LUA_LS_SO_REF--> | |||
<translate> | |||
<!--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= | * [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--> | ||
< | |||
<!--T:75--> | |||
[[Category:Applications]] | [[Category:Applications]] | ||
[[Category:CLI Applications]] | [[Category:CLI Applications]] | ||
[[Category:Text Editor]] | [[Category:Text Editor]] | ||
</translate> | |||