52 lines
1.7 KiB
Nix
52 lines
1.7 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib; let
|
|
cfg = config.local.apps.neovim;
|
|
in {
|
|
options.local.apps.neovim = {
|
|
enable = mkEnableOption "Neovim settings";
|
|
};
|
|
config = mkIf cfg.enable {
|
|
programs.neovim = {
|
|
enable = true;
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
defaultEditor = true;
|
|
|
|
extraConfig = ''
|
|
set nobackup
|
|
set showmatch " show matching
|
|
set hlsearch " highlight search
|
|
set incsearch " incremental search
|
|
set tabstop=4 " number of columns occupied by a tab
|
|
set softtabstop=4 " see multiple spaces as tabstops so <BS> does the right thing
|
|
set shiftwidth=4 " width for autoindents
|
|
set autoindent " indent a new line the same amount as the line just typed
|
|
set number " add line numbers
|
|
set wildmode=longest,list " get bash-like tab completions
|
|
set cc=80 " set an 80 column border for good coding style
|
|
filetype plugin indent on " allow auto-indenting depending on file type
|
|
syntax on " syntax highlighting
|
|
set mouse=a " enable mouse click
|
|
set clipboard=unnamedplus " using system clipboard
|
|
filetype plugin on
|
|
set cursorline " highlight current cursorline
|
|
set ttyfast " Speed up scrolling in Vim
|
|
set noswapfile " disable creating swap file
|
|
'';
|
|
|
|
plugins = with pkgs.vimPlugins; [
|
|
vim-nix
|
|
vim-visual-multi
|
|
];
|
|
};
|
|
home.sessionVariables = {
|
|
"EDITOR" = mkForce "neovim";
|
|
};
|
|
};
|
|
}
|