nix: Editor config

Should have started there I guess.
This commit is contained in:
Geoffrey Frogeye 2023-11-02 17:04:53 +01:00
parent 3d9dc4a4bf
commit 7f71eec03c
Signed by: geoffrey
GPG key ID: C72403E7F82E6AD8
5 changed files with 76 additions and 128 deletions

View file

@ -1,11 +0,0 @@
- name: Upgrade Neovim plugins
command: "nvim +PlugUpgrade +PlugUpdate +PlugInstall +qall!"
listen: nvim plugins changed
environment:
VIMINIT: "source {{ ansible_user_dir }}/.config/nvim/plugininstall.vim"
- name: Upgrade Vim plugins
command: "vim +PlugUpgrade +PlugUpdate +PlugInstall +qall!"
listen: vim plugins changed
environment:
VIMINIT: "source {{ ansible_user_dir }}/.config/vim/plugininstall.vim"

View file

@ -1,101 +0,0 @@
" From https://www.hillelwayne.com/post/intermediate-vim/
set encoding=utf-8
set title
set number
set ruler
set wrap
set scrolloff=10
set ignorecase
set smartcase
set gdefault
if has('nvim')
set inccommand=nosplit " Shows you in realtime what changes your ex command should make.
endif
set incsearch
set hlsearch
set tabstop=4
set shiftwidth=4
set expandtab
set visualbell
set noerrorbells
set backspace=indent,eol,start
set hidden
set updatetime=250
set lazyredraw " Do not redraw screen in the middle of a macro. Makes them complete faster.
set cursorcolumn
set splitbelow
" Turn off relativenumber only for insert mode.
if has('nvim')
set relativenumber
augroup every
autocmd!
au InsertEnter * set norelativenumber
au InsertLeave * set relativenumber
augroup END
endif
" Keep undo history across sessions by storing it in a file
if has('persistent_undo')
let myUndoDir = expand(vimDir . '/undodir')
" Create dirs
call system('mkdir ' . myUndoDir)
let &undodir = myUndoDir
set undofile
endif
syntax enable
" From http://stackoverflow.com/a/5004785/2766106
set list
set listchars=tab:╾╌,trail:·,extends:↦,precedes:↤,nbsp:_
set showbreak=↪
filetype on
filetype plugin on
filetype indent on
set wildmode=longest:full,full
set wildmenu
set showcmd
" Completion
" Avoid showing message extra message when using completion
set shortmess+=c
" Close the file explorer once you select a file
let g:netrw_fastbrowse = 0
" Allow saving of files as sudo when I forgot to start vim using sudo.
" From https://stackoverflow.com/a/7078429
cmap w!! w !sudo tee > /dev/null %
imap jk <Esc>
vmap <Enter> <Esc>
nmap <Enter> o<Esc>
nmap <C-H> :bp<CR>
nmap <C-L> :bn<CR>
nmap <C-K> kkkkkkkkkkkkkkkkkkkkk
nmap <C-J> jjjjjjjjjjjjjjjjjjjjj
" \s to replace globally the word under the cursor
nnoremap <Leader>s :%s/\<<C-r><C-w>\>/
" add extensions to syntax
au BufNewFile,BufRead *.jinja set filetype=jinja2
command Reload source $MYVIMRC

View file

@ -1,18 +1,3 @@
set nocompatible
filetype on
" SET PATHS
set runtimepath+=~/.config/{{ variant }}
let vimDir = '$HOME/.cache/{{ variant }}'
call system('mkdir ' . vimDir)
let &runtimepath.=','.vimDir
set viminfo+=n~/.cache/{{ variant }}/viminfo
" EDITOR CONFIGURATION
{% include 'editor.j2' %}
" PLUGINS CONFIGURATION
{% include 'pluginconfig.j2' %}

View file

@ -21,7 +21,7 @@
# FIXME Still want this despite using nixvim
gpg = {
enable = true;
homedir = "${config.xdg.dataHome}/gnupg";
homedir = "${config.xdg.stateHome}/gnupg";
settings = {
# Remove fluff
no-greeting = true;

View file

@ -34,6 +34,40 @@ in
programs.nixvim = {
enable = true;
options = {
# From https://www.hillelwayne.com/post/intermediate-vim/
title = true;
number = true;
relativenumber = true;
scrolloff = 10;
lazyredraw = true; # Do not redraw screen in the middle of a macro. Makes them complete faster.
cursorcolumn = true;
ignorecase = true;
smartcase = true;
gdefault = true;
tabstop = 4;
shiftwidth = 4;
expandtab = true;
splitbelow = true;
visualbell = true;
updatetime = 250;
undofile = true;
# From http://stackoverflow.com/a/5004785/2766106
list = true;
listchars = "tab:,trail:·,extends:,precedes:,nbsp:_";
showbreak = "";
wildmode = "longest:full,full";
wildmenu = true;
};
globals = {
netrw_fastbrowse = 0; # Close the file explorer once you select a file
};
colorschemes.base16 = {
# FIXME Dynamic... or use stylix
enable = true;
@ -249,6 +283,15 @@ in
./vim/nvim-ts-rainbow.lua
];
extraConfigVim = ''
" GENERAL
" Avoid showing message extra message when using completion
set shortmess+=c
command Reload source $MYVIMRC
" PLUGINS
" vim-gutentags
let g:gutentags_cache_dir = expand('~/.cache/nvim/tags')
@ -273,12 +316,44 @@ in
'';
autoCmd = [
# Turn off relativenumber only for insert mode
{ event = "InsertEnter *"; command = "set norelativenumber"; }
{ event = "InsertLeave *"; command = "set relativenumber"; }
# Additional extensions
{ event = "BufNewFile,BufRead"; pattern = "*.jinja"; command = "set filetype=jinja2"; } # TODO Probably GH-specific?
# vim-easy-align: Align Markdown tables
{ event = "FileType markdown"; command = "vmap <Bar> :EasyAlign*<Bar><Enter>"; }
];
userCommands = {
# Reload = { command = "source $MYVIRMC"; };
# TODO Is not working, options is set to nil even though it shouldn't
};
# 23.11: Use keymaps, seems better
maps = {
# GENERAL
# Allow saving of files as sudo when I forgot to start vim using sudo.
# From https://stackoverflow.com/a/7078429
command."w!!" = { action = "w !sudo tee > /dev/null %"; };
insert."jk" = { action = "<Esc>"; };
visual."<Enter>" = { action = "<Esc>"; };
normal."<Enter>" = { action = "o<Esc>"; };
# normal."<C-H>" = { action = ":bp<CR>"; };
# normal."<C-L>" = { action = ":bn<CR>"; };
normal."<C-K>" = { action = "kkkkkkkkkkkkkkkkkkkkk"; };
normal."<C-J>" = { action = "jjjjjjjjjjjjjjjjjjjjj"; };
# \s to replace globally the word under the cursor
normal."<Leader>s" = { action = ":%s/\\<<C-r><C-w>\\>/"; };
# PLUGINS
# barbar
normal."<C-H>" = { action = "<Cmd>BufferPrevious<CR>"; silent = true; };
normal."<C-L>" = { action = "<Cmd>BufferNext<CR>"; silent = true; };