let nixpkgs = import {}; patchedPkgsSrc = nixpkgs.stdenv.mkDerivation { name = "patchedPkgsSrc"; src = nixpkgs.pkgs.fetchFromGitHub { owner = "nixos"; repo = "nixpkgs-channels"; rev = "81fceb255448415e70b9e7775d590b6def45f861"; sha256 = "0sfx21b9rb6qxjm7li3krk6ik0xxph1il7r5l69n8b9agp72yjfx"; # rev = "1b1fc6550559f9d73ddf7cea611c387a847bf03b"; # sha256 = "0gipwxghvwnv2n7csp8ks3l2g1z7hwqn96bljikkm7p8jjpfb5ds"; }; patches = [ #./build/texlive-url-mirror.patch ./build/update-minted-2.5.patch ]; buildPhase = ""; installPhase = '' cp -a . $out ''; fixupPhase = "true"; postFixup = "true"; }; pkgs = import patchedPkgsSrc {}; mytexlive = (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-full minted pygmentex fvextra; }); in pkgs.stdenv.mkDerivation { name = "msc-thesis"; shellHook = '' alias vim-thesis="vim -p --servername VIM -- \ $PWD/src/docs/thesis.tex \ $PWD/src/docs/glossary.tex \ $PWD/src/docs/parts/context/context.tex \ $PWD/src/docs/parts/research_and_development/research_and_development.tex \ $PWD/src/docs/parts/eval_and_conclusion/eval_and_conclusion.tex \ " ''; buildInputs = [ pkgs.xdotool (pkgs.vim_configurable.customize { name = "vim"; vimrcConfig = { # add custom .vimrc lines like this: customRC = '' set nocompatible " leader let mapleader = ',' " save on ctrl-s nnoremap :w inoremap :wa set hidden syntax on set hlsearch set number " mappings to stop insert mode imap jjj imap kkk imap lll imap hhh set scroll=11 " new scroll mappings noremap noremap noremap :tabn noremap :tabp " TODO: get tab movement working with ctrl-alt-{n,p} noremap :tabm +1 noremap :tabm -1 let g:ctrlp_map = '' let g:ctrlp_custom_ignore = { \ 'dir': '\v[\/]\.(git|hg|svn|)$$', \ 'file': '\v\.(exe|so|dll|so|swp|zip|aux|log|fdb_latexmk|fdb|dvi|lof|lot|pdf|fls|toc|gz|latexmain)$$', \ } " allways show status line set ls=2 set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab "set textwidth=80 " sync default register to clipboard { if has('unnamedplus') set clipboard=unnamedplus else set clipboard=unnamed endif " } " colored brackets { let g:rbpt_colorpairs = [ \ ['brown', 'RoyalBlue3'], \ ['Darkblue', 'SeaGreen3'], \ ['darkgray', 'DarkOrchid3'], \ ['darkgreen', 'firebrick3'], \ ['darkcyan', 'RoyalBlue3'], \ ['darkred', 'SeaGreen3'], \ ['darkmagenta', 'DarkOrchid3'], \ ['brown', 'firebrick3'], \ ['gray', 'RoyalBlue3'], \ ['black', 'SeaGreen3'], \ ['darkmagenta', 'DarkOrchid3'], \ ['Darkblue', 'firebrick3'], \ ['darkgreen', 'RoyalBlue3'], \ ['darkcyan', 'SeaGreen3'], \ ['darkred', 'DarkOrchid3'], \ ['red', 'firebrick3'], \ ] let g:rbpt_max = 16 let g:rbpt_loadcmd_toggle = 0 au VimEnter * RainbowParenthesesToggle au Syntax * RainbowParenthesesLoadRound au Syntax * RainbowParenthesesLoadSquare au Syntax * RainbowParenthesesLoadBraces " } set backspace=indent,eol,start colorscheme PaperColor " Latex Related {{{ au BufRead,BufNewFile *.tex,*.md,*.markdown setlocal spell spelllang=en_us let g:vimtex_view_method = 'zathura' let g:vimtex_complete_enabled = 1 let g:vimtex_complete_close_braces = 1 let g:vimtex_complete_recursive_bib = 1 let g:vimtex_indent_enabled = 1 let g:vimtex_indent_bib_enabled = 1 let g:vimtex_fold_enabled = 1 let g:vimtex_fold_comments = 1 let g:vimtex_fold_preamble = 1 let g:vimtex_latexmk_options = '-verbose -pdf -shell-escape -file-line-error -synctex=1 -interaction=nonstopmode' if !exists('g:ycm_semantic_triggers') let g:ycm_semantic_triggers = {} endif let g:ycm_semantic_triggers.tex = [ \ 're!\\[A-Za-z]*cite[A-Za-z]*(\[[^]]*\]){0,2}{[^}]*', \ 're!\\[A-Za-z]*ref({[^}]*|range{([^,{}]*(}{)?))', \ 're!\\hyperref\[[^]]*', \ 're!\\includegraphics\*?(\[[^]]*\]){0,2}{[^}]*', \ 're!\\(include(only)?|input){[^}]*', \ 're!\\\a*(gls|Gls|GLS)(pl)?\a*(\s*\[[^]]*\]){0,2}\s*\{[^}]*', \ 're!\\includepdf(\s*\[[^]]*\])?\s*\{[^}]*', \ 're!\\includestandalone(\s*\[[^]]*\])?\s*\{[^}]*', \ ] function! ViewerCallback() dict call self.forward_search(self.out) endfunction let g:vimtex_view_zathura_hook_callback = 'ViewerCallback' " }}} autocmd BufWritePost * execute ':silent ! cp /home/steveej/src/mendeley/Static-Code-Analysis-Kernel-Memory-Saftey.bib /home/steveej/src/steveej/msc-thesis/src/docs/thesis.bib >/dev/null 2>&1' ''; vam.knownPlugins = pkgs.vimPlugins; vam.pluginDictionaries = [ "youcompleteme" "vim-airline" "ctrlp" "vim-css-color" "rainbow_parentheses" "vim-colorschemes" "vim-signify" "vimtex" ]; }; }) pkgs.bashInteractive mytexlive pkgs.biber pkgs.pygmentex pkgs.python27Packages.pygments-markdown-lexer pkgs.zathura ]; }