Neovim/ru: Difference between revisions

Unabomberlive (talk | contribs)
Created page with "== Настройка =="
FuzzyBot (talk | contribs)
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>
</div>


<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:
};
};


<div lang="en" dir="ltr" class="mw-content-ltr">
# Home Configuration
# Home Configuration
programs.neovim = {
programs.neovim = {
Line 54: Line 94:
};
};
</syntaxhighlight>
</syntaxhighlight>
</div>


<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:
};
};


<div lang="en" dir="ltr" class="mw-content-ltr">
# 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>
</div>


<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
</div>


   <div lang="en" dir="ltr" class="mw-content-ltr">
   # 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";
   }
   }
</div>


   <div lang="en" dir="ltr" class="mw-content-ltr">
   # 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:
     '';
     '';
   }
   }
</div>


   <div lang="en" dir="ltr" class="mw-content-ltr">
   # 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:
     '';
     '';
   }
   }
</div>


   # Установка грамматики для tree-sitter
   # Installing grammars for tree-sitter
   # Вариант 1: Установите все пакеты грамматики
   # Option 1: Install all grammar packages
   pkgs.vimPlugins.nvim-treesitter.withAllGrammars
   pkgs.vimPlugins.nvim-treesitter.withAllGrammars
    
    
   # Вариант 2: Установите специальные пакеты грамматики
   # 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 ]))


   <div lang="en" dir="ltr" class="mw-content-ltr">
   # 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>
</div>


<span id="References"></span>
<span id="References"></span>
== Ссылки ==
== Ссылки ==


<div lang="en" dir="ltr" class="mw-content-ltr">
 
# 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/
</div>


[[Category:Applications]]
[[Category:Applications]]
[[Category:Text Editor]]
[[Category:Text Editor]]