mirror of
https://github.com/kmein/niveum
synced 2026-03-20 12:01:06 +01:00
vim: improve tooling
This commit is contained in:
@@ -1,10 +1,6 @@
|
|||||||
{ pkgs, config, ... }:
|
{ pkgs, config, ... }:
|
||||||
let vimConfig = import ../dot/vim.nix { inherit config pkgs; };
|
let vimConfig = import ../dot/vim.nix { inherit config pkgs; };
|
||||||
in {
|
in {
|
||||||
environment.variables.EDITOR = pkgs.lib.mkForce "nvim";
|
|
||||||
environment.shellAliases.vi = "nvim";
|
|
||||||
environment.shellAliases.view = "nvim -R";
|
|
||||||
|
|
||||||
programs.nano.nanorc = ''
|
programs.nano.nanorc = ''
|
||||||
set autoindent
|
set autoindent
|
||||||
set boldtext
|
set boldtext
|
||||||
@@ -14,17 +10,89 @@ in {
|
|||||||
set tabstospaces
|
set tabstospaces
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
environment.variables.EDITOR = pkgs.lib.mkForce "nvim";
|
||||||
|
environment.shellAliases.vi = "nvim";
|
||||||
|
environment.shellAliases.vim = "nvim";
|
||||||
|
environment.shellAliases.view = "nvim -R";
|
||||||
|
environment.systemPackages = [pkgs.nvim];
|
||||||
|
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
nvim = pkgs.neovim.override {
|
nvim = pkgs.neovim.override {
|
||||||
configure = {
|
configure = {
|
||||||
customRC = vimConfig.vimrc;
|
customRC = builtins.readFile ../dot/vimrc;
|
||||||
packages.nvim = with pkgs.vimPlugins; {
|
packages.nvim = with pkgs.vimPlugins; {
|
||||||
start = vimConfig.startPackages;
|
start = with pkgs.vimPlugins; [
|
||||||
opt = vimConfig.optPackages;
|
ale
|
||||||
|
deoplete-nvim
|
||||||
|
fzf-vim
|
||||||
|
fzfWrapper
|
||||||
|
supertab
|
||||||
|
tabular
|
||||||
|
vim-abolish
|
||||||
|
vim-airline vim-airline-themes
|
||||||
|
vim-commentary
|
||||||
|
vim-eunuch
|
||||||
|
vim-fugitive
|
||||||
|
vim-gitgutter
|
||||||
|
vim-pandoc vim-pandoc-after vim-pandoc-syntax
|
||||||
|
vim-repeat
|
||||||
|
vim-sensible
|
||||||
|
vim-startify
|
||||||
|
vim-surround
|
||||||
|
];
|
||||||
|
opt = [
|
||||||
|
csv
|
||||||
|
deoplete-jedi
|
||||||
|
deoplete-rust
|
||||||
|
dhall-vim
|
||||||
|
elm-vim
|
||||||
|
haskell-vim
|
||||||
|
idris-vim
|
||||||
|
rust-vim
|
||||||
|
typescript-vim
|
||||||
|
vim-javascript
|
||||||
|
vim-nix
|
||||||
|
vimtex
|
||||||
|
(pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
name = "vim-ledger";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "ledger";
|
||||||
|
repo = "vim-ledger";
|
||||||
|
rev = "6eb3bb21aa979cc295d0480b2179938c12b33d0d";
|
||||||
|
sha256 = "0rbwyaanvl2bqk8xm4kq8fkv8y92lpf9xx5n8gw54iij7xxhnj01";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
name = "vim-fsharp";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "fsharp";
|
||||||
|
repo = "vim-fsharp";
|
||||||
|
rev = "627db7d701747e8fd7924b6505c61e16a369fb72";
|
||||||
|
sha256 = "00hhgn2p54faysx1ddccyhl9jnvddgxsczhv0np3mgzza6ls4838";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
name = "emmet-vim";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "mattn";
|
||||||
|
repo = "emmet-vim";
|
||||||
|
rev = "d698f1658770ca5fa58c87e80421c8d65bbe9065";
|
||||||
|
sha256 = "0vl4267hh8g1vkvc3awlqyypgz4m1r43d47sldl80yamiafiviaj";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
name = "ghcid";
|
||||||
|
src = "${(pkgs.fetchFromGitHub {
|
||||||
|
owner = "ndmitchell";
|
||||||
|
repo = "ghcid";
|
||||||
|
rev = "5288801e7f046c42972527cd94171ce893ba91cf";
|
||||||
|
sha256 = "0dgxsl1dci6w3x662c7z1zw8yvfnch4ymhsvx29n7jkgqmcy1lki";
|
||||||
|
}).out}/plugins/nvim";
|
||||||
|
})
|
||||||
|
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [pkgs.nvim];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -129,6 +129,7 @@ in with pkgs;
|
|||||||
(executables haskellPackages.pandoc-citeproc)
|
(executables haskellPackages.pandoc-citeproc)
|
||||||
(executables haskellPackages.patat)
|
(executables haskellPackages.patat)
|
||||||
asciidoctor
|
asciidoctor
|
||||||
|
proselint
|
||||||
] ++ [ # programming
|
] ++ [ # programming
|
||||||
vscode
|
vscode
|
||||||
tokei
|
tokei
|
||||||
@@ -142,8 +143,10 @@ in with pkgs;
|
|||||||
(executables haskellPackages.cabal-install)
|
(executables haskellPackages.cabal-install)
|
||||||
(executables haskellPackages.ghcid)
|
(executables haskellPackages.ghcid)
|
||||||
(executables haskellPackages.hakyll)
|
(executables haskellPackages.hakyll)
|
||||||
|
(executables haskellPackages.brittany)
|
||||||
|
(executables haskellPackages.hfmt)
|
||||||
(executables haskellPackages.hasktags)
|
(executables haskellPackages.hasktags)
|
||||||
(executables haskellPackages.hindent)
|
# (executables haskellPackages.hindent)
|
||||||
(executables haskellPackages.pointfree)
|
(executables haskellPackages.pointfree)
|
||||||
(executables haskellPackages.pointful)
|
(executables haskellPackages.pointful)
|
||||||
(executables haskellPackages.hlint)
|
(executables haskellPackages.hlint)
|
||||||
@@ -159,10 +162,13 @@ in with pkgs;
|
|||||||
nodePackages.prettier
|
nodePackages.prettier
|
||||||
ocaml
|
ocaml
|
||||||
python3
|
python3
|
||||||
python36Packages.black
|
python3Packages.black
|
||||||
python36Packages.flake8
|
# python3Packages.yapf
|
||||||
|
python3Packages.flake8
|
||||||
|
python3Packages.jedi
|
||||||
ruby
|
ruby
|
||||||
rustup
|
rustup
|
||||||
|
# rustracer
|
||||||
scala
|
scala
|
||||||
shellcheck
|
shellcheck
|
||||||
] ++ [ # media
|
] ++ [ # media
|
||||||
@@ -194,6 +200,7 @@ in with pkgs;
|
|||||||
jo
|
jo
|
||||||
memo
|
memo
|
||||||
par
|
par
|
||||||
|
fzf
|
||||||
pass
|
pass
|
||||||
qrencode
|
qrencode
|
||||||
sncli
|
sncli
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ in {
|
|||||||
setopt INTERACTIVE_COMMENTS CORRECT
|
setopt INTERACTIVE_COMMENTS CORRECT
|
||||||
setopt MULTIOS
|
setopt MULTIOS
|
||||||
setopt AUTO_NAME_DIRS
|
setopt AUTO_NAME_DIRS
|
||||||
setopt CDABLE_VARS
|
setopt AUTOCD CDABLE_VARS
|
||||||
setopt HIST_IGNORE_ALL_DUPS
|
setopt HIST_IGNORE_ALL_DUPS
|
||||||
setopt VI
|
setopt VI
|
||||||
unsetopt NOMATCH
|
unsetopt NOMATCH
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
''
|
|
||||||
body {
|
|
||||||
font-family: 'Linux Libertine O';
|
|
||||||
}
|
|
||||||
''
|
|
||||||
252
dot/vim.nix
252
dot/vim.nix
@@ -1,252 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
with import ../helpers.nix;
|
|
||||||
{
|
|
||||||
startPackages = with pkgs.vimPlugins; [
|
|
||||||
ale
|
|
||||||
ctrlp
|
|
||||||
deoplete-nvim
|
|
||||||
supertab
|
|
||||||
tabular
|
|
||||||
tagbar
|
|
||||||
vim-airline vim-airline-themes
|
|
||||||
vim-grepper
|
|
||||||
vim-commentary
|
|
||||||
vim-eunuch
|
|
||||||
vim-fugitive
|
|
||||||
vim-gitgutter
|
|
||||||
vim-pandoc vim-pandoc-after vim-pandoc-syntax
|
|
||||||
vim-repeat
|
|
||||||
vim-sensible
|
|
||||||
vim-startify
|
|
||||||
vim-surround
|
|
||||||
vim-abolish
|
|
||||||
];
|
|
||||||
optPackages = with pkgs.vimPlugins; [
|
|
||||||
csv
|
|
||||||
elm-vim
|
|
||||||
dhall-vim
|
|
||||||
deoplete-rust
|
|
||||||
idris-vim
|
|
||||||
vimtex
|
|
||||||
# ghcmod-vim
|
|
||||||
rust-vim
|
|
||||||
typescript-vim
|
|
||||||
haskell-vim
|
|
||||||
vim-javascript
|
|
||||||
vim-nix
|
|
||||||
(pkgs.vimUtils.buildVimPluginFrom2Nix {
|
|
||||||
name = "vim-ledger";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "ledger";
|
|
||||||
repo = "vim-ledger";
|
|
||||||
rev = "6eb3bb21aa979cc295d0480b2179938c12b33d0d";
|
|
||||||
sha256 = "0rbwyaanvl2bqk8xm4kq8fkv8y92lpf9xx5n8gw54iij7xxhnj01";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(pkgs.vimUtils.buildVimPluginFrom2Nix {
|
|
||||||
name = "vim-fsharp";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "fsharp";
|
|
||||||
repo = "vim-fsharp";
|
|
||||||
rev = "627db7d701747e8fd7924b6505c61e16a369fb72";
|
|
||||||
sha256 = "00hhgn2p54faysx1ddccyhl9jnvddgxsczhv0np3mgzza6ls4838";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(pkgs.vimUtils.buildVimPluginFrom2Nix {
|
|
||||||
name = "vim-hindent";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "alx741";
|
|
||||||
repo = "vim-hindent";
|
|
||||||
rev = "f8e84c199fd00a3ccaf5bbbc97786bde9a4faa13";
|
|
||||||
sha256 = "1y4nnz38zal1ffs5n751dn9p9apk8q7pq3cw79r5z6fsdp942ai6";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(pkgs.vimUtils.buildVimPluginFrom2Nix {
|
|
||||||
name = "emmet-vim";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "mattn";
|
|
||||||
repo = "emmet-vim";
|
|
||||||
rev = "d698f1658770ca5fa58c87e80421c8d65bbe9065";
|
|
||||||
sha256 = "0vl4267hh8g1vkvc3awlqyypgz4m1r43d47sldl80yamiafiviaj";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(pkgs.vimUtils.buildVimPluginFrom2Nix {
|
|
||||||
name = "ghcid";
|
|
||||||
src = "${(pkgs.fetchFromGitHub {
|
|
||||||
owner = "ndmitchell";
|
|
||||||
repo = "ghcid";
|
|
||||||
rev = "5288801e7f046c42972527cd94171ce893ba91cf";
|
|
||||||
sha256 = "0dgxsl1dci6w3x662c7z1zw8yvfnch4ymhsvx29n7jkgqmcy1lki";
|
|
||||||
}).out}/plugins/nvim";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
vimrc = ''
|
|
||||||
" if tabular
|
|
||||||
vmap a= :Tabularize /=<CR>
|
|
||||||
vmap a; :Tabularize /::<CR>
|
|
||||||
vmap a- :Tabularize /-><CR>
|
|
||||||
|
|
||||||
colorscheme delek
|
|
||||||
|
|
||||||
filetype plugin indent on
|
|
||||||
set title
|
|
||||||
set nocompatible
|
|
||||||
set smartcase
|
|
||||||
set shiftwidth=2 tabstop=2 expandtab
|
|
||||||
set number
|
|
||||||
set path=$PWD/**
|
|
||||||
set completeopt=menu,longest
|
|
||||||
set wildmode=list:full wildignore+=${commaSep config.constants.ignore}
|
|
||||||
set shortmess+=aI
|
|
||||||
set nowritebackup noswapfile
|
|
||||||
set mouse=a
|
|
||||||
set showmatch
|
|
||||||
set encoding=utf8 ffs=unix,dos,mac
|
|
||||||
set smartindent
|
|
||||||
set nowrap
|
|
||||||
set nohlsearch
|
|
||||||
set clipboard=unnamedplus
|
|
||||||
set nopaste
|
|
||||||
set list listchars=tab:⇥\ ,extends:❯,precedes:❮,nbsp:␣,trail:· showbreak=↪
|
|
||||||
set foldlevelstart=30
|
|
||||||
|
|
||||||
if exists("g:loaded_netrwPlugin")
|
|
||||||
let g:netrw_banner=0
|
|
||||||
let g:netrw_browse_split=4
|
|
||||||
let g:netrw_altv=1 " open splits to the right
|
|
||||||
let g:netrw_liststyle=3 " tree view
|
|
||||||
let g:netrw_list_hide=netrw_gitignore#Hide()
|
|
||||||
let g:netrw_list_hide.=',\(^\|\s\s\)\zs\.\S\+'
|
|
||||||
endif
|
|
||||||
|
|
||||||
call matchadd('colorcolumn', '\%101v', 100)
|
|
||||||
highlight colorcolumn ctermbg=red
|
|
||||||
|
|
||||||
" undofile - This allows you to use undos after exiting and restarting
|
|
||||||
" This, like swap and backups, uses .vim-undo first, then ~/.vim/undo
|
|
||||||
" :help undo-persistence
|
|
||||||
if exists("+undofile")
|
|
||||||
if isdirectory($HOME . '/.vim/undo') == 0
|
|
||||||
:silent !mkdir -p ~/.vim/undo > /dev/null 2>&1
|
|
||||||
endif
|
|
||||||
set undodir=./.vim-undo//
|
|
||||||
set undodir+=~/.vim/undo//
|
|
||||||
set undofile
|
|
||||||
endif
|
|
||||||
|
|
||||||
nmap <C-j> ddp | vmap <C-j> xp`[V`]
|
|
||||||
nmap <C-k> ddkP | vmap <C-k> xkP`[V`]
|
|
||||||
|
|
||||||
nnoremap <silent> <Space> @=(foldlevel('.')?'za':"\<Space>")<CR>
|
|
||||||
vnoremap <Space> zf
|
|
||||||
|
|
||||||
command! RandomLine execute 'normal! '.(system('/bin/sh -c "echo -n $RANDOM"') % line('$')).'G'
|
|
||||||
|
|
||||||
function! <SID>StripTrailingWhitespaces()
|
|
||||||
let _s=@/
|
|
||||||
let l=line(".")
|
|
||||||
let c=col(".")
|
|
||||||
|
|
||||||
%s/\s\+$//e
|
|
||||||
|
|
||||||
let @/=_s
|
|
||||||
call cursor(l,c)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:DiffWithSaved()
|
|
||||||
let filetype=&ft
|
|
||||||
diffthis
|
|
||||||
vnew | r # | normal! 1Gdd
|
|
||||||
diffthis
|
|
||||||
execute "setlocal bt=nofile bh=wipe nobl noswf ro ft=" . filetype
|
|
||||||
endfunction
|
|
||||||
command! DiffSaved call s:DiffWithSaved()
|
|
||||||
|
|
||||||
if has("autocmd")
|
|
||||||
autocmd bufnewfile,bufread *.4th set filetype=forth
|
|
||||||
autocmd bufnewfile,bufread *.asm set filetype=nasm
|
|
||||||
autocmd bufnewfile,bufread *.c set keywordprg=man\ 3
|
|
||||||
autocmd bufnewfile,bufread *.conf set filetype=conf
|
|
||||||
autocmd bufnewfile,bufread *.fs :packadd vim-fsharp | set filetype=fsharp
|
|
||||||
autocmd bufnewfile,bufread *.h set keywordprg=man\ 3
|
|
||||||
autocmd bufnewfile,bufread *.md set filetype=markdown.pandoc | set nospell
|
|
||||||
autocmd bufnewfile,bufread *.nix :packadd vim-nix | set filetype=nix
|
|
||||||
autocmd bufnewfile,bufread *.rust :packadd rust-vim deoplete-rust
|
|
||||||
autocmd bufnewfile,bufread *.csv :packadd csv-vim
|
|
||||||
autocmd bufnewfile,bufread *.tex :packadd vimtex | set filetype=tex
|
|
||||||
autocmd bufnewfile,bufread *.ts :packadd vim-typescript
|
|
||||||
autocmd bufnewfile,bufread *.journal :packadd vim-ledger | set filetype=ledger shiftwidth=4
|
|
||||||
autocmd bufnewfile,bufread config set filetype=conf
|
|
||||||
autocmd bufnewfile,bufread *.elm :packadd elm-vim | set filetype=elm shiftwidth=4
|
|
||||||
autocmd bufnewfile,bufread *.dhall :packadd dhall-vim | set filetype=dhall
|
|
||||||
autocmd filetype haskell :packadd haskell-vim | :packadd vim-hindent | set formatprg=hindent | :packadd ghcid
|
|
||||||
autocmd filetype python set formatprg=black
|
|
||||||
autocmd filetype javascript *.js :packadd vim-javascript
|
|
||||||
autocmd filetype make setlocal noexpandtab
|
|
||||||
autocmd filetype html :packadd emmet-vim
|
|
||||||
autocmd filetype markdown,text set formatoptions+=t
|
|
||||||
autocmd filetype markdown,text set formatprg=par\ -w80
|
|
||||||
autocmd filetype markdown,text set textwidth=80
|
|
||||||
autocmd bufreadpost *
|
|
||||||
\ if line("'\"") > 0 && line("'\"") <= line("$") |
|
|
||||||
\ exe "normal! g`\"" |
|
|
||||||
\ endif
|
|
||||||
autocmd bufreadpre * setlocal foldmethod=indent
|
|
||||||
autocmd bufwritepre * :call <SID>StripTrailingWhitespaces()
|
|
||||||
autocmd bufwinenter * if &fdm == 'indent' | setlocal foldmethod=manual | endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exists("g:loaded_startify")
|
|
||||||
let g:startify_custom_header = \'\'
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exists("g:loaded_deoplete")
|
|
||||||
let g:deoplete#enable_at_startup = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exists("g:loaded_supertab")
|
|
||||||
let g:SuperTabDefaultCompletionType = '<c-x><c-o>'
|
|
||||||
endif
|
|
||||||
|
|
||||||
let g:haskell_enable_quantification = 1
|
|
||||||
let g:haskell_enable_recursivedo = 1
|
|
||||||
let g:haskell_enable_arrowsyntax = 1
|
|
||||||
let g:haskell_enable_pattern_synonyms = 1
|
|
||||||
|
|
||||||
if exists("g:loaded_ale")
|
|
||||||
let g:ale_linters.haskell = ['hlint']
|
|
||||||
endif
|
|
||||||
|
|
||||||
let g:hindent_on_save = 1
|
|
||||||
let g:hindent_line_length = 100
|
|
||||||
|
|
||||||
if exists("g:loaded_grepper")
|
|
||||||
nnoremap <leader>ga :Grepper<cr>
|
|
||||||
nnoremap <leader>gb :Grepper -buffer<cr>
|
|
||||||
endif
|
|
||||||
|
|
||||||
"if exists("g:loaded_airline")
|
|
||||||
set noshowmode laststatus=0 noruler
|
|
||||||
let g:airline#extensions#tabline#close_symbol = 'X'
|
|
||||||
let g:airline#extensions#tabline#enabled = 0
|
|
||||||
"let g:airline#extensions#tabline#left_alt_sep = ''
|
|
||||||
"let g:airline#extensions#tabline#left_sep = ''
|
|
||||||
"let g:airline#extensions#tabline#right_alt_sep = ''
|
|
||||||
"let g:airline#extensions#tabline#right_sep = ''
|
|
||||||
let g:airline#extensions#tabline#show_close_button = 1
|
|
||||||
let g:airline#extensions#tabline#show_tab_type = 0
|
|
||||||
let g:airline#extensions#tabline#tab_min_count = 2
|
|
||||||
let g:airline#extensions#tabline#tab_nr_type = 0
|
|
||||||
let g:airline#extensions#tmuxline#enabled = 0
|
|
||||||
"let g:airline#extensions#wordcount#enabled = 1
|
|
||||||
"let g:airline_left_alt_sep = ''
|
|
||||||
"let g:airline_left_sep = ''
|
|
||||||
"let g:airline_right_alt_sep = ''
|
|
||||||
"let g:airline_right_sep = ''
|
|
||||||
let g:airline_section_z = '%{line(".")}/%{line("$")} %{col(".")}'
|
|
||||||
"endif
|
|
||||||
"if exists("g:loaded_airline_themes")
|
|
||||||
let g:airline_theme='base16'
|
|
||||||
"endif
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
183
dot/vimrc
Normal file
183
dot/vimrc
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
" if tabular
|
||||||
|
vmap a= :Tabularize /=<CR>
|
||||||
|
vmap a; :Tabularize /::<CR>
|
||||||
|
vmap a- :Tabularize /-><CR>
|
||||||
|
|
||||||
|
nnoremap <C-p> :FZF<CR>
|
||||||
|
let g:fzf_layout = { 'down': '~15%' }
|
||||||
|
|
||||||
|
colorscheme delek
|
||||||
|
|
||||||
|
let mapleader = ","
|
||||||
|
|
||||||
|
filetype plugin indent on
|
||||||
|
set title
|
||||||
|
set nocompatible
|
||||||
|
set smartcase
|
||||||
|
set shiftwidth=2 tabstop=2 expandtab
|
||||||
|
set number
|
||||||
|
set path=$PWD/**
|
||||||
|
set wildmenu
|
||||||
|
set shortmess+=aI
|
||||||
|
set nowritebackup noswapfile
|
||||||
|
set mouse=a
|
||||||
|
set showmatch
|
||||||
|
set encoding=utf8 ffs=unix,dos,mac
|
||||||
|
set smartindent
|
||||||
|
set nowrap
|
||||||
|
set nohlsearch
|
||||||
|
set clipboard=unnamedplus
|
||||||
|
set nopaste
|
||||||
|
set list listchars=tab:⇥\ ,extends:❯,precedes:❮,nbsp:␣,trail:· showbreak=↪
|
||||||
|
set foldlevelstart=30
|
||||||
|
|
||||||
|
if exists("g:loaded_netrwPlugin")
|
||||||
|
let g:netrw_banner=0
|
||||||
|
let g:netrw_browse_split=4
|
||||||
|
let g:netrw_altv=1 " open splits to the right
|
||||||
|
let g:netrw_liststyle=3 " tree view
|
||||||
|
let g:netrw_list_hide=netrw_gitignore#Hide()
|
||||||
|
let g:netrw_list_hide.=',\(^\|\s\s\)\zs\.\S\+'
|
||||||
|
endif
|
||||||
|
|
||||||
|
call matchadd('colorcolumn', '\%101v', 100)
|
||||||
|
highlight colorcolumn ctermbg=red
|
||||||
|
|
||||||
|
" undofile - This allows you to use undos after exiting and restarting
|
||||||
|
" This, like swap and backups, uses .vim-undo first, then ~/.vim/undo
|
||||||
|
" :help undo-persistence
|
||||||
|
if exists("+undofile")
|
||||||
|
if isdirectory($HOME . '/.vim/undo') == 0
|
||||||
|
:silent !mkdir -p ~/.vim/undo > /dev/null 2>&1
|
||||||
|
endif
|
||||||
|
set undodir=./.vim-undo//
|
||||||
|
set undodir+=~/.vim/undo//
|
||||||
|
set undofile
|
||||||
|
endif
|
||||||
|
|
||||||
|
nmap <C-j> ddp | vmap <C-j> xp`[V`]
|
||||||
|
nmap <C-k> ddkP | vmap <C-k> xkP`[V`]
|
||||||
|
|
||||||
|
nnoremap <silent> <Space> @=(foldlevel('.')?'za':"\<Space>")<CR>
|
||||||
|
vnoremap <Space> zf
|
||||||
|
|
||||||
|
command! RandomLine execute 'normal! '.(system('/bin/sh -c "echo -n $RANDOM"') % line('$')).'G'
|
||||||
|
|
||||||
|
" function! <SID>StripTrailingWhitespaces()
|
||||||
|
" let _s=@/
|
||||||
|
" let l=line(".")
|
||||||
|
" let c=col(".")
|
||||||
|
|
||||||
|
" %s/\s\+$//e
|
||||||
|
|
||||||
|
" let @/=_s
|
||||||
|
" call cursor(l,c)
|
||||||
|
" endfunction
|
||||||
|
|
||||||
|
function! s:DiffWithSaved()
|
||||||
|
let filetype=&ft
|
||||||
|
diffthis
|
||||||
|
vnew | r # | normal! 1Gdd
|
||||||
|
diffthis
|
||||||
|
execute "setlocal bt=nofile bh=wipe nobl noswf ro ft=" . filetype
|
||||||
|
endfunction
|
||||||
|
command! DiffSaved call s:DiffWithSaved()
|
||||||
|
|
||||||
|
if has("autocmd")
|
||||||
|
autocmd bufnewfile,bufread *.4th set filetype=forth
|
||||||
|
autocmd bufnewfile,bufread *.asm set filetype=nasm
|
||||||
|
autocmd bufnewfile,bufread *.c set keywordprg=man\ 3
|
||||||
|
autocmd bufnewfile,bufread *.conf set filetype=conf
|
||||||
|
autocmd bufnewfile,bufread *.fs packadd vim-fsharp | set filetype=fsharp
|
||||||
|
autocmd bufnewfile,bufread *.h set keywordprg=man\ 3
|
||||||
|
autocmd bufnewfile,bufread *.nix packadd vim-nix | set filetype=nix
|
||||||
|
autocmd bufnewfile,bufread *.rust packadd rust-vim | packadd deoplete-rust
|
||||||
|
autocmd bufnewfile,bufread *.csv packadd csv-vim
|
||||||
|
autocmd bufnewfile,bufread *.tex packadd vimtex | set filetype=tex
|
||||||
|
autocmd bufnewfile,bufread *.ts packadd vim-typescript
|
||||||
|
autocmd bufnewfile,bufread *.journal packadd vim-ledger | set filetype=ledger shiftwidth=4
|
||||||
|
autocmd bufnewfile,bufread config set filetype=conf
|
||||||
|
autocmd bufnewfile,bufread *.elm packadd elm-vim | set filetype=elm shiftwidth=4
|
||||||
|
autocmd bufnewfile,bufread *.dhall packadd dhall-vim | set filetype=dhall
|
||||||
|
autocmd filetype haskell packadd haskell-vim
|
||||||
|
autocmd filetype javascript packadd vim-javascript
|
||||||
|
autocmd filetype python packadd deoplete-jedi
|
||||||
|
autocmd filetype make setlocal noexpandtab
|
||||||
|
autocmd filetype html packadd emmet-vim
|
||||||
|
autocmd bufreadpost *
|
||||||
|
\ if line("'\"") > 0 && line("'\"") <= line("$") |
|
||||||
|
\ exe "normal! g`\"" |
|
||||||
|
\ endif
|
||||||
|
autocmd bufreadpre * setlocal foldmethod=indent
|
||||||
|
" autocmd bufwritepre * :call <SID>StripTrailingWhitespaces()
|
||||||
|
autocmd bufwinenter * if &fdm == 'indent' | setlocal foldmethod=manual | endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
"if exists("g:loaded_startify")
|
||||||
|
let g:startify_custom_header = ''
|
||||||
|
"endif
|
||||||
|
|
||||||
|
" if exists("g:loaded_deoplete")
|
||||||
|
let g:deoplete#enable_at_startup = 1
|
||||||
|
" endif
|
||||||
|
"
|
||||||
|
let g:deoplete#sources#rust#racer_binary = $HOME . '/.cargo/bin/racer'
|
||||||
|
let g:deoplete#sources#rust#rust_source_path = substitute(system('rustc --print sysroot'), '\n$', '', '') . '/lib/rustlib/src/rust/src'
|
||||||
|
|
||||||
|
" if exists("g:loaded_supertab")
|
||||||
|
let g:SuperTabDefaultCompletionType = 'context'
|
||||||
|
" endif
|
||||||
|
|
||||||
|
let g:haskell_enable_quantification = 1
|
||||||
|
let g:haskell_enable_recursivedo = 1
|
||||||
|
let g:haskell_enable_arrowsyntax = 1
|
||||||
|
let g:haskell_enable_pattern_synonyms = 1
|
||||||
|
|
||||||
|
" if exists("g:loaded_ale")
|
||||||
|
let g:ale_linters = {
|
||||||
|
\ 'rust': ['cargo'],
|
||||||
|
\ 'haskell': ['ghc', 'cabal-ghc', 'hlint'],
|
||||||
|
\ 'html': ['tidy', 'proselint'],
|
||||||
|
\ 'latex': ['lacheck', 'chktex', 'proselint'],
|
||||||
|
\ 'pandoc': ['proselint'],
|
||||||
|
\}
|
||||||
|
let g:ale_fixers = {
|
||||||
|
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
||||||
|
\ 'haskell': ['hfmt'],
|
||||||
|
\ 'javascript': ['prettier'],
|
||||||
|
\ 'typescript': ['prettier'],
|
||||||
|
\ 'css': ['prettier'],
|
||||||
|
\ 'html': ['prettier'],
|
||||||
|
\ 'markdown': ['prettier'],
|
||||||
|
\ 'pandoc': ['prettier'],
|
||||||
|
\ 'json': ['jq'],
|
||||||
|
\ 'python': ['black'],
|
||||||
|
\ 'rust': ['rustfmt']
|
||||||
|
\}
|
||||||
|
let g:ale_fix_on_save = 1
|
||||||
|
let g:ale_completion_enabled = 1
|
||||||
|
" endif
|
||||||
|
|
||||||
|
"if exists("g:loaded_airline")
|
||||||
|
set noshowmode laststatus=0 noruler
|
||||||
|
let g:airline#extensions#tabline#close_symbol = 'X'
|
||||||
|
let g:airline#extensions#tabline#enabled = 0
|
||||||
|
"let g:airline#extensions#tabline#left_alt_sep = ''
|
||||||
|
"let g:airline#extensions#tabline#left_sep = ''
|
||||||
|
"let g:airline#extensions#tabline#right_alt_sep = ''
|
||||||
|
"let g:airline#extensions#tabline#right_sep = ''
|
||||||
|
let g:airline#extensions#tabline#show_close_button = 1
|
||||||
|
let g:airline#extensions#tabline#show_tab_type = 0
|
||||||
|
let g:airline#extensions#tabline#tab_min_count = 2
|
||||||
|
let g:airline#extensions#tabline#tab_nr_type = 0
|
||||||
|
let g:airline#extensions#tmuxline#enabled = 0
|
||||||
|
"let g:airline#extensions#wordcount#enabled = 1
|
||||||
|
"let g:airline_left_alt_sep = ''
|
||||||
|
"let g:airline_left_sep = ''
|
||||||
|
"let g:airline_right_alt_sep = ''
|
||||||
|
"let g:airline_right_sep = ''
|
||||||
|
let g:airline_section_z = '%{line(".")}/%{line("$")} %{col(".")}'
|
||||||
|
"endif
|
||||||
|
"if exists("g:loaded_airline_themes")
|
||||||
|
let g:airline_theme='base16'
|
||||||
|
"endif
|
||||||
1
main.nix
1
main.nix
@@ -102,7 +102,6 @@ in {
|
|||||||
|
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
"mpv/input.conf".text = import dot/mpv.nix;
|
"mpv/input.conf".text = import dot/mpv.nix;
|
||||||
"Typora/themes/base.user.css".text = import dot/typora.nix;
|
|
||||||
"htop/htoprc".text = builtins.readFile dot/htoprc;
|
"htop/htoprc".text = builtins.readFile dot/htoprc;
|
||||||
"zathura/zathurarc".text = "set selection-clipboard clipboard";
|
"zathura/zathurarc".text = "set selection-clipboard clipboard";
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user