forked from mathiasbynens/dotfiles
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.ideavimrc
100 lines (85 loc) · 2.55 KB
/
.ideavimrc
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
""" MacOs Specific """
" Show VIM mode on bottom of window
set showmode
" Show VIM commands on bottom of window
set showcmd
" Don't play annoying alert sound when invalid input is given
set visualbell
" Highlight all search results
set hlsearch
" Start searching as you type
set incsearch
" Scroll offset
set scrolloff=5
" Use case-insensitive search unless using uppercase
set ignorecase smartcase
" Share system clipboard
set clipboard+=unnamed
" Undo count
set history=1000
"" 3rd Party Plugins ""
set surround
set highlightedyank
set sneak
set nerdtree
set easymotion
set notimeout
set commentary
set matchit
" Map <leader> key to Space
let mapleader = " "
" Don't use Ex mode, use Q for formatting
map Q g
" easy window navigation
nnoremap <c-l> <c-w>l
nnoremap <c-j> <c-w>j
nnoremap <c-h> <c-w>h
nnoremap <c-k> <c-w>k
nnoremap <c--> :action SplitHorizontally<cr>
nnoremap <c-\> :action SplitVertically<cr>
nnoremap <c-w> :action Unsplit<cr>
nnoremap <c-m> :action MoveEditorToOppositeTabGroup<cr>
" clear the search buffer when hitting return
nnoremap <leader><cr> :nohlsearch<cr>
" actions
nnoremap <leader>q :action CloseContent<cr>
nnoremap <leader>Q :action ReopenClosedTab<cr>
nnoremap <leader>t :action ActivateTerminalToolWindow<cr>
" Folding
map <leader>zc :action CollapseAllRegions<cr>
map <leader>zo :action ExpandAllRegions<cr>
" code refactoring
map <leader>rn :action RenameElement<cr>
map <leader>rm :action ExtractMethod<cr>
map <leader>rv :action IntroduceVariable<cr>
map <leader>rf :action IntroduceField<cr>
map <leader>rs :action ChangeSignature<cr>
map <leader>rr :action Refactorings.QuickListPopupAction<cr>
map <leader>rc :action ReformatCode<cr>
" Easy visual indentation
vnoremap < <gv
vnoremap > >gv
" Go to code
nmap <leader>gd :action GotoDeclaration<cr>
nmap <leader>gy :action GotoTypeDeclaration<cr>
nmap <leader>gi :action GotoImplementation<cr>
nmap <leader>gu :action ShowUsages<cr>
nmap <leader>gt :action GotoTest<cr>
nmap <leader>gf :action Back<cr>
nmap <leader>gb :action Forward<cr>
" built in search looks better
" but preserve ideavim search
" nnoremap / :action Find<cr>
" nnoremap g/ /
" handle moving line up and down using navigation keys
nnoremap <c-s-j> :action MoveStatementDown<cr>
nnoremap <c-s-k> :action MoveStatementUp<cr>
inoremap <c-s-j> <Esc>:action MoveStatementDown<cr>
inoremap <c-s-k> <Esc>:action MoveStatementUp<cr>
vnoremap <c-s-j> :action MoveStatementDown<cr>
vnoremap <c-s-k> :action MoveStatementUp<cr>
" NerdTree
map <c-t> :NERDTree<CR>
" Easy Motion
map <leader>F <Plug>(easymotion-s)
map <leader>f <Plug>(easymotion-f)