Compare commits
3 commits
903e30368a
...
fa9e6e81e1
Author | SHA1 | Date | |
---|---|---|---|
|
fa9e6e81e1 | ||
|
7b7a10664e | ||
|
1158a1ecfe |
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue