Compare commits

...

3 Commits

2 changed files with 179 additions and 4 deletions

View File

@ -378,4 +378,70 @@ in
};
lfs.enable = true;
};
# shell config
programs.zsh = {
enable = true;
enableSyntaxHighlighting = true;
history.ignoreSpace = true;
initExtra = ''
# Uncomment following line if you want red dots to be displayed while waiting for completion
COMPLETION_WAITING_DOTS="true"
### Fix slowness of pastes with zsh-syntax-highlighting.zsh
pasteinit() {
OLD_SELF_INSERT=$\{$\{(s.:.)widgets[self-insert]}[2,3]}
zle -N self-insert url-quote-magic # I wonder if you'd need `.url-quote-magic`?
}
pastefinish() {
zle -N self-insert $OLD_SELF_INSERT
}
zstyle :bracketed-paste-magic paste-init pasteinit
zstyle :bracketed-paste-magic paste-finish pastefinish
# automatic rehash of path completion
zstyle ':completion:*' rehash true
eval "$(${pkgs.thefuck}/bin/thefuck --alias)"
## helper functions
nixify() {
if [ ! -e ./.envrc ]; then
echo "eval \"$(lorri direnv)\"" > .envrc
direnv allow
fi
if [ ! -e shell.nix ]; then
cat > shell.nix <<'EOF'
with import <nixpkgs> {};
mkShell {
buildInputs = [
bashInteractive
];
}
EOF
${EDITOR:-vim} default.nix
fi
}
binpath() {
realpath $(${pkgs.which}/bin/which $1)
}
'';
oh-my-zsh = {
enable = true;
theme = "bira";
plugins = [ "git" "python" "systemd" "gpg-agent"];
};
};
home.shellAliases = {
ip = "ip --color";
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'";
};
home.sessionVariables = {
EDITOR = "vim";
};
}

View File

@ -27,10 +27,119 @@
vim-jinja
];
};
vimrcConfig.customRC =
''if filereadable($HOME . "/.vimrc")
source ~/.vimrc
endif
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 = "\<Esc>[38;2;%lu;%lu;%lum"
"let &t_8b = "\<Esc>[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 <F5> :call LanguageClient_contextMenu()<CR>
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 <buffer> <silent> K :call LanguageClient#textDocument_hover()<cr>
nnoremap <buffer> <silent> gd :call LanguageClient#textDocument_definition()<CR>
nnoremap <buffer> <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
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 <C-V> "+gP
" imap <C-V> <ESC><C-V>a
vmap <C-C> "+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)