1 . 重复最后一个修改命令
2 u 撤销最后命令
3 U 恢复该行最初状态
4
5 ++++++++++++++++++++++++++++++++++++++++++++
6 x 删除字符
7 X 删除光标左边字符
8 D 删除至行尾
9 C 修改至行尾
10 s 修改字符
11 S 修改行
12 dfxxx 搜索+删除
13 J 删除两行之间换行符
14 dw 删除到下一个单词开头
15 db 删除到前一个单词开头
16 diw 删除单词(不包括空白)
17 daw 删除单词(包括空白) 无需移动
18 ~ 修改光标下字母的大小写
19 I 移动到当前行第一个非空字符并启动插入模式
20 A 移动到行尾 启动插入模式
21 c w 更改单词 并进入插入模式
22 cis 修改句子
23 cas 修改句子(包括空白)
24
25 ctrl-w "删除整个单词
26 ctrl-u "删除整行
27 ctrl-u "删除自第一个非空字符至光标之间的文本
28
29 ++++++++++++++++++++++++++++++++++++++++++++
30 P 插入到光标之前
31 yy 复制整行
32 Y 复制整行
33 "*yy 拷贝到剪切版
34 "*p 粘贴
35 ++++++++++++++++++++++++++++++++++++++++++++
36 :[range]substitute/from/to/[flags]
37
38 / 向后查找
39 ? 向前查找
40
41 [range] : % 表示所有行
42 number 单个数值表示某一行
43 . 当前行
44 .,$ 当前行到文件尾
45
46 ^xxx 以xxx为首的单词xxx
47 xxx$ 以xxx为尾的单词xxx
48 ^xxx$ 仅包括xxx的行
49 . 匹配任意字符
50
51 :'<,'> 标记之内的范围
52
53 [flags] : g 表示所有匹配点
54 c 每次替换时确认
55 在一行內替換頭一個字符串 old 為新的字符串 new,請輸入 :s/old/new
56 在一行內替換所有的字符串 old 為新的字符串 new,請輸入 :s/old/new/g
57 在兩行內替換所有的字符串 old 為新的字符串 new,請輸入 :#,#s/old/new/g
58 在文件內替換所有的字符串 old 為新的字符串 new,請輸入 :%s/old/new/g
59 進行全文替換時詢問用戶確認每個替換需添加 c 選項,請輸入 :%s/old/new/gc
60
61 搜索中 . * [ ] ^ % / \ ? ~ ^ 需要\ 转义
62
63 :set ic = :set ignorecase 搜索匹配的时候忽略大小写
64 :set hlsearch 匹配高亮全部
65 :set incsearch 增量(输入即高亮)
66 :set wrapscan 到文件尾自动折返
67 ==================================================================
68 移动
69 w b 词首
70 e ge 词尾
71 ^ $ 0 行首尾
72 fx 向前查找本行的字符 x (可计数) nfx
73 Fx 向后
74 tx 到查找字符的前一字符 (to some-word)
75 Tx
76
77 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
78 % 括号匹配
79 nG 移动到第几行
80 n% 移动到文件的n%部分
81 H M L 移动到屏幕的某个部分
82
83 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
84 滚动半屏 滚动一行 滚动一页
85 ctrl-u ctrl-e ctrl-f
86 | | |
87 ctrl-d ctrl-y ctrl-b
88 zz 光标行处于屏幕中间
89 zt 光标行处于屏幕顶间
90 zb 光标行处于屏幕底间
91 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
92
93 ++++++++++++++++++++++++++++++++++++++++++++
94 可视模式
95 o other end
96 O 另一个对角
97 ~ 交换大小写
98 U 转换为大写
99 u 转换为小写
100 r 以某个字符填充
101 > 平移
102 < 平移
103 :set shiftwidth=4 "平移距离
104 J 删除选中行的所有换行符
105 gv 重复上次的可视选择
106 ++++++++++++++++++++++++++++++++++++++++++++
107 :set compatible? "是否关闭兼容模式
108 :scriptnames "所有配置脚本
109 :set showmode
110 :set number
111 :set ruler "右下角显示当前光标位置
112 :set backup "保留备份
113 :set history "命令历史
114 :set showcmd "显示未完成的命令
115 :set syntax on "语法高亮
116 :set filetype plugin indent on "文件类型探测
117 :set iskeyword+=xxx
118 :set iskeyword-=xxx
119 :set cmdheight=n "消息显示的空间
120 :set wrap "回绕行
121 :set matchtime=15 "括号匹配时间
122 :set whichwrap=b,s,<,>,[,] "命令可在多行移动
123 --------------------------------------------
124 :syntax enable "自动检测类型并高亮
125 :set filetype
126 :set filetype=abcde
127 :set background=dark/light/..... "设置背景色
128 :syntax reset
129 :colorscheme xxxxx "主题挑选
130 ~/.vim/color/* "当前用户*/
131 :runtime syntax/colortest.vim
132 :syntax clear
133 :syntax off
134 :syntax manual=ON/OFF
135 --------------------------------------------
136 vimrc
137
138 "在一行大于n个字符时自动换行
139 autocmd FileType text setlocal textwidth=n
140
141 --------------------------------------------
142 plugin
143
144 "文件类型插件 位于ftplugin/
145 :filetype plugin on
146
147 ftplugin/<filetype>.vim
148 ftplugin/<filetype>_<name>.vim
149 ftplugin/<filetype>/<name>.vim
150
151 mkdir ~/.vim
152 mkdir ~/.vim/plugin or mkdir ~/.vim/plugin/x/xx.vim
153 mkdir ~/.vim/ftplugin
154 --------------------------------------------
155 文件操作
156 :edit
157 :hide
158 :write
159 :write >> somefile "将文本写入到文件的末尾
160 :saveas some.file "另存为
161 :file some.file "改变文件名 但不立即保存(未编辑文件)
162 :next
163 :args
164 :previous
165 :last
166 :first
167 :nlast /:nfirst
168 :read file "将file插入到当前文件光标之下
169
170 :set autowrite
171 :set backupext=.bak "以.bak为备份文件的后缀名
172 :set fileformat=unix "文件格式转换为unix(或者dos)
173 vim -R file "只读方式打开
174 view file "只读方式打开
175 vim -M file "禁止文件修改方式打开
176 :set modifiable :set write "去掉保护
177 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
178 ctrl-^ 文件之间跳转
179 '" 标记上次离开文件的位置
180 '. 最后一次修改文件的位置
181 跳转
182 nG跳转至n行 '' "回到跳转时的行(单引号可以)
183 ctrl-o 跳到较老的地方
184 ctrl-i 跳到较新的地方
185
186 ctrl-] 跳转
187 ctrl-O 跳回
188 ctrl-t 跳转
189
190 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
191 标记 bookmark
192 m+小写字母 可使用26个字母标记
193 '+小写字母 跳转字母标记
194 :marks 获取标记列表
195
196 ' 跳转前的光标位置
197 " 最后编辑的光标位置
198 [ 最后修改的开始位置
199 ] 最后修改的结束位置
200
201 m+大写字母 全局文件标记
202 50%mX 在文件中间(50%)的地方标记为X
203 '+大写字母
204 :mark+字母 "获取字母所在
205
206 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
207 使用寄存器
208 "xyas "将句子拷贝到寄存器f中
209 "x3y "拷贝三个整行到寄存器x中
210 "xyiw "拷贝一个单词到X中
211 "可视区域xy "拷贝可视区域到x
212 "xp "将X中内容复制
213 "wdaw "将一个单词删除进入寄存器w中
214
215 ctrl-R{register} "插入寄存器里面的内容
216 :iabbrev xx xxxxx "缩写
217 :abclear "删除缩写
218
219 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
220
221 --------------------------------------------
222 窗口:split
223 "带有“====”为状态栏
224 ctrl-w ctrl-w "窗口切换
225 :close
226 :only
227 :split somefile
228 :new "打开窗口编辑新文件
229 :nsplit "打开n个窗口
230 ctrl-w + "可带前缀
231 ctrl-w - "可带前缀
232 {height}ctrl-w _ "窗口设置为指定高度
233
234 :vsplit "垂直分割
235 :vnew
236 :vertical new
237
238
239 ctrl-w h
240 ctrl-w j
241 ctrl-w k
242 ctrl-w l
243
244 ctrl-w t "跳转到最顶上的窗口
245 ctrl-w b "跳转到最下面的窗口
246 :qall "对所有窗口命令
247 vim -o a b c d "为每个文件打开一个窗口(水平)
248 :vertical all
249
250 vimdiff a b
251 :vertical diffsplit file
252
253 标签页
254 :tabedit
255 goto tab=gt命令
256 :tab some 建立另一个标签页
257 :tabonly
258 =================================
259 窗口标题
260
261 - 不能修改
262 + 已修改
263 = 只读
264 =+ 只读但被修改
265
266 :set guioption-=T "删除T标记
267
268 :behave xterm :behave mswin "鼠标行为
269 =================================
270 宏
271
272 q{register}q "录入宏
273 @{register} "查看宏
274 @@ "重复上一个宏命令
275 宏可以通过复制粘贴等等进行修改
276 q+大写字母 "记录追加到相应小写字母
277
278 =================================
279 global 命令
280 :[range]global/{pattern}/{command}
281
282 :!{program}
283 :r !{program}
284 :w !{program}
285 :[] !{program}
286 =================================
287 排版
288 :set textwidth=80
289 gqap "排版当前段落
290 gggqG "排版整个文档
291 guu gUU g~~ "整行大小写变换
292
293 :{range}center [width] "使一定范围内的行居中
294 :{range}right [width] "使一定范围内的行右对其
295 :{range}leftt [width] "使一定范围内的行左对其
296 :set autoindent
297 :set list "显示TAB
298 :set listchars=tab:>-,trail:- "显示为">----"
299 :set softtabstop=4 "tab设置
300 :set linebreak "断词
301 :g/./,/^$/join "变段为行
302 :set virtualedit=all "光标再没有文本的位置 被设置为虚拟空间
303 :set virtualedit= " 返回光标非虚拟状态
304 =================================
305 !{motion}{program} "使用外部程序 以文本块尾输入以程序输出替换文本块
306
307 !!date "加时间戳(以date输出代替当前行)
308 :read !ls "把当前目录的内容读入文件
309 :write !wc "统计字数
310 =================================
311 tools
312 :g/^/m 0 "反转行顺序
313 g+ctrl+G "单词统计
314 :%s/\s\+$// "删除行尾空格
315
316 ctrl-g 用于顯示當前光標所在位置和文件狀態信息。
317 Shift-G 用于將光標跳 轉至文件最後一行。先敲入一個行號然後按 Shift-G 則是將光標移動至該行 號代表的行。
318
319 :digraphs "二合字母
320 =================================
321 命令行上面
322 ctrl-b "行首
323 ctrl-e "行尾
324 ctrl-w "删除光标前的整个单词
325 ctrl-u "删除整个命令
326 ctrl-c "取消
327 ctrl-d "查看匹配总览
328 :history "显示历史命令
329 :history / "搜索历史记录
330 q: "打开命令行窗口
331 ctrl-o {command} "在插入模式下执行普通模式的命令
332
333 =================================
334 viminfo
335
336 命令行 模式搜索的历史
337 寄存器
338 文件内标记
339 缓存其
340 全局变量
341
342 '0 "返回中断处
343 :oldfiles "曾经编辑的
344
345 =================================
346 会话语法
347 视图语法
348 模式行
349
350 =================================
351 整行补全 CTRL-X CTRL-L
352 根据当前文件里关键字补全 CTRL-X CTRL-N
353 根据字典补全 CTRL-X CTRL-K
354 根据同义词字典补全 CTRL-X CTRL-T
355 根据头文件内关键字补全 CTRL-X CTRL-I
356 根据标签补全 CTRL-X CTRL-]
357 补全文件名 CTRL-X CTRL-F
358 补全宏定义 CTRL-X CTRL-D
359 补全vim命令 CTRL-X CTRL-V
360 用户自定义补全方式 CTRL-X CTRL-U
361 拼写建议 CTRL-X CTRL-S
362 智能补全 CTRL-X CTRL-O
363 ctrl-n ctrl-p
364
365 ctrl-a "将上次在插入模式下输入的文本再次输入一次
366 ctrl-@ "将上次在插入模式下输入的文本再次输入一次 并且返回到普通模式
367 ctrl-y "复制文本(根据上一行文本)
368 ctrl-e "复制文本(根据下一行文本)
369 =================================
370 :%!xxd "二进制阅读
371 :%!xxd -r "返回正常十进制
372 =================================
373
374 $VIMRUNTIME/syntax/* "有效的文件类型
375 $VIMRUNTIME/color/* "色彩方案
376 $VIMRUNTIME/macros "全局插件
377 $VIMRUNTIME/ftplugin "文件类型插件