Neovim/ru: Difference between revisions
Created page with "== Настройка ==" |
Updating to match new version of source page |
||
Line 9: | Line 9: | ||
== Установка == | == Установка == | ||
<span id="Using_nix-shell"></span> | |||
<div class="mw-translate-fuzzy"> | |||
==== Используя nix-shell ==== | ==== Используя nix-shell ==== | ||
<syntaxhighlight lang="bash" start="3"> | |||
nix-shell -p neovim | |||
</syntaxhighlight> | |||
</div> | |||
<syntaxhighlight lang="bash" start="3"> | <syntaxhighlight lang="bash" start="3"> | ||
nix-shell -p neovim | nix-shell -p neovim | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<span id="Using_Global_Configuration"></span> | |||
<div class="mw-translate-fuzzy"> | |||
==== Глобально ==== | ==== Глобально ==== | ||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
Line 20: | Line 29: | ||
]; | ]; | ||
</syntaxhighlight>После изменения вашей конфигурации, примените изменения выполнив:<syntaxhighlight lang="bash"> | </syntaxhighlight>После изменения вашей конфигурации, примените изменения выполнив:<syntaxhighlight lang="bash"> | ||
sudo nixos-rebuild switch | |||
</syntaxhighlight> | |||
</div> | |||
<syntaxhighlight lang="text"> | |||
environment.systemPackages = [ | |||
pkgs.neovim | |||
]; | |||
</syntaxhighlight> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
After modifying your configuration, apply the changes by running: | |||
</div> | |||
<syntaxhighlight lang="bash"> | |||
sudo nixos-rebuild switch | sudo nixos-rebuild switch | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 25: | Line 49: | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
==== Using Home Configuration ==== | ==== Using Home Configuration ==== | ||
</div> | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
home.packages = [ | home.packages = [ | ||
pkgs.neovim | pkgs.neovim | ||
]; | ]; | ||
</syntaxhighlight>After updating your configuration, apply the changes by running:<syntaxhighlight lang="bash"> | </syntaxhighlight> | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
After updating your configuration, apply the changes by running: | |||
</div> | |||
<syntaxhighlight lang="bash"> | |||
home-manager switch | home-manager switch | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<span id="Configuration"></span> | <span id="Configuration"></span> | ||
== Настройка == | == Настройка == | ||
<span id="Basic"></span> | |||
<div class="mw-translate-fuzzy"> | |||
==== Начальная ==== | ==== Начальная ==== | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
# Глобальная Настройка | # Глобальная Настройка | ||
programs.neovim = { | |||
enable = true; | |||
defaultEditor = true; | |||
}; | |||
</div> | |||
<syntaxhighlight lang="nix"> | |||
# Global Configuration | |||
programs.neovim = { | programs.neovim = { | ||
enable = true; | enable = true; | ||
Line 45: | Line 86: | ||
}; | }; | ||
# Home Configuration | # Home Configuration | ||
programs.neovim = { | programs.neovim = { | ||
Line 54: | Line 94: | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<span id="Advanced"></span> | |||
<div class="mw-translate-fuzzy"> | |||
==== Пролвинутая ==== | ==== Пролвинутая ==== | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
# Глобальная Настройка | # Глобальная Настройка | ||
programs.neovim = { | |||
enable = true; | |||
defaultEditor = true; | |||
viAlias = true; | |||
vimAlias = true; | |||
configure = { | |||
customRC = '' | |||
set number | |||
set cc=80 | |||
set list | |||
set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:» | |||
if &diff | |||
colorscheme blue | |||
endif | |||
''; | |||
packages.myVimPackage = with pkgs.vimPlugins; { | |||
start = [ ctrlp ]; | |||
}; | |||
}; | |||
}; | |||
</div> | |||
<syntaxhighlight lang="nix"> | |||
# Global Configuration | |||
programs.neovim = { | programs.neovim = { | ||
enable = true; | enable = true; | ||
Line 80: | Line 145: | ||
}; | }; | ||
# Home Configuration | # Home Configuration | ||
# You have to add the line below to set it as the default editor: | # You have to add the line below to set it as the default editor: | ||
environment.variables.EDITOR = "nvim"; | environment.variables.EDITOR = "nvim"; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<span id="Tips_and_Tricks"></span> | <span id="Tips_and_Tricks"></span> | ||
Line 92: | Line 155: | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
==== Location of Options ==== | ==== Location of Options ==== | ||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
The home manager options are defined in the following [https://nix-community.github.io/home-manager/options.xhtml#opt-programs.neovim.enable Home Manager Options Manual]. | The home manager options are defined in the following [https://nix-community.github.io/home-manager/options.xhtml#opt-programs.neovim.enable Home Manager Options Manual]. | ||
</div> | </div> | ||
Line 101: | Line 167: | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
==== Neovim Nightly ==== | ==== Neovim Nightly ==== | ||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
Have a look at the [https://github.com/nix-community/neovim-nightly-overlay Neovim Nightly Overlay] 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] to install the most recent current nightly version of Neovim. | ||
</div> | </div> | ||
Line 112: | Line 181: | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
==== Pre-Configured Configurations ==== | ==== Pre-Configured Configurations ==== | ||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
If you prefer not to configure your system manually, NixOS offers several predefined configurations and community-supported options. Here are a few of them: | If you prefer not to configure your system manually, NixOS offers several predefined configurations and community-supported options. Here are a few of them: | ||
</div> | </div> | ||
Line 117: | Line 189: | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
* [https://www.lazyvim.org/ LazyVim] | * [https://www.lazyvim.org/ LazyVim] | ||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
* [https://astronvim.com/ AstroVim] | * [https://astronvim.com/ AstroVim] | ||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
* [https://nvchad.com/ NVChad] | * [https://nvchad.com/ NVChad] | ||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
Another excellent option is [https://www.lunarvim.org/docs/installation LunarVim]. 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. | Another excellent option is [https://www.lunarvim.org/docs/installation LunarVim]. 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. | ||
</div> | </div> | ||
Line 126: | Line 207: | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
==== Plugin Management ==== | ==== Plugin Management ==== | ||
</div> | |||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
plugins = [ | plugins = [ | ||
# Example Plugin: nvim-tree-lua | # Example Plugin: nvim-tree-lua | ||
pkgs.vimPlugins.nvim-tree-lua | pkgs.vimPlugins.nvim-tree-lua | ||
# Example Plugin: vim-startify with configuration | |||
# Example Plugin: vim-startify with configuration | |||
{ | { | ||
plugin = pkgs.vimPlugins.vim-startify; | plugin = pkgs.vimPlugins.vim-startify; | ||
config = "let g:startify_change_to_vcs_root = 0"; | config = "let g:startify_change_to_vcs_root = 0"; | ||
} | } | ||
# Example Plugin: nvim-colorizer-lua with Lua config | |||
# Example Plugin: nvim-colorizer-lua with Lua config | |||
# Due to how the runtimepath for Lua modules is processed, your configuration may require | # Due to how the runtimepath for Lua modules is processed, your configuration may require | ||
# packadd! plugin-name to require a module. A home-manager example: | # packadd! plugin-name to require a module. A home-manager example: | ||
Line 156: | Line 235: | ||
''; | ''; | ||
} | } | ||
# Example Plugin: nvim-treesitter with Lua config | |||
# Example Plugin: nvim-treesitter with Lua config | |||
{ | { | ||
plugin = pkgs.vimPlugins.nvim-treesitter; | plugin = pkgs.vimPlugins.nvim-treesitter; | ||
Line 195: | Line 272: | ||
''; | ''; | ||
} | } | ||
# | # Installing grammars for tree-sitter | ||
# | # Option 1: Install all grammar packages | ||
pkgs.vimPlugins.nvim-treesitter.withAllGrammars | pkgs.vimPlugins.nvim-treesitter.withAllGrammars | ||
# | # Option 2: Install specific grammar packages | ||
# (pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [ p.c p.java ])) | # (pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [ p.c p.java ])) | ||
# Option 3: Installing grammars without Nix | |||
# Option 3: Installing grammars without Nix | |||
# Installing grammar packages through the built-in command can lead to errors. | # Installing grammar packages through the built-in command can lead to errors. | ||
# The following Neovim command will install syntax highlighting for the C programming language: :TSInstall c | # The following Neovim command will install syntax highlighting for the C programming language: :TSInstall c | ||
]; | ]; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<span id="References"></span> | <span id="References"></span> | ||
== Ссылки == | == Ссылки == | ||
# https://neovim.io/ | # https://neovim.io/ | ||
# https://github.com/neovim/neovim | # https://github.com/neovim/neovim | ||
Line 225: | Line 299: | ||
# https://astronvim.com/ | # https://astronvim.com/ | ||
# https://nvchad.com/ | # https://nvchad.com/ | ||
[[Category:Applications]] | [[Category:Applications]] | ||
[[Category:Text Editor]] | [[Category:Text Editor]] |
Revision as of 13:06, 30 July 2024
Neovim is a highly extensible and open source text editor that aims to improve upon and modernize the popular Vim editor. It's designed to be a drop-in replacement for Vim, maintaining compatibility with most Vim plugins and configurations while offering additional features and improvements. Neovim focuses on extensibility, usability, and performance.
В нем реализована мощная архитектура плагинов, позволяющая выполнять плагины асинхронно, что может значительно повысить производительность некоторых операций. Также в него встроен эмулятор терминала, позволяющий запускать shell-команды непосредственно в редакторе. В проекте особое внимание уделяется качеству и удобству сопровождения кода, а чистая, хорошо документированная кодовая база облегчает разработчикам внесение своего вклада.
Установка
Используя nix-shell
nix-shell -p neovim
nix-shell -p neovim
Глобально
environment.systemPackages = [
pkgs.neovim
];
sudo nixos-rebuild switch
environment.systemPackages = [
pkgs.neovim
];
After modifying your configuration, apply the changes by running:
sudo nixos-rebuild switch
Using Home Configuration
home.packages = [
pkgs.neovim
];
After updating your configuration, apply the changes by running:
home-manager switch
Настройка
Начальная
# Глобальная Настройка
programs.neovim = {
enable = true;
defaultEditor = true;
};
</div>
<syntaxhighlight lang="nix">
# Global Configuration
programs.neovim = {
enable = true;
defaultEditor = true;
};
# Home Configuration
programs.neovim = {
enable = true;
extraConfig = ''
set number relativenumber
'';
};
Пролвинутая
# Глобальная Настройка
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
configure = {
customRC = ''
set number
set cc=80
set list
set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:»
if &diff
colorscheme blue
endif
'';
packages.myVimPackage = with pkgs.vimPlugins; {
start = [ ctrlp ];
};
};
};
</div>
<syntaxhighlight lang="nix">
# Global Configuration
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
configure = {
customRC = ''
set number
set cc=80
set list
set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:»
if &diff
colorscheme blue
endif
'';
packages.myVimPackage = with pkgs.vimPlugins; {
start = [ ctrlp ];
};
};
};
# Home Configuration
# You have to add the line below to set it as the default editor:
environment.variables.EDITOR = "nvim";
Советы и рекомендации
Location of Options
The home manager options are defined in the following Home Manager Options Manual.
The global options are listed on MyNixOS.
Neovim Nightly
Have a look at the Neovim Nightly Overlay to install the most recent current nightly version of Neovim.
You can run the master version via the following command:
nix run "github:nix-community/neovim-nightly-overlay"
Pre-Configured Configurations
If you prefer not to configure your system manually, NixOS offers several predefined configurations and community-supported options. Here are a few of them:
Another excellent option is LunarVim. 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 lunarvim
package from nixpkgs
and is started with the lvim
command.
Конфигурация LunarVim хранится в ~/.config/lvim
.
Plugin Management
plugins = [
# Example Plugin: nvim-tree-lua
pkgs.vimPlugins.nvim-tree-lua
# Example Plugin: vim-startify with configuration
{
plugin = pkgs.vimPlugins.vim-startify;
config = "let g:startify_change_to_vcs_root = 0";
}
# Example Plugin: nvim-colorizer-lua with Lua config
# Due to how the runtimepath for Lua modules is processed, your configuration may require
# packadd! plugin-name to require a module. A home-manager example:
{
plugin = pkgs.vimPlugins.nvim-colorizer-lua;
config = ''
packadd! nvim-colorizer.lua
lua << END
require 'colorizer'.setup {
'*'; -- Highlight all files, but customize some others.
'!vim'; -- Exclude vim from highlighting.
}
END
'';
}
# Example Plugin: nvim-treesitter with Lua config
{
plugin = pkgs.vimPlugins.nvim-treesitter;
config = ''
packadd! nvim-treesitter
lua <<EOF
require'nvim-treesitter.configs'.setup {
highlight = {
enable = true, -- false will disable the whole extension
disable = {}, -- list of languages that will be disabled
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "grn",
scope_incremental = "grc",
node_decremental = "grm",
},
},
textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
["af"] = "@function.outer",
["if"] = "@function.inner",
["ac"] = "@class.outer",
["ic"] = "@class.inner",
},
},
},
}
EOF
'';
}
# Installing grammars for tree-sitter
# Option 1: Install all grammar packages
pkgs.vimPlugins.nvim-treesitter.withAllGrammars
# Option 2: Install specific grammar packages
# (pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [ p.c p.java ]))
# Option 3: Installing grammars without Nix
# Installing grammar packages through the built-in command can lead to errors.
# The following Neovim command will install syntax highlighting for the C programming language: :TSInstall c
];
Ссылки
- https://neovim.io/
- https://github.com/neovim/neovim
- https://nix-community.github.io/home-manager/options.xhtml#opt-programs.neovim.enable
- https://mynixos.com/search?q=nixpkgs%2Foption%2Fprograms.neovim
- https://github.com/m15a/flake-awesome-neovim-plugins
- https://github.com/NixNeovim/NixNeovimPlugins
- https://www.lazyvim.org/
- https://astronvim.com/
- https://nvchad.com/