vim合理修改快捷键映射
很多键盘键位,按 ESC 不方便,我们可以映射组合键 成快捷键
网上一个教程就是用 ctrl+ [ 映射成 esc
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
"" Source your .vimrc
"source ~/.vimrc
"" -- Suggested options --
" Show a few lines of context around the cursor. Note that this makes the
" text scroll if you mouse-click near the start or end of the window.
set scrolloff=5
" Do incremental searching.
set incsearch
"" -- Map IDE actions to IdeaVim -- https://jb.gg/abva4t
"" Map \r to the Reformat Code action
"map \r <Action>(ReformatCode)
"" Map <leader>d to start debug
"map <leader>d <Action>(Debug)
"" Map \b to toggle the breakpoint on the current line
"map \b <Action>(ToggleLineBreakpoint)
" Find more examples here: https://jb.gg/share-ideavimrc
" 设置 tab缩进"
set tabstop=4 " 设置Tab长度为4空格
set shiftwidth=4 " 设置自动缩进长度为4空格
set autoindent " 继承前一行的缩进方式,适用于多行注释
set smartindent
set laststatus=2
"显示命令"
set showcmd
" 开启实时搜索
set incsearch
" 搜索时大小写不敏感
set ignorecase
syntax enable
set nu
set showmatch
set timeoutlen=500
set clipboard+=unnamed
" 按f 直接进入 行首, t 表示 tail ,到行尾
map f 0
map t $
"H 表示跳到行首,并且进入插入模式,L表示跳到行尾进入追加模式
map H 0i
map L $a
" H 直接跳到行首
map K gg
" shift + l 跳到文件末尾
map J G
set whichwrap=h,l,b,s,<,>,[,]
"关闭讨厌的铃声
set vb t_vb=
imap jk jk
" insert模式下 ee = esc退出
imap ee <Esc>
imap <C-[> <Esc>
" insert模式 按 qq = esc
imap qq <Esc>
" normal模式 按 c 转命令模式
nmap c :
nmap [ <PageUp>
nmap ] <PageDown>
" 编译代码命令
func! CompileCodeFile()
exec "w"
if &filetype == 'c'
exec "!g++ % -o %<"
elseif &filetype == 'cpp'
exec "!g++ % -o %<"
endif
exec "!echo '-----------compile OK---------------'"
endfunc
func! RunCodeFile()
exec "silent !echo '------------- runCode -------------------'"
if &filetype == 'cpp'
exec "!%:r"
endif
endfunc
map <F8> :call CompileCodeFile() <CR>
map <F9> :call RunCodeFile()<CR>
map <F10> :call CompileCodeFile()<CR> :call RunCodeFile()<CR>
" f10 运行 ,f9编译
" ctrl+n 可以代码补全"
filetype on
|
自定义映射的 api
参考学习教程
递归映射与非递归映射
- 递归映射 会递归的按照命令的定义去解释
- 非递归 只解释一次
非递归 就是 noremap
- nnoremap/ vnoremap/inoremap
任何时候我们都应该用非递归映射
自定义宏
https://www.imooc.com/video/19455