jeschli:+ retiolum, +lass vim
This commit is contained in:
parent
a19df91320
commit
64e0ccac92
@ -7,8 +7,8 @@
|
|||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ # Include the results of the hardware scan.
|
[ # Include the results of the hardware scan.
|
||||||
|
<stockholm/jeschli>
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
<stockholm/jeschli/2configs/vim.nix>
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Use the GRUB 2 boot loader.
|
# Use the GRUB 2 boot loader.
|
||||||
@ -20,7 +20,7 @@
|
|||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
# Define on which hard drive you want to install Grub.
|
# Define on which hard drive you want to install Grub.
|
||||||
# boot.loader.grub.device = "/dev/disk/by-id/wwn-0x5002538844584d30"; # or "nodev" for efi only
|
# boot.loader.grub.device = "/dev/disk/by-id/wwn-0x5002538844584d30"; # or "nodev" for efi only
|
||||||
|
|
||||||
boot.initrd.luks.devices = [
|
boot.initrd.luks.devices = [
|
||||||
{
|
{
|
||||||
name = "root";
|
name = "root";
|
||||||
@ -64,7 +64,7 @@
|
|||||||
rxvt_unicode
|
rxvt_unicode
|
||||||
# editors
|
# editors
|
||||||
emacs
|
emacs
|
||||||
# internet
|
# internet
|
||||||
thunderbird
|
thunderbird
|
||||||
chromium
|
chromium
|
||||||
google-chrome
|
google-chrome
|
||||||
@ -85,7 +85,6 @@
|
|||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
# started in user sessions.
|
# started in user sessions.
|
||||||
programs.bash.enableCompletion = true;
|
|
||||||
# programs.mtr.enable = true;
|
# programs.mtr.enable = true;
|
||||||
# programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
|
# programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
|
||||||
|
|
||||||
@ -95,7 +94,7 @@
|
|||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
users.users.root.openssh.authorizedKeys.keys = [
|
users.users.root.openssh.authorizedKeys.keys = [
|
||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMPuFzd6p3zZETIjoV5mRxCTQgeZk9s/P374mEDbj58wDTT0uGWu2JRf7cL1QRTvd5238tYl0eSHXH65+oaFB/mIvmiRnuw6qQODOMHlSbJN5/J2hEw/3v5gveiP1xNLfKlFhj6mmMRF7Etvzns/kLGLCSjj1UTlfo4iHmtinPmU+iQ8J4foS4cZj4oZesF8gndkc2EFMfL6en7EuU8GK6U9GtwKNL9N4UoUZXu8Nf00pkn/jrpmsDdI4zdVVAxWeu/Lo4li43EVixLcfwQiwzf6S9FvYIv30xPdy92GJSJwxm/QkYuc48VZWUoE+qThf3IEPETtX+MRZrM8RTtY01 markus@reaganzglas"
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMPuFzd6p3zZETIjoV5mRxCTQgeZk9s/P374mEDbj58wDTT0uGWu2JRf7cL1QRTvd5238tYl0eSHXH65+oaFB/mIvmiRnuw6qQODOMHlSbJN5/J2hEw/3v5gveiP1xNLfKlFhj6mmMRF7Etvzns/kLGLCSjj1UTlfo4iHmtinPmU+iQ8J4foS4cZj4oZesF8gndkc2EFMfL6en7EuU8GK6U9GtwKNL9N4UoUZXu8Nf00pkn/jrpmsDdI4zdVVAxWeu/Lo4li43EVixLcfwQiwzf6S9FvYIv30xPdy92GJSJwxm/QkYuc48VZWUoE+qThf3IEPETtX+MRZrM8RTtY01 markus@reaganzglas"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Open ports in the firewall.
|
# Open ports in the firewall.
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
@ -133,4 +132,13 @@
|
|||||||
# should.
|
# should.
|
||||||
system.stateVersion = "18.03"; # Did you read the comment?
|
system.stateVersion = "18.03"; # Did you read the comment?
|
||||||
|
|
||||||
|
programs.bash = {
|
||||||
|
enableCompletion = true;
|
||||||
|
interactiveShellInit = ''
|
||||||
|
export GOPATH=$HOME/go
|
||||||
|
export PATH=$PATH:$GOPATH/bin
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
krebs.build.host = config.krebs.hosts.reagenzglas;
|
||||||
}
|
}
|
||||||
|
102
jeschli/2configs/copy-vim.nix
Normal file
102
jeschli/2configs/copy-vim.nix
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
|
||||||
|
# let
|
||||||
|
# customPlugins.ultisnips = pkgs.vimUtils.buildVimPlugin {
|
||||||
|
# name = "ultisnips";
|
||||||
|
# src = pkgs.fetchFromGitHub {
|
||||||
|
# owner = "SirVer";
|
||||||
|
# repo = "ultisnips";
|
||||||
|
# rev = "3.1";
|
||||||
|
# sha256 = "0p9d91h9pm0nx0d77lqsgv6158q052cyj4nm1rd6zvbay9bkkf8b";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
#
|
||||||
|
let
|
||||||
|
customPlugins.vim-javascript = pkgs.vimUtils.buildVimPlugin {
|
||||||
|
name = "vim-javascript";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "pangloss";
|
||||||
|
repo = "vim-javascript";
|
||||||
|
rev = "1.2.5.1";
|
||||||
|
sha256 = "08l7ricd3j5h2bj9i566byh39v9n5wj5mj75f2c8a5dsc732b2k7";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
customPlugins.vim-jsx = pkgs.vimUtils.buildVimPlugin {
|
||||||
|
name = "vim-jsx";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "mxw";
|
||||||
|
repo = "vim-jsx";
|
||||||
|
rev = "5b968dfa512c57c38ad7fe420f3e8ab75a73949a";
|
||||||
|
sha256 = "1z3yhhbmbzfw68qjzyvpbmlyv2a1p814sy5q2knn04kcl30vx94a";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
# {
|
||||||
|
environment.systemPackages = [
|
||||||
|
(pkgs.vim_configurable.customize {
|
||||||
|
name = "vim";
|
||||||
|
|
||||||
|
vimrcConfig.customRC = ''
|
||||||
|
:imap jk <Esc>
|
||||||
|
:vmap v v
|
||||||
|
:map gr :GoRun<Enter>
|
||||||
|
:nnoremap <S-TAB> :bnext<CR>
|
||||||
|
:nnoremap <C-TAB> <c-w><c-w>
|
||||||
|
set autowrite
|
||||||
|
set number
|
||||||
|
set ruler
|
||||||
|
|
||||||
|
noremap x "_x
|
||||||
|
set clipboard=unnamedplus
|
||||||
|
|
||||||
|
let g:jsx_ext_required = 0
|
||||||
|
|
||||||
|
let g:go_list_type = "quickfix"
|
||||||
|
let g:go_test_timeout = '10s'
|
||||||
|
let g:go_fmt_command = "goimports"
|
||||||
|
let g:go_snippet_case_type = "camelcase"
|
||||||
|
let g:go_highlight_types = 1
|
||||||
|
let g:go_highlight_fields = 1
|
||||||
|
let g:go_highlight_functions = 1
|
||||||
|
let g:go_highlight_methods = 1
|
||||||
|
let g:go_highlight_extra_types = 1
|
||||||
|
autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4
|
||||||
|
let g:rehash256 = 1
|
||||||
|
let g:molokai_original = 1
|
||||||
|
colorscheme molokai
|
||||||
|
let g:go_metalinter_enabled = ['vet', 'golint', 'errcheck']
|
||||||
|
let g:go_metalinter_autosave = 1
|
||||||
|
" let g:go_metalinter_autosave_enabled = ['vet', 'golint']
|
||||||
|
" let g:go_def_mode = 'godef'
|
||||||
|
" let g:go_decls_includes = "func,type"
|
||||||
|
|
||||||
|
|
||||||
|
" Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe.
|
||||||
|
let g:UltiSnipsExpandTrigger="<c-e>"
|
||||||
|
let g:UltiSnipsJumpForwardTrigger="<c-t>"
|
||||||
|
let g:UltiSnipsJumpBackwardTrigger="<c-q>"
|
||||||
|
|
||||||
|
" If you want :UltiSnipsEdit to split your window.
|
||||||
|
let g:UltiSnipsEditSplit="vertical"
|
||||||
|
|
||||||
|
if has('persistent_undo') "check if your vim version supports it
|
||||||
|
set undofile "turn on the feature
|
||||||
|
set undodir=$HOME/.vim/undo "directory where the undo files will be stored
|
||||||
|
endif
|
||||||
|
'';
|
||||||
|
|
||||||
|
vimrcConfig.vam.knownPlugins = pkgs.vimPlugins // customPlugins;
|
||||||
|
vimrcConfig.vam.pluginDictionaries = [
|
||||||
|
{ names = [ "undotree" "molokai" ]; } # wanted: fatih/molokai
|
||||||
|
# vim-nix handles indentation better but does not perform sanity
|
||||||
|
{ names = [ "vim-addon-nix" ]; ft_regex = "^nix\$"; }
|
||||||
|
{ names = [ "vim-go" ]; ft_regex = "^go\$"; } # wanted: nsf/gocode
|
||||||
|
{ names = [ "vim-javascript" ]; ft_regex = "^js\$"; }
|
||||||
|
{ names = [ "vim-jsx" ]; ft_regex = "^js\$"; }
|
||||||
|
{ names = [ "UltiSnips" ]; ft_regex = "^go\$"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
66
jeschli/2configs/default.nix
Normal file
66
jeschli/2configs/default.nix
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
with import <stockholm/lib>;
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./vim.nix
|
||||||
|
./retiolum.nix
|
||||||
|
{
|
||||||
|
environment.variables = {
|
||||||
|
NIX_PATH = mkForce "secrets=/var/src/stockholm/null:/var/src";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
#stockholm
|
||||||
|
git
|
||||||
|
gnumake
|
||||||
|
jq
|
||||||
|
parallel
|
||||||
|
proot
|
||||||
|
populate
|
||||||
|
|
||||||
|
#style
|
||||||
|
most
|
||||||
|
rxvt_unicode.terminfo
|
||||||
|
|
||||||
|
#monitoring tools
|
||||||
|
htop
|
||||||
|
iotop
|
||||||
|
|
||||||
|
#network
|
||||||
|
iptables
|
||||||
|
iftop
|
||||||
|
|
||||||
|
#stuff for dl
|
||||||
|
aria2
|
||||||
|
|
||||||
|
#neat utils
|
||||||
|
file
|
||||||
|
kpaste
|
||||||
|
krebspaste
|
||||||
|
mosh
|
||||||
|
pciutils
|
||||||
|
psmisc
|
||||||
|
# q
|
||||||
|
# rs
|
||||||
|
tmux
|
||||||
|
untilport
|
||||||
|
usbutils
|
||||||
|
# logify
|
||||||
|
goify
|
||||||
|
|
||||||
|
#unpack stuff
|
||||||
|
p7zip
|
||||||
|
unzip
|
||||||
|
unrar
|
||||||
|
|
||||||
|
(pkgs.writeDashBin "sshn" ''
|
||||||
|
${pkgs.openssh}/bin/ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$@"
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
|
||||||
|
krebs.enable = true;
|
||||||
|
}
|
22
jeschli/2configs/retiolum.nix
Normal file
22
jeschli/2configs/retiolum.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
krebs.tinc.retiolum = {
|
||||||
|
enable = true;
|
||||||
|
connectTo = [
|
||||||
|
"prism"
|
||||||
|
"gum"
|
||||||
|
"ni"
|
||||||
|
"dishfire"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
|
tinc = pkgs.tinc_pre;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.tinc
|
||||||
|
];
|
||||||
|
}
|
@ -1,102 +1,373 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with import <stockholm/lib>;
|
||||||
# let
|
|
||||||
# customPlugins.ultisnips = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
# name = "ultisnips";
|
|
||||||
# src = pkgs.fetchFromGitHub {
|
|
||||||
# owner = "SirVer";
|
|
||||||
# repo = "ultisnips";
|
|
||||||
# rev = "3.1";
|
|
||||||
# sha256 = "0p9d91h9pm0nx0d77lqsgv6158q052cyj4nm1rd6zvbay9bkkf8b";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
let
|
let
|
||||||
customPlugins.vim-javascript = pkgs.vimUtils.buildVimPlugin {
|
out = {
|
||||||
name = "vim-javascript";
|
environment.systemPackages = [
|
||||||
src = pkgs.fetchFromGitHub {
|
(hiPrio vim)
|
||||||
owner = "pangloss";
|
pkgs.python35Packages.flake8
|
||||||
repo = "vim-javascript";
|
];
|
||||||
rev = "1.2.5.1";
|
|
||||||
sha256 = "08l7ricd3j5h2bj9i566byh39v9n5wj5mj75f2c8a5dsc732b2k7";
|
environment.etc.vimrc.source = vimrc;
|
||||||
};
|
|
||||||
|
environment.variables.EDITOR = mkForce "vim";
|
||||||
|
environment.variables.VIMINIT = ":so /etc/vimrc";
|
||||||
};
|
};
|
||||||
customPlugins.vim-jsx = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
name = "vim-jsx";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "mxw";
|
|
||||||
repo = "vim-jsx";
|
|
||||||
rev = "5b968dfa512c57c38ad7fe420f3e8ab75a73949a";
|
|
||||||
sha256 = "1z3yhhbmbzfw68qjzyvpbmlyv2a1p814sy5q2knn04kcl30vx94a";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
# {
|
|
||||||
environment.systemPackages = [
|
|
||||||
(pkgs.vim_configurable.customize {
|
|
||||||
name = "vim";
|
|
||||||
|
|
||||||
vimrcConfig.customRC = ''
|
vimrc = pkgs.writeText "vimrc" ''
|
||||||
:imap jk <Esc>
|
set nocompatible
|
||||||
:vmap v v
|
|
||||||
:map gr :GoRun<Enter>
|
|
||||||
:nnoremap <S-TAB> :bnext<CR>
|
|
||||||
:nnoremap <C-TAB> <c-w><c-w>
|
|
||||||
set autowrite
|
|
||||||
set number
|
|
||||||
set ruler
|
|
||||||
|
|
||||||
noremap x "_x
|
set autoindent
|
||||||
set clipboard=unnamedplus
|
set backspace=indent,eol,start
|
||||||
|
set backup
|
||||||
|
set backupdir=${dirs.backupdir}/
|
||||||
|
set directory=${dirs.swapdir}//
|
||||||
|
set hlsearch
|
||||||
|
set incsearch
|
||||||
|
set mouse=a
|
||||||
|
set ruler
|
||||||
|
set pastetoggle=<INS>
|
||||||
|
set runtimepath=${extra-runtimepath},$VIMRUNTIME
|
||||||
|
set shortmess+=I
|
||||||
|
set showcmd
|
||||||
|
set showmatch
|
||||||
|
set ttimeoutlen=0
|
||||||
|
set undodir=${dirs.undodir}
|
||||||
|
set undofile
|
||||||
|
set undolevels=1000000
|
||||||
|
set undoreload=1000000
|
||||||
|
set viminfo='20,<1000,s100,h,n${files.viminfo}
|
||||||
|
set visualbell
|
||||||
|
set wildignore+=*.o,*.class,*.hi,*.dyn_hi,*.dyn_o
|
||||||
|
set wildmenu
|
||||||
|
set wildmode=longest,full
|
||||||
|
|
||||||
let g:jsx_ext_required = 0
|
set title
|
||||||
|
set titleold=
|
||||||
|
set titlestring=(vim)\ %t%(\ %M%)%(\ (%{expand(\"%:p:h\")})%)%(\ %a%)\ -\ %{v:servername}
|
||||||
|
|
||||||
let g:go_list_type = "quickfix"
|
set et ts=2 sts=2 sw=2
|
||||||
let g:go_test_timeout = '10s'
|
|
||||||
let g:go_fmt_command = "goimports"
|
|
||||||
let g:go_snippet_case_type = "camelcase"
|
|
||||||
let g:go_highlight_types = 1
|
|
||||||
let g:go_highlight_fields = 1
|
|
||||||
let g:go_highlight_functions = 1
|
|
||||||
let g:go_highlight_methods = 1
|
|
||||||
let g:go_highlight_extra_types = 1
|
|
||||||
autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4
|
|
||||||
let g:rehash256 = 1
|
|
||||||
let g:molokai_original = 1
|
|
||||||
colorscheme molokai
|
|
||||||
let g:go_metalinter_enabled = ['vet', 'golint', 'errcheck']
|
|
||||||
let g:go_metalinter_autosave = 1
|
|
||||||
" let g:go_metalinter_autosave_enabled = ['vet', 'golint']
|
|
||||||
" let g:go_def_mode = 'godef'
|
|
||||||
" let g:go_decls_includes = "func,type"
|
|
||||||
|
|
||||||
|
filetype plugin indent on
|
||||||
|
|
||||||
" Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe.
|
set t_Co=256
|
||||||
let g:UltiSnipsExpandTrigger="<c-e>"
|
colorscheme hack
|
||||||
let g:UltiSnipsJumpForwardTrigger="<c-t>"
|
syntax on
|
||||||
let g:UltiSnipsJumpBackwardTrigger="<c-q>"
|
|
||||||
|
|
||||||
" If you want :UltiSnipsEdit to split your window.
|
au Syntax * syn match Garbage containedin=ALL /\s\+$/
|
||||||
let g:UltiSnipsEditSplit="vertical"
|
\ | syn match TabStop containedin=ALL /\t\+/
|
||||||
|
\ | syn keyword Todo containedin=ALL TODO
|
||||||
|
|
||||||
if has('persistent_undo') "check if your vim version supports it
|
au BufRead,BufNewFile *.hs so ${hs.vim}
|
||||||
set undofile "turn on the feature
|
|
||||||
set undodir=$HOME/.vim/undo "directory where the undo files will be stored
|
|
||||||
endif
|
|
||||||
'';
|
|
||||||
|
|
||||||
vimrcConfig.vam.knownPlugins = pkgs.vimPlugins // customPlugins;
|
au BufRead,BufNewFile *.nix so ${nix.vim}
|
||||||
vimrcConfig.vam.pluginDictionaries = [
|
|
||||||
{ names = [ "undotree" "molokai" ]; } # wanted: fatih/molokai
|
|
||||||
# vim-nix handles indentation better but does not perform sanity
|
|
||||||
{ names = [ "vim-addon-nix" ]; ft_regex = "^nix\$"; }
|
|
||||||
{ names = [ "vim-go" ]; ft_regex = "^go\$"; } # wanted: nsf/gocode
|
|
||||||
{ names = [ "vim-javascript" ]; ft_regex = "^js\$"; }
|
|
||||||
{ names = [ "vim-jsx" ]; ft_regex = "^js\$"; }
|
|
||||||
{ names = [ "UltiSnips" ]; ft_regex = "^go\$"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
|
au BufRead,BufNewFile /dev/shm/* set nobackup nowritebackup noswapfile
|
||||||
|
|
||||||
|
"Syntastic config
|
||||||
|
let g:syntastic_python_checkers=['flake8']
|
||||||
|
let g:syntastic_python_flake8_post_args='--ignore=E501'
|
||||||
|
|
||||||
|
nmap <esc>q :buffer
|
||||||
|
nmap <M-q> :buffer
|
||||||
|
|
||||||
|
cnoremap <C-A> <Home>
|
||||||
|
|
||||||
|
noremap <C-c> :q<cr>
|
||||||
|
vnoremap < <gv
|
||||||
|
vnoremap > >gv
|
||||||
|
|
||||||
|
nnoremap <esc>[5^ :tabp<cr>
|
||||||
|
nnoremap <esc>[6^ :tabn<cr>
|
||||||
|
nnoremap <esc>[5@ :tabm -1<cr>
|
||||||
|
nnoremap <esc>[6@ :tabm +1<cr>
|
||||||
|
|
||||||
|
nnoremap <f1> :tabp<cr>
|
||||||
|
nnoremap <f2> :tabn<cr>
|
||||||
|
inoremap <f1> <esc>:tabp<cr>
|
||||||
|
inoremap <f2> <esc>:tabn<cr>
|
||||||
|
|
||||||
|
" <C-{Up,Down,Right,Left>
|
||||||
|
noremap <esc>Oa <nop> | noremap! <esc>Oa <nop>
|
||||||
|
noremap <esc>Ob <nop> | noremap! <esc>Ob <nop>
|
||||||
|
noremap <esc>Oc <nop> | noremap! <esc>Oc <nop>
|
||||||
|
noremap <esc>Od <nop> | noremap! <esc>Od <nop>
|
||||||
|
" <[C]S-{Up,Down,Right,Left>
|
||||||
|
noremap <esc>[a <nop> | noremap! <esc>[a <nop>
|
||||||
|
noremap <esc>[b <nop> | noremap! <esc>[b <nop>
|
||||||
|
noremap <esc>[c <nop> | noremap! <esc>[c <nop>
|
||||||
|
noremap <esc>[d <nop> | noremap! <esc>[d <nop>
|
||||||
|
|
||||||
|
" search with ack
|
||||||
|
let g:ackprg = 'ag --vimgrep'
|
||||||
|
cnoreabbrev Ack Ack!
|
||||||
|
|
||||||
|
" copy/paste from/to xclipboard
|
||||||
|
noremap x "_x
|
||||||
|
set clipboard=unnamedplus
|
||||||
|
'';
|
||||||
|
|
||||||
|
extra-runtimepath = concatMapStringsSep "," (pkg: "${pkg.rtp}") [
|
||||||
|
pkgs.vimPlugins.ack-vim
|
||||||
|
pkgs.vimPlugins.Gundo
|
||||||
|
pkgs.vimPlugins.Syntastic
|
||||||
|
pkgs.vimPlugins.undotree
|
||||||
|
pkgs.vimPlugins.vim-go
|
||||||
|
(pkgs.vimUtils.buildVimPlugin {
|
||||||
|
name = "file-line-1.0";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "bogado";
|
||||||
|
repo = "file-line";
|
||||||
|
rev = "1.0";
|
||||||
|
sha256 = "0z47zq9rqh06ny0q8lpcdsraf3lyzn9xvb59nywnarf3nxrk6hx0";
|
||||||
|
};
|
||||||
})
|
})
|
||||||
|
((rtp: rtp // { inherit rtp; }) (pkgs.writeTextFile (let
|
||||||
|
name = "hack";
|
||||||
|
in {
|
||||||
|
name = "vim-color-${name}-1.0.2";
|
||||||
|
destination = "/colors/${name}.vim";
|
||||||
|
text = /* vim */ ''
|
||||||
|
set background=dark
|
||||||
|
hi clear
|
||||||
|
if exists("syntax_on")
|
||||||
|
syntax clear
|
||||||
|
endif
|
||||||
|
|
||||||
|
let colors_name = ${toJSON name}
|
||||||
|
|
||||||
|
hi Normal ctermbg=235
|
||||||
|
hi Comment ctermfg=242
|
||||||
|
hi Constant ctermfg=062
|
||||||
|
hi Identifier ctermfg=068
|
||||||
|
hi Function ctermfg=041
|
||||||
|
hi Statement ctermfg=167
|
||||||
|
hi PreProc ctermfg=167
|
||||||
|
hi Type ctermfg=041
|
||||||
|
hi Delimiter ctermfg=251
|
||||||
|
hi Special ctermfg=062
|
||||||
|
|
||||||
|
hi Garbage ctermbg=088
|
||||||
|
hi TabStop ctermbg=016
|
||||||
|
hi Todo ctermfg=174 ctermbg=NONE
|
||||||
|
|
||||||
|
hi NixCode ctermfg=148
|
||||||
|
hi NixData ctermfg=149
|
||||||
|
hi NixQuote ctermfg=150
|
||||||
|
|
||||||
|
hi diffNewFile ctermfg=207
|
||||||
|
hi diffFile ctermfg=207
|
||||||
|
hi diffLine ctermfg=207
|
||||||
|
hi diffSubname ctermfg=207
|
||||||
|
hi diffAdded ctermfg=010
|
||||||
|
hi diffRemoved ctermfg=009
|
||||||
|
'';
|
||||||
|
})))
|
||||||
|
((rtp: rtp // { inherit rtp; }) (pkgs.writeTextFile (let
|
||||||
|
name = "vim";
|
||||||
|
in {
|
||||||
|
name = "vim-syntax-${name}-1.0.0";
|
||||||
|
destination = "/syntax/${name}.vim";
|
||||||
|
text = /* vim */ ''
|
||||||
|
${concatMapStringsSep "\n" (s: /* vim */ ''
|
||||||
|
syn keyword vimColor${s} ${s}
|
||||||
|
\ containedin=ALLBUT,vimComment,vimLineComment
|
||||||
|
hi vimColor${s} ctermfg=${s}
|
||||||
|
'') (map (i: lpad 3 "0" (toString i)) (range 0 255))}
|
||||||
|
'';
|
||||||
|
})))
|
||||||
|
((rtp: rtp // { inherit rtp; }) (pkgs.writeTextFile (let
|
||||||
|
name = "showsyntax";
|
||||||
|
in {
|
||||||
|
name = "vim-plugin-${name}-1.0.0";
|
||||||
|
destination = "/plugin/${name}.vim";
|
||||||
|
text = /* vim */ ''
|
||||||
|
if exists('g:loaded_showsyntax')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:loaded_showsyntax = 0
|
||||||
|
|
||||||
|
fu! ShowSyntax()
|
||||||
|
let id = synID(line("."), col("."), 1)
|
||||||
|
let name = synIDattr(id, "name")
|
||||||
|
let transName = synIDattr(synIDtrans(id),"name")
|
||||||
|
if name != transName
|
||||||
|
let name .= " (" . transName . ")"
|
||||||
|
endif
|
||||||
|
echo "Syntax: " . name
|
||||||
|
endfu
|
||||||
|
|
||||||
|
command! -n=0 -bar ShowSyntax :call ShowSyntax()
|
||||||
|
'';
|
||||||
|
})))
|
||||||
];
|
];
|
||||||
}
|
|
||||||
|
dirs = {
|
||||||
|
backupdir = "$HOME/.cache/vim/backup";
|
||||||
|
swapdir = "$HOME/.cache/vim/swap";
|
||||||
|
undodir = "$HOME/.cache/vim/undo";
|
||||||
|
};
|
||||||
|
files = {
|
||||||
|
viminfo = "$HOME/.cache/vim/info";
|
||||||
|
};
|
||||||
|
|
||||||
|
mkdirs = let
|
||||||
|
dirOf = s: let out = concatStringsSep "/" (init (splitString "/" s));
|
||||||
|
in assert out != ""; out;
|
||||||
|
alldirs = attrValues dirs ++ map dirOf (attrValues files);
|
||||||
|
in unique (sort lessThan alldirs);
|
||||||
|
|
||||||
|
vim = pkgs.symlinkJoin {
|
||||||
|
name = "vim";
|
||||||
|
paths = [
|
||||||
|
(pkgs.writeDashBin "vim" ''
|
||||||
|
set -efu
|
||||||
|
(umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs})
|
||||||
|
exec ${pkgs.vim}/bin/vim "$@"
|
||||||
|
'')
|
||||||
|
pkgs.vim
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
hs.vim = pkgs.writeText "hs.vim" ''
|
||||||
|
syn region String start=+\[[[:alnum:]]*|+ end=+|]+
|
||||||
|
|
||||||
|
hi link ConId Identifier
|
||||||
|
hi link VarId Identifier
|
||||||
|
hi link hsDelimiter Delimiter
|
||||||
|
'';
|
||||||
|
|
||||||
|
nix.vim = pkgs.writeText "nix.vim" ''
|
||||||
|
setf nix
|
||||||
|
|
||||||
|
" Ref <nix/src/libexpr/lexer.l>
|
||||||
|
syn match NixID /[a-zA-Z\_][a-zA-Z0-9\_\'\-]*/
|
||||||
|
syn match NixINT /\<[0-9]\+\>/
|
||||||
|
syn match NixPATH /[a-zA-Z0-9\.\_\-\+]*\(\/[a-zA-Z0-9\.\_\-\+]\+\)\+/
|
||||||
|
syn match NixHPATH /\~\(\/[a-zA-Z0-9\.\_\-\+]\+\)\+/
|
||||||
|
syn match NixSPATH /<[a-zA-Z0-9\.\_\-\+]\+\(\/[a-zA-Z0-9\.\_\-\+]\+\)*>/
|
||||||
|
syn match NixURI /[a-zA-Z][a-zA-Z0-9\+\-\.]*:[a-zA-Z0-9\%\/\?\:\@\&\=\+\$\,\-\_\.\!\~\*\']\+/
|
||||||
|
syn region NixSTRING
|
||||||
|
\ matchgroup=NixSTRING
|
||||||
|
\ start='"'
|
||||||
|
\ skip='\\"'
|
||||||
|
\ end='"'
|
||||||
|
syn region NixIND_STRING
|
||||||
|
\ matchgroup=NixIND_STRING
|
||||||
|
\ start="'''"
|
||||||
|
\ skip="'''\('\|[$]\|\\[nrt]\)"
|
||||||
|
\ end="'''"
|
||||||
|
|
||||||
|
syn match NixOther /[():/;=.,?\[\]]/
|
||||||
|
|
||||||
|
syn match NixCommentMatch /\(^\|\s\)#.*/
|
||||||
|
syn region NixCommentRegion start="/\*" end="\*/"
|
||||||
|
|
||||||
|
hi link NixCode Statement
|
||||||
|
hi link NixData Constant
|
||||||
|
hi link NixComment Comment
|
||||||
|
|
||||||
|
hi link NixCommentMatch NixComment
|
||||||
|
hi link NixCommentRegion NixComment
|
||||||
|
hi link NixID NixCode
|
||||||
|
hi link NixINT NixData
|
||||||
|
hi link NixPATH NixData
|
||||||
|
hi link NixHPATH NixData
|
||||||
|
hi link NixSPATH NixData
|
||||||
|
hi link NixURI NixData
|
||||||
|
hi link NixSTRING NixData
|
||||||
|
hi link NixIND_STRING NixData
|
||||||
|
|
||||||
|
hi link NixEnter NixCode
|
||||||
|
hi link NixOther NixCode
|
||||||
|
hi link NixQuote NixData
|
||||||
|
|
||||||
|
syn cluster nix_has_dollar_curly contains=@nix_ind_strings,@nix_strings
|
||||||
|
syn cluster nix_ind_strings contains=NixIND_STRING
|
||||||
|
syn cluster nix_strings contains=NixSTRING
|
||||||
|
|
||||||
|
${concatStringsSep "\n" (mapAttrsToList (lang: { extraStart ? null }: let
|
||||||
|
startAlts = filter isString [
|
||||||
|
''/\* ${lang} \*/''
|
||||||
|
extraStart
|
||||||
|
];
|
||||||
|
sigil = ''\(${concatStringsSep ''\|'' startAlts}\)[ \t\r\n]*'';
|
||||||
|
in /* vim */ ''
|
||||||
|
syn include @nix_${lang}_syntax syntax/${lang}.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
syn match nix_${lang}_sigil
|
||||||
|
\ X${replaceStrings ["X"] ["\\X"] sigil}\ze\('''\|"\)X
|
||||||
|
\ nextgroup=nix_${lang}_region_IND_STRING,nix_${lang}_region_STRING
|
||||||
|
\ transparent
|
||||||
|
|
||||||
|
syn region nix_${lang}_region_STRING
|
||||||
|
\ matchgroup=NixSTRING
|
||||||
|
\ start='"'
|
||||||
|
\ skip='\\"'
|
||||||
|
\ end='"'
|
||||||
|
\ contained
|
||||||
|
\ contains=@nix_${lang}_syntax
|
||||||
|
\ transparent
|
||||||
|
|
||||||
|
syn region nix_${lang}_region_IND_STRING
|
||||||
|
\ matchgroup=NixIND_STRING
|
||||||
|
\ start="'''"
|
||||||
|
\ skip="'''\('\|[$]\|\\[nrt]\)"
|
||||||
|
\ end="'''"
|
||||||
|
\ contained
|
||||||
|
\ contains=@nix_${lang}_syntax
|
||||||
|
\ transparent
|
||||||
|
|
||||||
|
syn cluster nix_ind_strings
|
||||||
|
\ add=nix_${lang}_region_IND_STRING
|
||||||
|
|
||||||
|
syn cluster nix_strings
|
||||||
|
\ add=nix_${lang}_region_STRING
|
||||||
|
|
||||||
|
syn cluster nix_has_dollar_curly
|
||||||
|
\ add=@nix_${lang}_syntax
|
||||||
|
'') {
|
||||||
|
c = {};
|
||||||
|
cabal = {};
|
||||||
|
haskell = {};
|
||||||
|
sh.extraStart = ''write\(Ba\|Da\)sh[^ \t\r\n]*[ \t\r\n]*"[^"]*"'';
|
||||||
|
vim.extraStart =
|
||||||
|
''write[^ \t\r\n]*[ \t\r\n]*"\(\([^"]*\.\)\?vimrc\|[^"]*\.vim\)"'';
|
||||||
|
})}
|
||||||
|
|
||||||
|
" Clear syntax that interferes with nixINSIDE_DOLLAR_CURLY.
|
||||||
|
syn clear shVarAssign
|
||||||
|
|
||||||
|
syn region nixINSIDE_DOLLAR_CURLY
|
||||||
|
\ matchgroup=NixEnter
|
||||||
|
\ start="[$]{"
|
||||||
|
\ end="}"
|
||||||
|
\ contains=TOP
|
||||||
|
\ containedin=@nix_has_dollar_curly
|
||||||
|
\ transparent
|
||||||
|
|
||||||
|
syn region nix_inside_curly
|
||||||
|
\ matchgroup=NixEnter
|
||||||
|
\ start="{"
|
||||||
|
\ end="}"
|
||||||
|
\ contains=TOP
|
||||||
|
\ containedin=nixINSIDE_DOLLAR_CURLY,nix_inside_curly
|
||||||
|
\ transparent
|
||||||
|
|
||||||
|
syn match NixQuote /'''\([''$']\|\\.\)/he=s+2
|
||||||
|
\ containedin=@nix_ind_strings
|
||||||
|
\ contained
|
||||||
|
|
||||||
|
syn match NixQuote /\\./he=s+1
|
||||||
|
\ containedin=@nix_strings
|
||||||
|
\ contained
|
||||||
|
|
||||||
|
syn sync fromstart
|
||||||
|
|
||||||
|
let b:current_syntax = "nix"
|
||||||
|
|
||||||
|
set isk=@,48-57,_,192-255,-,'
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
out
|
||||||
|
@ -2,7 +2,7 @@ _:
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../krebs
|
../krebs
|
||||||
# ./2configs
|
./2configs
|
||||||
# ./3modules
|
# ./3modules
|
||||||
# ./5pkgs
|
# ./5pkgs
|
||||||
];
|
];
|
||||||
|
Loading…
Reference in New Issue
Block a user