summaryrefslogtreecommitdiff
path: root/vim.nix
blob: 356e901ba2cf9303c8e8f7039be98fc3b477d00b (plain)
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
{ pkgs, vimUtils, fetchFromGitHub}:

{
  enable = true;
  plugins = [
    "sensible"
    "ctrlp"
    "fugitive"
    "editorconfig-vim"
    "gitgutter"
    "surround"
  ];
  settings = {
    ignorecase = true;
    expandtab = true;
    history = 1000;
    tabstop = 4;
  };
  extraConfig = ''
    set cc=80          " 80 column lines
    set linebreak      " Break lines at word (requires Wrap lines)
    set textwidth=80   " Line wrap (number of cols)
    set showmatch      " Highlight matching brace
    set visualbell     " Use visual bell (no beeping)
    set hlsearch       " Highlight all search results
    set smartcase      " Enable smart-case search
    set shiftwidth=4   " Number of auto-indent spaces
    set smartindent    " Enable smart-indent
    set laststatus=1   " No status line

    " Mappings
    imap fd <Esc>
    nnoremap ,s :r ~/sig.txt<cr>

    " Easily find cursor with crosshair (\c)
    :hi CursorLine   cterm=NONE term=reverse ctermbg=7 guibg=Grey90
    :hi CursorColumn cterm=NONE term=reverse ctermbg=7 guibg=Grey90
    :nnoremap <Leader>c :set cursorline! cursorcolumn!<CR>

    " File browser
    let g:netrw_banner=0       " Disable file browser banner
    let g:netrw_liststyle=3    " Tree view

    "" CTAGS shortcuts
    " open definition in a new tab:
    map <C-\> :tab split<CR>:exec("tag ".expand("<cword>"))<CR>
    " open definition in a vertical split:
    map <A-]> :vsp <CR>:exec("tag ".expand("<cword>"))<CR>
  '';
}