vim 自定义合理的快捷键
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
"" Source your .vimrc set scrolloff=5
" 搜索相关
" 开启实时搜索
set incsearch
" 搜索时大小写不敏感
set ignorecase
syntax enable
" 设置 tab缩进"
set encoding=utf-8
set showmatch
"支持使用 退格键删除"
set backspace=indent,eol,start
set tabstop=4 " 设置Tab长度为4空格
set shiftwidth=4 " 设置自动缩进长度为4空格
set autoindent " 继承前一行的缩进方式,适用于多行注释
set smartindent
set laststatus=2
"显示命令"
set showcmd
set number
syntax enable
set ignorecase
set incsearch
" set timeoutlen=350
set showmatch
set timeoutlen=300
set clipboard+=unnamed
set whichwrap=h,l,b,s,<,>,[,]
"关闭讨厌的铃声
set vb t_vb=
filetype plugin indent on
cnoremap X x
cnoremap QQ x
cnoremap qq x
" 按下 l 会自动切换为!
cnoremap q; q!
cnoremap q' q!
cnoremap ql q!
" 命令模式再按:enter 会退出,不需要按esc切换
cnoremap :: <ESC>
" 插入模式快速进入 命令模式,跨过普通模式
inoremap :: <ESC>:
inoremap kj <ESC>
inoremap jk <ESC>
inoremap jj <ESC>
inoremap JJ <ESC>
inoremap df <ESC>
inoremap <C-]> <ESC>
inoremap <C-z> <ESC>
inoremap <C-J> <ESC>
inoremap <C-d> <ESC>
inoremap <C-D> <ESC>
" insert 模式下快速移动
inoremap <C-l> <Right>
inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-K> <Up>
" inoremap <cr><space><cr> ,,,,<esc>
" f 自带其他功能,就不覆盖这个键了
" noremap f 0
" noremap t $
noremap - 0
noremap = $
noremap + g_
"按caplock 容易删行,重复两次自动撤销
noremap JJ u
noremap K u
noremap <C-l> <Right>
noremap <C-h> <Left>
noremap <C-j> <Down>
noremap <C-K> <Up>
" 编译代码命令
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
" js文件 设置Tab长度为2空格
" if &filetype == 'js'
autocmd BufNewFile,BufRead *.js set tabstop=2
autocmd BufNewFile,BufRead *.js set shiftwidth=2 " 设置自动缩进长度为4空格
|
极简版本
http://www.autohotkey.com/
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
|
"注意:关闭兼容模式不能用backspace删除,别关闭兼容模式"
"
set encoding=utf-8
set tabstop=4
set shiftwidth=4
set autoindent
set number
syntax enable
set ignorecase
set incsearch
" set timeoutlen=350
set whichwrap=h,l,b,s,<,>,[,]
set showmatch
"支持使用 退格键删除"
set backspace=indent,eol,start
filetype plugin indent on
set clipboard+=unnamed
cnoremap X x
cnoremap QQ x
cnoremap qq x
" 按下 l 会自动切换为!
cnoremap q; q!
cnoremap q' q!
cnoremap ql q!
" 命令模式再按:或者 tab 会退出,不需要按esc切换
cnoremap : <ESC>
cnoremap <Tab> <ESC>
inoremap kj <ESC>
inoremap jk <ESC>
inoremap jj <esc>
inoremap JJ <esc>
inoremap df <ESC>
" inoremap <cr><space><cr> ,,,,<esc>
inoremap :: <esc>:
inoremap `` <ESC>
" f 自带功能,就不覆盖这个键了
" noremap f 0
" noremap t $
noremap - 0
noremap = $
noremap + g_
noremap <esc> i
|
自定义快捷键功能说明
快速返回 esc
定义一些快捷键 ,比如插入模式重复按 ll 会变回 normal模式 ,方便,不用按 esc
ctrl + k ctrl+j, 自动退出 插入模式
jj,ll ,jk 都可以快速退出
快速编辑
-
跳到行首
=
跳到行尾
+
跳到行尾
原生快捷键使用总结
快速搜索
- 按
/
+ 关键字
回车
- 按 n 匹配下一个
- 按 N 匹配上一个
/pattern 向后搜索字符串pattern
?pattern 向前搜索字符串pattern
快速编辑
-
u撤销
-
ctrl+r 重做【 反撤销】
-
ctrl+h 删除前一个 【backspace退格】
-
ctrl+u 删除行
-
cw
替换从 光标 所在未知后到一个单词结尾的字符
-
%
快速匹配到括号【移动到括号,写代码的时候会经常用到】
-
w
下一个单词开头
-
e
下一个单词结尾 【word end】
快速删除 【必背】
-
shift +d
删除到行尾
-
shift + j
合并下一行到当前行尾
-
shift + v
选择一行
-
dL
删除直到屏幕上最后一行的内容
-
dw
删除这个单词到末尾
-
c
- 剪切
“cw” ##剪掉一个单词
“cl” ##剪掉一个字母
“cc” ##剪掉一整行
“c5c” ##剪掉5行
注意:“用C做剪切时,会进入插入模式,如果要粘贴 ,需要退出插入模式按再按P”
超能力
0
→ 到行头
^ → 到本行的第一个非blank字符
$ → 到行尾
g_
-> 移动到行尾 【不是 blank的第一个字符】,和 $
差不多
fa → 到下一个为a的字符处
t, → 到逗号前的第一个字符,逗号可以变成其它字符
3fa → 在当前行查找第三个出现的a
F 和 T → 和 f 和 t 一样,不过是相反方向
dt" → 删除所有的内容,直到遇到双引号"
gg
跳到第一行
G
调到最后一行