summaryrefslogtreecommitdiffstats
path: root/vim.nix
blob: 90db98d418caa595bd6d84c13df607edac13be42 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
{config, pkgs, ... }:
{

  environment.systemPackages = with pkgs; [
    (lib.lowPrio pkgs.vim-full) # Lower Vim's priority
    (pkgs.writeShellApplication {
      name = "vi";
      runtimeInputs = [ pkgs.nvi ];
      text = ''
        exec ${pkgs.nvi}/bin/vi "$@"
      '';
    })
    neovim
  ];


  environment.etc."vimrc".text = ''
set autoread
au FocusGained,BufEnter * silent! checktime

" :W sudo saves the file
" (useful for handling the permission-denied error)
command! W execute 'w !sudo tee % > /dev/null' <bar> edit!

" Turn on the Wild menu
set wildmenu

" Ignore compiled files
set wildignore=*.o,*~,*.pyc
set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Store


set ruler

set ignorecase
set smartcase
set hlsearch
set incsearch
set lazyredraw
set magic
set showmatch

syntax enable
set noswapfile

" Use spaces instead of tabs
set expandtab

" Be smart when using tabs ;)
set smarttab

" 1 tab == 4 spaces
set shiftwidth=4
set tabstop=4

" Linebreak on 500 characters
set lbr
set tw=500

set ai "Auto indent
set si "Smart indent
set wrap "Wrap lines

" Always show the status line
set laststatus=2

set number relativenumber


  " Force the cursor to a Block when Vim starts
let &t_ti = &t_ti . "\e[2 q"
let &t_te = &t_te . "\e[2 q"
let &t_EI = "\e[2 q"
let &t_SI = "\e[2 q"
  '';
}