저는 홈 매니저를 Slice의 모듈로 설치했습니다. Flake와 모듈 은
에 있습니다 /etc/nixos/
.
내 홈 관리자 파일은 에 있는 neovim을 구성하는 다른 파일에 연결되어 있습니다 /etc/nixos/config/nvim/nvim.nix
.
# neovim configuration file
pkgs:
{
enable = true;
vimAlias = true;
# A simple configuration for neovim (sourced files)
extraLuaConfig = ''
-- Indentation
vim.opt.smartindent = true
vim.opt.autoindent = true
-- UI settings
vim.opt.number = true
vim.opt.cursorline = true
'';
plugins = with pkgs.vimPlugins; [
vim-nix
yuck-vim
markdown-preview-nvim
{
plugin = telescope-nvim;
config = ''
" Find files using Telescope command-line sugar.
noremap <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
" Using Lua functions
nnoremap <leader>ff <cmd>lua require('telescope.builtin').find_files()<cr>
nnoremap <leader>fg <cmd>lua require('telescope.builtin').live_grep()<cr>
nnoremap <leader>fb <cmd>lua require('telescope.builtin').buffers()<cr>
nnoremap <leader>fh <cmd>lua require('telescope.builtin').help_tags()<cr>
'';
}
{
type = "lua";
plugin = catppuccin-nvim;
config = ''
require("catppuccin").setup({
flavour = "mocha", -- latte, frappe, macchiato, mocha
background = { -- :h background
light = "latte",
dark = "mocha",
},
transparent_background = false,
show_end_of_buffer = false, -- show the '~' characters after the end of buffers
term_colors = false,
dim_inactive = {
enabled = false,
shade = "dark",
percentage = 0.15,
},
no_italic = false, -- Force no italic
no_bold = false, -- Force no bold
styles = {
comments = { "italic" },
conditionals = { "italic" },
loops = {},
functions = {},
keywords = {},
strings = {},
variables = {},
numbers = {},
booleans = {},
properties = {},
types = {},
operators = {},
},
color_overrides = {},
custom_highlights = {},
integrations = {
cmp = true,
gitsigns = true,
nvimtree = true,
telescope = true,
notify = false,
mini = false,
-- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)
},
})
-- setup must be called before loading
vim.cmd.colorscheme "catppuccin"
'';
}
nvim-web-devicons
neo-tree-nvim
{
type = "lua";
plugin = nvim-treesitter;
config = ''
require'nvim-treesitter.configs'.setup {
ensure_installed = "maintained",
highlight = {
enable = true,
}
}
'';
}
nvim-lspconfig
rust-tools-nvim
];
extraPackages = with pkgs; [
tree-sitter
rust-analyzer
ripgrep
nil
zig
ripgrep
kotlin-language-server
fd
statix
cppcheck
deadnix
alejandra
nodePackages.pyright
nodejs-16_x
tree-sitter
nil
clang-tools
cmake-language-server
# ccls
wl-clipboard
omnisharp-roslyn
netcoredbg
gcc # treesitter
nixfmt
nodePackages.typescript-language-server
python310Packages.autopep8
lazygit
];
}
예를 들어 파일을 열면 다음과 같은 *.lua
오류 메시지가 나타납니다.
Error detected while processing /home/simon/.config/nvim/init.lua:
Could not create parser dir ' /nix/store/w3x3582xldrjymxbxz98lzlfmhazibmy-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter/parser ': Vim:E739: Cannot create directory /nix/sto
re/w3x3582xldrjymxbxz98lzlfmhazibmy-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter/parser: read-only file system
이 문제를 어떻게 해결할 수 있나요? 어떤 도움이라도 대단히 감사하겠습니다.
답변1
nvim-treesitter 를 사용하여 Tree Sitter 구문을 설치할 수 있습니다 nvim-treesitter.withPlugins
. 이와 같은 것이 즉시 작동해야합니다
nvim-treesitter.withPlugins (ps: with ps; [ nix python ])
모든 문법을 설치하려면:
nvim-treesitter.withAllGrammars
이 내용은 다음과 같이 기록됩니다.NixOS 매뉴얼의 vim 섹션
nix 구문을 사용하여 nvim-treesitter를 설치하지 않으려면 parser_install_dir
쓰기 가능하게 만들 수 있습니다. 이 방법은 기본적으로 작동하지 않을 수 있습니다.
require("nvim-treesitter.configs").setup({
parser_install_dir = "/some/path/to/store/parsers",
})
:h nvim-treesitter-quickstart
이 정보는 neovim에서 실행하여 확인할 수 있습니다.