参考资料:《Vim 7.4 中文手册》,《Vim实用技巧》
1、查找某个单词时,可以用/,?;也可在普通模式下,光标定位在该单词下,输入*,#。
2、关于标记
1 2 3 4 5 6
| // '为单引号 '' 跳转回刚才的位置 ma 设置标记 【小写是文件内的,大写是全局的】 'a 跳转到a的标记处 <Ctrl-i> 跳转到相对新的位置 <Ctrl-o> 跳转到相对旧的位置
|
3、一些特殊标记
1 2 3 4
| ' 跳转前的光标位置 " 最后编辑的光标位置 [ 最后修改的开始位置 ] 最后修改的结束位置
|
4、Redo/Undo
1 2 3 4 5 6 7 8 9
| u undo <Ctrl-r> redo
// 撤销树 :undolist 查看撤销树 :g- 时间点后退 :g+ 时间点前进 :undo num 跳转到某一个节点上 :earlier 10s 回到10秒前 m:代表分钟,h:代表小时,d:代表天
|
5、点命令
. 重复最后一次的修改操作,重复任何除"u"(撤销),<C-R>和冒号命令外的修改
6、可视模式
1 2
| v 逐光标选择,可视模式下可用:o,O移动到对角上或另一边上。 V 按行选择
|
7、文本对象有
1 2 3 4 5 6
| w word s sentence p passage (or) ()内容 [or] []中内容 {or} {}中内
|
8、大小写
1 2 3 4 5 6 7
| ~ 交换大小写 U 转换成大写 u 转换成小写 guw 把这个单词变成小写 gUw 把这个单词变成大写 g~~ 把本行转换大写 // 可视模式下,可直接用U,u来转换。
|
9、文件操作
1 2 3 4 5 6 7 8
| gf(光标移动到文件下) :find 文件名 可以添加路径: :set path+=path :args *.txt 可以打开多个文件 // 使用next,previous等来移动 :argo command 所有文件执行命令 :saveas newname 文件另存为newname :read {filename} 将某个文件读入某行 :.,$write tempo 将部分本文件写入tempo文件 :.write >>tempo 将当前行追加入tempo文件
|
10、使用寄存器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| 1)特殊寄存器: "寄存器 默认存储器。内容是最近删除或者复制内容。 0寄存器 存储复制内容
2)拷贝/粘贴: 拷贝 "fyas 拷贝一个句子到寄存器f "fYas 拷贝一个句子增加到寄存器f 粘贴 插入模式时 <Ctrl-R> {register} 将寄存器内容插入到光标位置; 普通模式时 "fp 将寄存器f内容粘贴出来
3)记录和回放命令: 记录 q{register} q // 普通模式下,q大写寄存器 q 追加内容 执行宏 @{register} 第二次开始就可以用@@
|
11、分割窗口:split vsplit
1 2
| <Ctrl-W> w h j k l t b变换窗口(top bottom) <Ctrl-W> H J K L 移动窗口(top bottom)
|
12、折叠
1 2 3 4 5 6 7 8 9 10 11 12 13
| zf 创建一个折叠 zo 打开一个折叠 zc 关闭一个折叠 zr 减少折叠 zm 折叠更多
如果你有一个嵌套了好几层深的折叠,可以用如下两个命令操作: zR 这几个嵌套全部打开 zM 这几个嵌套全部关闭
还可以用如下命令快速禁止和恢复折叠功能: zn 快速禁止折叠功能 zN 快速恢复折叠功能
|
13、替换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| :%substitute/from/to/gc 主要参数: %:表示所有行 g:表示global全局 c:confirm,确认
行范围参数: . :表示当行 0:表示首行 $:表示末行 Num:表示某一行
行范围示例: :1,5s/this/that/g 1到5行上执行替换命令。 :54s/President/Fool/ 指定第54行进行替换
|
14、global命令:
1
| :[range]global/{pattern}/{command} //其中pattern,会让你找到符合该模式的某一行
|
15、反转行顺序
16、单词统计
17、命令行窗口
18、缓冲区列表:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 查看命令 :buffers或者:ls
打开一个缓冲区: :buffer 2(缓冲区号) :buffer name(缓冲区文件名)
变换缓冲区: :bnext :bprevious :bfist :blast
删除一个缓冲区: :bdelete 3
|
19、加密
1 2 3
| vim -x exam.txt 启用加密 set key=启用/关闭加密 :X 已经打开文件后实施加密
|
20、插入模式时更正
1 2
| <Ctrl-W> 删除该词 <Ctrl-U> 删除本行
|
21、自动补全
1 2 3 4 5 6 7 8 9 10 11
| <C-P>或者<C-N>
补全特定文本: <C-X><C-F> 文件名 <C-X><C-L> 整行 <C-X><C-D> 宏定义 <C-X><C-I> 当前文件以及所包含的的文件 <C-X><C-K> 字典文件内的单词 <C-X><C-T> 同义词词典文件内的单词 <C-X><C-]> 标签 <C-X><C-V> Vim命令行
|
22、从另一行拷贝
1 2 3
| yy/p yy复制,p粘贴 <C-Y> 该命令插入光标上方的字符 <C-E> 该命令插入光标下方的字符
|
23、数字加减
1 2 3 4
| 普通模式下,光标移动到数字下: <C-A> 增加1 3<C-A> 增加3 <C-X> 减去1
|
24、单个模式里匹配大小写敏感
1 2
| \c 在模式前添加\c,忽略本次大小写敏感 \C 在模式前添加\C,本次匹配大小写敏感
|