Vim的几种模式
1 | 正常模式:可以使用快捷键命令,或按:输入命令行。 |
启动Vim
1 | vim -c cmd file: 在打开文件前,先执行指定的命令; |
文档操作
1 | :e file --关闭当前编辑的文件,并开启新的文件。 如果对当前文件的修改未保存,vi会警告。 |
光标的移动
基本移动
1 | 以下移动都是在normal模式下。 |
翻屏
1 | ctrl+f: 下翻一屏。 |
标记
1 | 使用标记可以快速移动。到达标记后,可以用Ctrl+o返回原来的位置。 |
插入文本
基本插入
1 | i: 在光标前插入;一个小技巧:按8,再按i,进入插入模式,输入=, |
改写插入
1 | c[n]w: 改写光标后1(n)个词。 |
剪切复制和寄存器
剪切和复制、粘贴
1 | [n]x: 剪切光标右边n个字符,相当于d[n]l。 |
文本对象
1 | aw:一个词 |
寄存器
1 | a-z:都可以用作寄存器名。"ayy把当前行的内容放入a寄存器。 |
查找与替换
查找
1 | /something: 在后面的文本中查找something。 |
替换
1 | :s/old/new - 用new替换当前行第一个old。 |
正则表达式
1 | 高级的查找替换就要用到正则表达式。 |
排版
基本排版
1 | << 向左缩进一个shiftwidth |
拼写检查
1 | :set spell-开启拼写检查功能 |
统计字数
1 | g ^g可以统计文档字符数,行数。 将光标放在最后一个字符上,用字符数减去行数可以粗略统计中文文档的字数。 以上对 Mac 或 Unix 的文件格式适用。 如果是 Windows 文件格式(即换行符有两个字节),字数的统计方法为: 字符数 - 行数 * 2。 |
编辑多个文件
一次编辑多个文件
1 | 我们可以一次打开多个文件,如 |
多标签编辑
1 | vim -p files: 打开多个文件,每个文件占用一个标签页。 |
缓冲区
1 | :buffers或:ls或:files 显示缓冲区列表。 |
分屏编辑
1 | vim -o file1 file2:水平分割窗口,同时打开file1和file2 |
水平分割
1 | :split(:sp) -- 把当前窗水平分割成两个窗口。(CTRL-W s 或 CTRL-W CTRL-S) |
垂直分割
1 | :vsplit(:vsp) -- 把当前窗口分割成水平分布的两个窗口。 (CTRL-W v或CTRL CTRL-V) |
关闭子窗口
1 | :qall -- 关闭所有窗口,退出vim。 |
调整窗口大小
1 | ctrl+w + --当前窗口增高一行。也可以用n增高n行。 |
切换和移动窗口
1 | 如果支持鼠标,切换和调整子窗口的大小就简单了。 |
快速编辑
改变大小写
1 | ~: 反转光标所在字符的大小写。 |
替换(normal模式)
1 | r: 替换光标处的字符,同样支持汉字。 |
撤消与重做(normal模式)
1 | [n] u: 取消一(n)个改动。 |
宏
1 | . --重复上一个编辑动作 |
编辑特殊文件
文件加解密
1 | vim -x file: 开始编辑一个加密的文件。 |
文件的编码
1 | :e ++enc=utf8 filename, 让vim用utf-8的编码打开这个文件。 |
文件格式
1 | 大致有三种文件格式:unix, dos, mac. 三种格式的区别主要在于回车键的编码: |
编程辅助
一些按键
1 | gd: 跳转到局部变量的定义处; |
ctags
1 | ctags -R: 生成tag文件,-R表示也为子目录中的文件生成tags |
cscope
1 | cscope -Rbq: 生成cscope.out文件 |
gtags
1 | Gtags综合了ctags和cscope的功能。 使用Gtags之前,你需要安装GNU Gtags。 |
编译
1 | vim提供了:make来编译程序,默认调用的是make, 如果你当前目录下有makefile,简单地:make即可。 |
快速修改窗口
1 | 其实是quickfix插件提供的功能, 对编译调试程序非常有用 :) |
自动补全
1 | C-x C-s -- 拼写建议。 |
多行缩进缩出
1 | 正常模式下,按两下>;光标所在行会缩进。 |
折叠
1 | zf -- 创建折叠的命令,可以在一个可视区域上使用该命令; |
命令行
1 | normal模式下按:进入命令行模式 |
命令行模式下的快捷键:
1 | 上下方向键:上一条或者下一条命令。如果已经输入了部分命令,则找上一 条或者下一条匹配的命令。 |
执行外部命令
1 | :! cmd 执行外部命令。 |
其它
工作目录
1 | :pwd 显示vim的工作目录。 |
一些快捷键(收集中)
1 | K: 打开光标所在词的manpage。 |
在线帮助
1 | :h(elp)或F1 打开总的帮助。 |
一些小功能
1 | 简单计算器: 在插入模式下,输入C-r =,然后输入表达式,就能在 光标处得到计算结果。 |