diff --git a/home/home.nix b/home/home.nix index 2568e70..ba4d362 100644 --- a/home/home.nix +++ b/home/home.nix @@ -440,9 +440,8 @@ in ipb = "ip --color --brief"; ll = "ls -l"; wavesynth = "nix-shell -p sox --run 'play -n synth brownnoise synth pinknoise mix synth 0 0 0 15 40 80 trapezium amod 0.2 20'"; - vim = "nvim"; }; home.sessionVariables = { - EDITOR = "nvim"; + EDITOR = "vim"; }; } diff --git a/home/overlays.nix b/home/overlays.nix index f2ae044..74aa9ce 100644 --- a/home/overlays.nix +++ b/home/overlays.nix @@ -3,8 +3,11 @@ ( self: super: rec { - myVim = with super; neovim.override { configure = { - packages.myVimPackage = with pkgs.vimPlugins; { + #jami-ring-daemon = super.qt5.callPackage ./ov/jami/ring-daemon.nix {}; + myVim = with super; (vim_configurable.override { python = python3; }).customize { + # executable/ package name + name = "vim"; + vimrcConfig.packages.myVimPackage = with pkgs.vimPlugins; { # loaded on start start = [ ale @@ -24,8 +27,124 @@ vim-jinja ]; }; - customRC = builtins.readFile ./vimrc; - };}; + vimrcConfig.customRC = '' + " disable vim modelines for security reasons + set modelines=0 + set nomodeline + + " Uncomment the following to have Vim jump to the last position when + " reopening a file + if has("autocmd") + au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif + endif + + set nocompatible + set hidden + + " automatically close preview window after suggestion + autocmd CompleteDone * pclose + + " Pathogen + "execute pathogen#infect() + "call pathogen#infect() + "call pathogen#helptags() + + set statusline=%<\ %n:%f\ %m%r%y%=%-35.(line:\ %l\ of\ %L,\ col:\ %c%V\ (%P)%) + filetype plugin indent on + + syntax on + + set number + set mouse=a + set mousehide + + set backspace=indent,eol,start + + set hlsearch + set showmatch + set incsearch + set autoindent + set history=1000 + " set cursorline + if has("unnamedplus") + set clipboard=unnamedplus + elseif has("clipboard") + set clipboard=unnamed + endif + + " set expandtab + set shiftwidth=4 + set tabstop=4 + set softtabstop=4 + + " enable truecolor support + "let &t_8f = "\[38;2;%lu;%lu;%lum" + "let &t_8b = "\[48;2;%lu;%lu;%lum" + "set termguicolors + " + "let base16colorspace=256 + + "colorscheme base16-tomorrow-night + "colorscheme Tomorrow-Night + "colorscheme base16-default-dark + + set background=dark + + " Use the same symbols as TextMate for tabstops and EOLs + set listchars=tab:▸\ ,eol:¬ + + " default tab completion with supertab + let g:SuperTabDefaultCompletionType = "context" + + + " LanguageClient + " Required for operations modifying multiple buffers like rename. + set hidden + nnoremap :call LanguageClient_contextMenu() + let g:LanguageClient_serverCommands = { 'haskell': ['hie-wrapper', '--lsp'] } + + " enable LanguageClient functions only if a server mapping exists + function LC_maps() + if has_key(g:LanguageClient_serverCommands, &filetype) + nnoremap K :call LanguageClient#textDocument_hover() + nnoremap gd :call LanguageClient#textDocument_definition() + nnoremap :call LanguageClient#textDocument_rename() + set omnifunc=LanguageClient#complete + set completefunc=LanguageClient#complete + endif + endfunction + + autocmd FileType * call LC_maps() + + au FileType python setlocal tabstop=4 expandtab shiftwidth=4 softtabstop=4 + au FileType haskell setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 + " haskell-vim + let g:haskell_enable_quantification = 1 " to enable highlighting of `forall` + let g:haskell_enable_recursivedo = 1 " to enable highlighting of `mdo` and `rec` + let g:haskell_enable_arrowsyntax = 1 " to enable highlighting of `proc` + let g:haskell_enable_pattern_synonyms = 1 " to enable highlighting of `pattern` + let g:haskell_enable_typeroles = 1 " to enable highlighting of type roles + let g:haskell_enable_static_pointers = 1 " to enable highlighting of `static` + let g:haskell_backpack = 1 " to enable highlighting of backpack keywords + au FileType markdown setlocal tabstop=4 expandtab shiftwidth=4 softtabstop=4 + au FileType nix setlocal tabstop=2 expandtab shiftwidth=2 softtabstop=2 + set ofu=syntaxcomplete#Complete + " nmap "+gP + " imap a + vmap "+y + + " ALE linter settings + let g:ale_linters = { 'python': ['flake8'] } + + " vim-pandoc settings + let g:pandoc#modules#disabled = ["spell"] + set textwidth=0 + set wrapmargin=0 + ''; + }; + # build with debug symbols and in debug mode (less optimized) + opencvDebug = with super; enableDebugging ((opencv3.override { enablePython = true; enableGtk3 = true; enableDocs = true; pythonPackages = pkgs.python3Packages; }).overrideAttrs (oldAttrs: rec { cmakeBuildType = "Debug"; })); + #gnutls = super.callPackage ./ov/gnutls {inherit (super.darwin.apple_sdk.frameworks) Security;}; } ) diff --git a/home/vimrc b/home/vimrc deleted file mode 100644 index 03bc2e7..0000000 --- a/home/vimrc +++ /dev/null @@ -1,111 +0,0 @@ -" disable vim modelines for security reasons -set modelines=0 -set nomodeline - -" Uncomment the following to have Vim jump to the last position when -" reopening a file -if has("autocmd") - au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif -endif - -set nocompatible -set hidden - -" automatically close preview window after suggestion -autocmd CompleteDone * pclose - -" Pathogen -"execute pathogen#infect() -"call pathogen#infect() -"call pathogen#helptags() - -set statusline=%<\ %n:%f\ %m%r%y%=%-35.(line:\ %l\ of\ %L,\ col:\ %c%V\ (%P)%) -filetype plugin indent on - -syntax on - -set number -set mouse=a -set mousehide - -set backspace=indent,eol,start - -set hlsearch -set showmatch -set incsearch -set autoindent -set history=1000 -" set cursorline -" use system clipboard as default buffer -" unnamedplus corresponds to the + register on Linux, -" representing system clipboard (not X11 clipboard) -set clipboard=unnamedplus - -" set expandtab -set shiftwidth=4 -set tabstop=4 -set softtabstop=4 - -" enable truecolor support -"let &t_8f = "\[38;2;%lu;%lu;%lum" -"let &t_8b = "\[48;2;%lu;%lu;%lum" -"set termguicolors -" -"let base16colorspace=256 - -"colorscheme base16-tomorrow-night -"colorscheme Tomorrow-Night -"colorscheme base16-default-dark - -set background=dark - -" Use the same symbols as TextMate for tabstops and EOLs -set listchars=tab:▸\ ,eol:¬ - -" default tab completion with supertab -let g:SuperTabDefaultCompletionType = "context" - - -" LanguageClient -" Required for operations modifying multiple buffers like rename. -set hidden -nnoremap :call LanguageClient_contextMenu() -let g:LanguageClient_serverCommands = { 'haskell': ['hie-wrapper', '--lsp'] } - -" enable LanguageClient functions only if a server mapping exists -function LC_maps() - if has_key(g:LanguageClient_serverCommands, &filetype) - nnoremap K :call LanguageClient#textDocument_hover() - nnoremap gd :call LanguageClient#textDocument_definition() - nnoremap :call LanguageClient#textDocument_rename() - set omnifunc=LanguageClient#complete - set completefunc=LanguageClient#complete - endif -endfunction - -autocmd FileType * call LC_maps() - -au FileType python setlocal tabstop=4 expandtab shiftwidth=4 softtabstop=4 -au FileType haskell setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 -" haskell-vim -let g:haskell_enable_quantification = 1 " to enable highlighting of `forall` -let g:haskell_enable_recursivedo = 1 " to enable highlighting of `mdo` and `rec` -let g:haskell_enable_arrowsyntax = 1 " to enable highlighting of `proc` -let g:haskell_enable_pattern_synonyms = 1 " to enable highlighting of `pattern` -let g:haskell_enable_typeroles = 1 " to enable highlighting of type roles -let g:haskell_enable_static_pointers = 1 " to enable highlighting of `static` -let g:haskell_backpack = 1 " to enable highlighting of backpack keywords -au FileType markdown setlocal tabstop=4 expandtab shiftwidth=4 softtabstop=4 -au FileType nix setlocal tabstop=2 expandtab shiftwidth=2 softtabstop=2 -set ofu=syntaxcomplete#Complete -" nmap "+gP -" imap a -"vmap "+y - -" ALE linter settings -let g:ale_linters = { 'python': ['flake8'] } - -" vim-pandoc settings -let g:pandoc#modules#disabled = ["spell"] -set textwidth=0 -set wrapmargin=0