一.常用编辑
1. 删除一行 dd
2. 合并一行(删除回车) J
3. 撤销 u ,撤销一整行的改变 U,如果撤销的太多,可以使用Ctrl+r来恢复
4. e!强制从新加载当前文件
5. 移动光标 可以使用数字+方向,如向上移动5行可以使用5k
二.移动
1. [n]w 光标移动后面第n个单词的首字母
2. [n]b 光标移动到前面第n个单词的首字母
3. [n]e 光标移动到后面第n个单词的尾字母
4. [n]ge 光标移动到前面第n个单词的尾字母
5. [n]$光标移动到行尾
6. [n]^光标移动到行首
7. [n]f[x] 向光标后面查找字母x,并使光标移动到该字母的位置
8. [n]F[x]向光标前面查找字母x,并使光标移动到该字母的位置
9. % 如果光标在(上,使用%那么光标将会定位到和该左括号匹配的右括号上
10. gg 光标移动到文件开始位置
11. G 光标移动到文件结尾位置
12. [n]G 光标移动到第n行
13. [n]%移动光标到文件的某个位置,如50%,移动光标到文件中间位置
14. 在可视的区域移动光标 H M L分别代表 Home Middle Last
15. Ctrl+g 显示光标所在位置
16. Ctrl+u 向上翻半屏 u指up
17. Ctrl+d 向下翻半屏 d指down
18. Ctrl+f 向下翻一屏 f指forward
19. Ctrl+b 向上翻一屏 b指backward
20. zz 当光标所在行位于屏幕最下端,按下zz可使当前行向上移动到屏幕中间位置
21. /word 向后搜索和work匹配的单词,使用n向后查找,N向前查找
22. ?word 向前搜素
23. \< 匹配单词的开头 \>匹配单词的结尾
24. /\<word\> 完全匹配
25. * 当程序中定义的变量 nr,将光标移动到nr上,按*,即可高亮所有nr
26. /the$ 匹配以the结尾 /^the 匹配以the开头
三.修改
1. d[n]w 删除n个单词
2. [n]x 删除n个字符
3. d$ 从光标位置删除到行尾
4. d^ 从光标位置删除到行首
5. c[n]w 改变n个单词,其实是删除n个单词,然后进入insert模式
6. cc改变一整行
7. c$改变到行尾
8. dh删除光标左侧的一个字符
9. s 相当于c1,改变一个字符
10. S相当于cc 改变一行
11. r替换一个字符
12. '.' 重复最后一次命令
13. v可视模式 ,vjj选择两行
14. y[n]w 复制n个单词
15. daw 光标即使在单词中间,也能删除该单词,aw指A Word,aw是一个文本对象
16. dG 从光标位置一直删除到文件末尾
17. dgg 从光标位置一直删除到文件开始
四.set命令
设置都在 vimrc文件中,使用:version命令可以查看vimrc文件的位置
set number显示行号
set nonumber 不显示行号
set hlsearch 设置搜素高亮
set nohlsearch 取消搜素高亮
set autoindent 自动缩进
set backup 设置备份
set nobackup 取消自动备份
syntax enable 自动语法着色
set background=dark 设置背景色(必须确保syntax 是enable)
set tabstop=4
set shiftwidth=4
set guifont=Consolas:h12
set cindent
五.编辑多个文件
1. edit foo.txt vim将会关闭当前窗口,开启一个新的窗口,如果当前窗口没有保存,则会提示
2. vim one.c two.c three.c 打开文件队列,完成一个后使用:next命令完成下一个,使用:previous回到上一个文件3. vs foo.txt竖直分割窗口,并将foo.txt置于左边的窗口进行编辑4. s foo.txt水平分割窗口,并将foo.txt置于上边边的窗口进行编辑
六.分割窗口
1. :split 分割后,光标位于第一个窗口
2. Ctrl+w 在分割后的不同窗口之间相互切换
3. :close 关闭一个窗口
4. :only 关闭其他窗口,只保留当前窗口
5. :split newfile 在分割窗口中打开其他文件
6. :new 打开一个新的窗口,并开始编辑一个空白文件
7. :vsplit 竖直分割窗口
8. :vnew 打开一个新的窗口,并开始编辑一个空白文件
9. :qall 如果要同时退出多个窗口 qall 指 quit all
10. :wall 保存所有 可以这样写:wqall
七.高级应用1.%s 替换:
:%s/class/four 其中%指的是范围(所有的行),s指substitute替换的意思,即将文件中所有的匹配class替换为four
:%s/class/four/g 其中g指的是一行中如果出现多次class,都将被替换
:%s/\<four\>/class/g 完全匹配替换
:%s/class/four/gc 其中c标记指的是每次替换都将会提示2. ppd 上下行对换
2.统计单词 g Ctrl+g
八.常用配置
set tabstop=4
set shiftwidth=4
set cindent
set guifont=Consolas:h12
set nobackup
syntax enable
set number
set hlsearch
set encoding=utf-8
在window下设置 set encoding=utf-8会导致菜单栏乱码,解决办法:
set langmenu=zh_CN
let $LANG = 'zh_CN.UTF-8'
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim