summaryrefslogtreecommitdiffstats
path: root/init.vim
blob: 0a157511f9b027af9546fc1c6b221b9618e58bcd (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
77
78
79
80
" Vset runtimepath^=~/.vim runtimepath+=~/.vim.after
" let &packpath = &runtimepath
" source ~/.vimrc

filetype on
syntax on
colorscheme default
set number
filetype indent on
set nowrap
set tabstop=2
set shiftwidth=2
set expandtab
set smartindent
set autoindent
set guioptions-=T

" highlight cursor line
set cursorline

" highlight search matches
set hlsearch

" show matching parenthesis/brackets
set showmatch

" remove whitespace on write
autocmd BufWritePre * :%s/\s\+$//e

" press esc to cancel search
noremap <silent> <Esc> :nohlsearch<Bar>:echo<CR>

" Arrow keys move visually up/down.
noremap <up> gk
noremap <down> gj

nnoremap <c-o> :Neotree toggle reveal_force_cwd<cr>
" nnoremap | :Neotree reveal<cr>
" nnoremap gd :Neotree float reveal_file=<cfile> reveal_force_cwd<cr>
" nnoremap <leader>b :Neotree toggle show buffers right<cr>
nnoremap <leader>s :Neotree float git_status<cr>

" Toggle word-wrap mode
" This will also fix movement keys so they move by visual
" lines instead of physical lines in word-wrap mode.
" See https://vim.fandom.com/wiki/Move_cursor_by_display_lines_when_wrapping
noremap <silent> <leader>w :call ToggleWrap()<CR>
function ToggleWrap()
  if &wrap
    echo "Wrap OFF"
    setlocal nowrap
    set virtualedit=all
    silent! nunmap <buffer> <Up>
    silent! nunmap <buffer> <Down>
    silent! nunmap <buffer> <Home>
    silent! nunmap <buffer> <End>
    silent! iunmap <buffer> <Up>
    silent! iunmap <buffer> <Down>
    silent! iunmap <buffer> <Home>
    silent! iunmap <buffer> <End>
  else
    echo "Wrap ON"
    setlocal wrap linebreak nolist
    set virtualedit=
    setlocal display+=lastline
    noremap  <buffer> <silent> <Up>   gk
    noremap  <buffer> <silent> <Down> gj
    noremap  <buffer> <silent> <Home> g<Home>
    noremap  <buffer> <silent> <End>  g<End>
    inoremap <buffer> <silent> <Up>   <C-o>gk
    inoremap <buffer> <silent> <Down> <C-o>gj
    inoremap <buffer> <silent> <Home> <C-o>g<Home>
    inoremap <buffer> <silent> <End>  <C-o>g<End>
  endif
endfunction

lua require('config.lazy')
lua require('basic')
lua require('debugging')