start with vim
This commit is contained in:
parent
3be112cc46
commit
e1378a3617
@ -32,9 +32,12 @@
|
|||||||
|
|
||||||
base = {
|
base = {
|
||||||
zfs.enable = true;
|
zfs.enable = true;
|
||||||
users.passwd = {
|
users = {
|
||||||
root.passwordFile = config.age.secrets.root-passwd-hash.path;
|
installVimPlugins = true;
|
||||||
motiejus.passwordFile = config.age.secrets.motiejus-passwd-hash.path;
|
passwd = {
|
||||||
|
root.passwordFile = config.age.secrets.root-passwd-hash.path;
|
||||||
|
motiejus.passwordFile = config.age.secrets.motiejus-passwd-hash.path;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
snapshot = {
|
snapshot = {
|
||||||
|
@ -123,10 +123,6 @@
|
|||||||
brotli
|
brotli
|
||||||
zopfli
|
zopfli
|
||||||
];
|
];
|
||||||
|
|
||||||
variables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
@ -134,10 +130,7 @@
|
|||||||
|
|
||||||
sysdig.enable = pkgs.stdenv.hostPlatform.system == "x86_64-linux";
|
sysdig.enable = pkgs.stdenv.hostPlatform.system == "x86_64-linux";
|
||||||
|
|
||||||
neovim = {
|
vim.defaultEditor = true;
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
@ -6,6 +6,11 @@
|
|||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
options.mj.base.users = with lib.types; {
|
options.mj.base.users = with lib.types; {
|
||||||
|
installVimPlugins = lib.mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
|
||||||
passwd = lib.mkOption {
|
passwd = lib.mkOption {
|
||||||
type = attrsOf (submodule (
|
type = attrsOf (submodule (
|
||||||
{...}: {
|
{...}: {
|
||||||
@ -50,6 +55,15 @@
|
|||||||
home-manager.users.motiejus = {pkgs, ...}: {
|
home-manager.users.motiejus = {pkgs, ...}: {
|
||||||
home.stateVersion = "23.05";
|
home.stateVersion = "23.05";
|
||||||
programs.direnv.enable = true;
|
programs.direnv.enable = true;
|
||||||
|
programs.vim = {
|
||||||
|
enable = true;
|
||||||
|
plugins = lib.mkIf config.mj.base.users.installVimPlugins [
|
||||||
|
pkgs.vimPlugins.fugitive
|
||||||
|
pkgs.vimPlugins.vim-go
|
||||||
|
pkgs.vimPlugins.zig-vim
|
||||||
|
];
|
||||||
|
extraConfig = builtins.readFile ./vimrc;
|
||||||
|
};
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userEmail = "motiejus@jakstys.lt";
|
userEmail = "motiejus@jakstys.lt";
|
||||||
|
91
modules/base/users/vimrc
Normal file
91
modules/base/users/vimrc
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
if $VIM_PATH != ""
|
||||||
|
let $PATH = $VIM_PATH
|
||||||
|
endif
|
||||||
|
|
||||||
|
syntax on
|
||||||
|
filetype plugin indent on
|
||||||
|
set et ts=4 sw=4 sts=4 nu hlsearch ruler ignorecase smartcase nomodeline bg=dark incsearch
|
||||||
|
set path=**/* grepprg=rg\ --vimgrep grepformat^=%f:%l:%c:%m backspace=2 nojs
|
||||||
|
set laststatus=1
|
||||||
|
nnoremap <Leader>\ gqj
|
||||||
|
command OLD :enew | setl buftype=nofile | 0put =v:oldfiles | nnoremap <buffer> <CR> :e <C-r>=getline('.')<CR><CR>
|
||||||
|
|
||||||
|
let g:gutentags_enabled = 0
|
||||||
|
let g:gutentags_generate_on_new = 0
|
||||||
|
let g:gutentags_cache_dir = '~/.vim/ctags'
|
||||||
|
let b:gutentags_file_list_command = 'git ls-files'
|
||||||
|
|
||||||
|
call matchadd('ColorColumn', '\%81v', 100)
|
||||||
|
" thanks to drew de vault's vimrc, except swearing
|
||||||
|
set mouse=a
|
||||||
|
set backupdir=~/.cache directory=~/.cache
|
||||||
|
"nnoremap Q :grep <cword><CR>
|
||||||
|
nmap gs :grep <cursor><CR>
|
||||||
|
|
||||||
|
" bits from vim-sensible
|
||||||
|
set autoindent smarttab nrformats-=octal
|
||||||
|
nnoremap <silent> <C-L> :nohlsearch<C-R>=has('diff')?'<Bar>diffupdate':''<CR><CR><C-L>
|
||||||
|
set wildmenu sidescrolloff=5 display+=lastline encoding=utf-8
|
||||||
|
set formatoptions+=j history=1000 tabpagemax=50 sessionoptions-=options
|
||||||
|
|
||||||
|
" so Gdiff and vimdiff output are somewhat readable
|
||||||
|
if &diff
|
||||||
|
syntax off
|
||||||
|
endif
|
||||||
|
|
||||||
|
if has("patch-8.1-0360")
|
||||||
|
set diffopt+=algorithm:patience
|
||||||
|
endif
|
||||||
|
|
||||||
|
"nmap gs :rg :grep <cword>
|
||||||
|
|
||||||
|
" html
|
||||||
|
au FileType html,gohtmltmpl setlocal ts=2 sw=2 sts=2
|
||||||
|
|
||||||
|
" ruby
|
||||||
|
au BufRead,BufNewFile Vagrantfile setfiletype ruby
|
||||||
|
|
||||||
|
" starlark
|
||||||
|
au BufRead,BufNewFile *.star setfiletype python
|
||||||
|
|
||||||
|
" puppet
|
||||||
|
au BufRead,BufNewFile *.pp setfiletype puppet
|
||||||
|
au FileType puppet setlocal ts=2 sw=2 sts=2 syntax=ruby
|
||||||
|
au FileType puppet let g:gutentags_enabled = 1
|
||||||
|
au FileType puppet let b:gutentags_file_list_command = 'git ls-files *.pp'
|
||||||
|
au FileType puppet nnoremap <buffer> <C-]> :call search('\s', 'b')<cr>:call search('\w')<cr>vE<C-]>
|
||||||
|
"au FileType puppet nnoremap <buffer> <C-]> :call search('\s', 'b')<cr>:call search('\w')<cr>:call search('[^a-z:]\|$', 's')<cr>hv`'<C-]>
|
||||||
|
|
||||||
|
" puppet
|
||||||
|
au BufRead,BufNewFile *.j2 setfiletype django
|
||||||
|
|
||||||
|
" avro
|
||||||
|
au BufRead,BufNewFile *.avsc setfiletype json
|
||||||
|
au BufRead,BufNewFile *.avsc setlocal ts=2 sw=2 sts=2
|
||||||
|
|
||||||
|
" redo
|
||||||
|
au BufRead,BufNewFile *.do setfiletype sh
|
||||||
|
|
||||||
|
" go
|
||||||
|
au FileType go setlocal noet
|
||||||
|
au FileType go nnoremap <buffer> <C-]> :GoDef<CR>
|
||||||
|
au FileType go let g:go_template_autocreate = 0
|
||||||
|
au FileType go let g:go_fmt_command = "goimports"
|
||||||
|
|
||||||
|
" strace
|
||||||
|
au FileType strace setlocal nonu
|
||||||
|
|
||||||
|
" yaml
|
||||||
|
au FileType yaml setlocal ts=2 sw=2 sts=2
|
||||||
|
|
||||||
|
" sql
|
||||||
|
au FileType sql setlocal formatprg=pg_format\ -
|
||||||
|
au FileType sql setlocal ts=2 sw=2 sts=2
|
||||||
|
let g:loaded_sql_completion = 0
|
||||||
|
let g:omni_sql_no_default_maps = 1
|
||||||
|
|
||||||
|
" mail
|
||||||
|
autocmd BufRead,BufNewFile *mutt-* setfiletype mail
|
||||||
|
|
||||||
|
" TeX
|
||||||
|
au FileType tex setlocal spell spelllang=en_us ts=2 sw=2 sts=2
|
Loading…
Reference in New Issue
Block a user