From 8353554315564b89dfe27d5130080ed04a0a65ad Mon Sep 17 00:00:00 2001 From: Linnnus Date: Sat, 21 Dec 2024 15:47:33 +0100 Subject: Move to a profile-based configuration where common This patch makes it so common configuration is now located in shared/ and each host basically just becomes a bunch of import statements. The exception here is host-specific configuration like the `*.linus.onl` that live inside `hosts/ahmed/`. Specifically I have: - moved common configuration `shared/{nixos,home-manager,nix-darwin}`. - moved `hosts/common.nix` to `shared/nixos/common-{nix,shell}-settings.nix`. - split `hosts/muhammed/{dev-utils,neovim}` into per-language configuration. This patch was done in preparation for the arrival of a new host, which will need to share a lot of configuration with Muhammed. --- home/neovim/init.vim | 274 --------------------------------------------------- 1 file changed, 274 deletions(-) delete mode 100644 home/neovim/init.vim (limited to 'home/neovim/init.vim') diff --git a/home/neovim/init.vim b/home/neovim/init.vim deleted file mode 100644 index eeb6920..0000000 --- a/home/neovim/init.vim +++ /dev/null @@ -1,274 +0,0 @@ -" Settings -""""""""""""""""""""""""""" - -" Leave boomer mode -set nocompatible - -set history=1000 - -" Backspace in insert mode -set backspace=indent,eol,start - -" Hide buffer when abandoned (you can gd away, etc) -set hid - -" Searching -" NOTE: ignorecase and smartcase must be used together (see :h 'smartcase') -set incsearch gdefault ignorecase smartcase nohlsearch - -" Only auto-continue comments when i_ is pressed (not n_o) -" Must be set after :filetype-plugin-on -filetype plugin indent on -au FileType * setlocal fo-=o fo+=r - -" Enable syntax highlighting -syn on - -" Colorscheme -" au VimEnter * ++nested colorscheme ansi_linus - -" Persistent undo -set undofile - -" Give me some thinking time, jesus! -set timeout timeoutlen=2000 - -" Line numbers -set number relativenumber - -" Improve macro performance -set lazyredraw - -" Show matching brackets -set showmatch -set matchtime=2 - -set listchars=tab:>-,eol:$,space:.,trail:@,nbsp:% - -" Enable mouse input for all modes but visual. -" -" I disable mouse in visual mode so I can select text in the terminal using -" the mouse. This is useful when copying text from a remote instance of vim -" SSH session where "* doesn't work. -set mouse=nicr - -" sussy sus the sussy sus -set nowrap - -" Mappings -""""""""""""""""""""""""""" - -let g:mapleader = "\" -let g:maplocalleader = "\" - -" Some keys are hard to press with the Danish layout. Luckily, we have some -" spare keys! Note that ctrl and esc are swapped at the OS level. -nnoremap æ $ -nnoremap Æ 0 - -" Switching windows -" TODO: make this work with iTerm2 panes -" nnoremap -" nnoremap -" nnoremap -" nnoremap -" tnoremap -" tnoremap -" tnoremap -" tnoremap - -" Resize windows -nnoremap + + -nnoremap - - - -" Switching tabs -nnoremap tt :tabnext -nnoremap tn :tabnew -nnoremap to :tabonly -nnoremap tc :tabclose -nnoremap tm :tabmove -" Just use gt and gT -" nnoremap tl :tabn -" nnoremap th :tabN -nnoremap t :tabl -nnoremap t :tabr - -" Fast macros (qq to record) -nnoremap Q @q -vnoremap Q :norm! @q - -" Make Y act like C and D -nnoremap y$ -vnoremap $y - -" Indent using tab key -nnoremap >l -nnoremap >gv -vnoremap -noremap! -noremap! -noremap! - -" Toggle showing 'listchars' -nnoremap l :set list! - -" Escape in terminal mode -tnoremap - -" Seamlessly enter/leave terminal buffer. -tnoremap -au BufEnter term://* norm! i - -" Join to end of line below -" This is already used by the window switching mappings -nnoremap ddpkJ - -" Move window to the left and switch to the eastern window. -" I do this move pretty frequently. -nnoremap Lh - -" If the fzf executable is available, assume that the fzf plugin is going to -" be loaded. In that case we want an easy way to load a file. -if executable("fzf") - nnoremap FZF -else - nnoremap echo "FZF not found!" -endif - -" Define go-to-definition help pages, otherwise see the mappings in the hook -" for LSP configuration. -autocmd Filetype help nnoremap gd - -" Commands -""""""""""""""""""""""""""" - -" Create a temporary buffer -" NOTE: relied on by other commands -command Temp new | setlocal buftype=nofile bufhidden=wipe noswapfile nomodified nobuflisted -command TempTab tabnew | setlocal buftype=nofile bufhidden=wipe noswapfile nomodified nobuflisted - -" Reverse lines -command! -bar -range=% Reverse ,g/^/m-1|nohl - -" Redraw screen -" CTRL-L mapping is used in other thing -command Redraw norm! - -" Run buffer contents as vimscript -command! -bar -range=% Run execute 'silent!' . . ',' . . 'y|@"' - -" Output the result of a command to the buf -command! -nargs=+ -complete=command Output - \ redir => output | - \ silent execute | - \ redir END | - \ tabnew | - \ setlocal buftype=nofile bufhidden=wipe noswapfile nobuflisted nomodified | - \ silent put=output | - \ if =~ ':!' | - \ silent 1,2delete _ | - \ else | - \ silent 1,4delete _ | - \ endif - -" Copy buffer to system clipboard -command! Copy silent w !pbcopy - -" Copy the location of the current file -command! CopyDir !echo %:r | pbcopy - -" View in-memory changes before writing to disk -command! DiffOnDisk - \ let orig_filetype=&ft | - \ vert new | - \ read ++edit # | 0d_ | - \ setlocal bt=nofile bh=wipe nobl noswf ro | - \ let &l:filetype = orig_filetype | - \ diffthis | - \ wincmd p | - \ diffthis - -command WrapItUp setlocal wrap - \| nnoremap j gj - \| nnoremap k gk - \| nnoremap 0 g0 - \| nnoremap $ g$ - -" Miscellaneous -""""""""""""""""""""""""""" - -" Show the color column only if insert mode (and only if cc is set) -augroup ShowCCInInsertMode - au! - au InsertEnter * if &tw != 0 | let &cc = &tw + 1 | endif - au InsertLeave * let &cc = 0 -augroup END - -" Auto-refresh vim config -" au BufWritePost $XDG_CONFIG_HOME/*.{vim,lua} so % - -" Jump to last editing location when opening files -au BufReadPost * - \ if line("'\"") > 0 && line("'\"") <= line("$") | - \ exe "normal! g'\"" | - \ endif - -augroup Sus - au! - - " Add syntax groups if relevant. This conditional is compensating for - " the lack of negative matches in :au. - " - " See: https://vim.fandom.com/wiki/Highlight_unwanted_spaces - " See: https://stackoverflow.com/questions/6496778/vim-run-autocmd-on-all-filetypes-except - fun! s:AddSyntax() - if bufname() !~ 'term://\|man://' - " Any trailing whitespace at the end of lines. - syn match SusWhitespace /\s\+$/ containedin=ALL - - " Any non-breaking spaces. These are generated by - " CMD+SPACE and deeply annoying. - syn match SusWhitespace /\%u00A0/ containedin=ALL - - " Any characters beyond the maximum width of the text. - if &tw > 0 - let reg = '\%' . (&tw + 1) . 'v.\+' - exe 'syn match SusWhitespace /'.reg.'/ containedin=ALL' - endif - endif - endfun - - " Remove highligt group. - " - " Note that we have to do abit more work since the the syntax rules - " have changed under Vim's nose. Hopefully the perfomance - " characteristics don't come back to haunt us. - fun! s:RemoveSyntax() - syn clear SusWhitespace - syn sync fromstart - endfun - - " Add a persistent highligt group, which matches are going to use. - au VimEnter,ColorScheme * hi SusWhitespace ctermbg=red guibg=red - - " Create some persistent syntax highlighting groups. - au Syntax * call s:AddSyntax() - - " When 'textwidth' changes, we may need to recalculate. - au OptionSet textwidth call s:RemoveSyntax() - \ | call s:AddSyntax() - - " Temporarily remove the groups when in insert mode. - au InsertEnter * call s:RemoveSyntax() - au InsertLeave * call s:AddSyntax() -augroup END - -" Allow for quick prototyping outside of NixOS/Home-Manager by loading some -" extra configuration if relevant. -let extra_vimrc = expand("~/extra-temporary.vimrc") -if filereadable(extra_vimrc) - execute "source " . extra_vimrc -endif -- cgit v1.2.3