diff options
author | grm@eyesin.space <grm@eyesin.space> | 2025-09-02 23:04:24 +0000 |
---|---|---|
committer | grm@eyesin.space <grm@eyesin.space> | 2025-09-02 23:04:24 +0000 |
commit | 47ef05ab310bb466300e93d1459370450414fbc4 (patch) | |
tree | 808f155d2871f831af743509de982c4c9789357c /nixos/vim.nix | |
download | nixos-config-master.tar.gz nixos-config-master.tar.bz2 nixos-config-master.zip |
Diffstat (limited to 'nixos/vim.nix')
-rw-r--r-- | nixos/vim.nix | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/nixos/vim.nix b/nixos/vim.nix new file mode 100644 index 0000000..4613390 --- /dev/null +++ b/nixos/vim.nix @@ -0,0 +1,92 @@ +{pkgs, ...}: { + environment = { + systemPackages = with pkgs; [ + ( + (vim_configurable.override {}).customize { + name = "vim"; + vimrcConfig.packages.myplugins = with pkgs.vimPlugins; { + start = [ + nerdcommenter + vim-airline + vim-airline-themes + vim-colors-solarized + vim-sleuth + vim-surround + undotree + ]; + opt = []; + }; + vimrcConfig.customRC = '' + filetype off + set nocompatible + set modelines=0 + set encoding=utf-8 + set scrolloff=3 + set wildmode=list:longest + set visualbell + set backspace=indent,eol,start + set laststatus=2 + set number + set history=1000 + set title + set ignorecase + set smartcase + set gdefault + set incsearch + set showmatch + set hlsearch + + let mapleader = "," + nmap <silent> <leader><space> :silent :nohlsearch<CR> + + set wrap + set textwidth=0 + set list + set listchars=tab:▸\ ,eol:¬ + set mousehide + set mouse=a + set cursorline + set cursorcolumn + + set backupdir=~/.local/vim/backup + set directory=~/.local/vim/swap + set undodir=~/.local/vim/undo + + for _dir in ["backup", "swap", "undo"] + let target_path = expand("~/.local/vim/" . _dir) + if !isdirectory(target_path) + call mkdir(target_path, "p", 0700) + endif + endfor + + au VimResized * exe "normal! \<c-w>=" + + augroup vimrc_autocmd + autocmd! + + " jump to the last position when reopening a file + autocmd BufReadPost * + \ if line("'\"") > 1 && line("'\"") <= line("$") | + \ exe "normal! g`\"" | + \ endif + augroup END + + syn on + set background=dark + colorscheme solarized + + nnoremap <F5> :UndotreeToggle<CR> + if has("persistent_undo") + set undofile + endif + ''; + } + ) + ]; + + variables = { + EDITOR = "vim"; + VISUAL = "vim"; + }; + }; +} |