-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathneovim.nix
112 lines (93 loc) · 2.65 KB
/
neovim.nix
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
{ pkgs, ... }:
{
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
plugins = with pkgs.vimPlugins; [
nerdtree
syntastic
vim-surround
vim-commentary
vim-gitgutter
vim-indent-guides
vim-endwise
vim-fugitive
vim-javascript
vim-airline
];
extraConfig = ''
set autoindent
set backspace=indent,eol,start
set complete-=i
set smarttab
set expandtab
set relativenumber
set number
set nrformats-=octal
set shiftwidth=2
set clipboard=unnamed
set backspace=2
set tabstop=2
set ignorecase
set smartcase
set mouse=a
set autoread
set splitbelow
set splitright
set breakindent " preserves the indent level of wrapped lines
set showbreak=↪ " illustrate wrapped lines
set wrap " wrapping with breakindent is tolerable
set noswapfile
set nobackup
imap kj <ESC>
nmap <space> <leader>
xmap <space> <leader>
nmap <leader>rr :redraw!<CR>
" hjkl in insert mode
inoremap <A-h> <left>
inoremap <A-j> <down>
inoremap <A-k> <up>
inoremap <A-l> <right>
" insert line before/after current line in normal mode
nmap <leader>o o<esc>k
nmap <leader>O O<esc>j
" Reload our .vimrc
nmap <leader>~ :source ~/.vimrc<CR>:redraw!<CR>:AirlineRefresh<CR>:echo "~/.vimrc reloaded!"<CR>
" Write file
nmap <leader>w :w<CR>
" Delete buffer
nmap <leader>q :q<CR>
" Toggle wrap
nmap <leader>W :set invwrap<CR>:set wrap?<CR>
" Reindent the entire file
nmap <leader>= gg=G``:echo "reindent global"<CR>
" Fugitive mappings
nmap <leader>gs :Gstatus<cr>
nmap <leader>gc :Gcommit<cr>
nmap <leader>gd :Gdiff<cr>
" diff mappings
nmap <leader>gg :diffget<cr>
nmap <leader>gp :diffput<cr>
nmap <leader>gu :diffupdate<cr>
" Open new buffers
nmap <leader>v :rightbelow vsp<cr>
nmap <leader>h :rightbelow sp<cr>
nmap <leader>o :only<cr>
"splits
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
" Yank text to the OS X clipboard
noremap <leader>y "*y
noremap <leader>yy "*Y
" NERDTree
nmap <leader>n :NERDTreeToggle<CR>
let NERDTreeQuitOnOpen=1
let NERDTreeHighlightCursorline=1
let NERDTreeIgnore = ['tmp', '.yardoc', 'pkg', 'node_modules']
'';
};
}