keyworkds: vim ====== 编辑文件: ====== * i 在当前位置生前插入 * I 在当前行首插入 * a 在当前位置后插入 * A 在当前行尾插入 * o 在当前行之后插入一行 * O 在当前行之前插入一行 ---- ====== 移动 ====== * h 左移一个字符 * l 右移一个字符,这个命令很少用,一般用w代替。 * k 上移一个字符 * j 下移一个字符 * 以上四个命令可以配合数字使用,比如20j就是向下移动20行,5h就是向左移动5个字符,在Vim中,很多命令都可以配合数字使用,比如删除10个字符10x,在当前位置后插入3个!,3a!,这里的Esc是必须的,否则命令不生效。 * w 向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令快,可以代替l命令。 * b 向后移动一个单词 2b 向后移动2个单词 * e,同w,只不过是光标停在单词尾部 * ^ 移动到本行第一个非空白字符上。 * 0(数字0)移动到本行第一个字符上, * $ 移动到行尾 3$ 移动到下面3行的行尾 * % 所有行 * gg 移动到文件头 * G(shift + g) 移动到文件尾 * 10G 跳到第10行 * f(find)命令也可以用于移动,fx将找到光标后第一个为x的字符,3fd将找到第三个为d的字符。 * 查找: * /text  查找text,按n健查找下一个,按N健查找前一个。 * ?text  查找text,反向查找,按n健查找下一个,按N健查找前一个。 ---- ====== 替换 ====== * :1,$s/aaa/bbb/ 从第一行到最后一行,将第一个aaa改成bbb * :1,$s/aaa/bbb/g 从第一行到最后一行,将所有的aaa改成bbb * :1,$s/aaa/bbb/c 从第一行到最后一行,将所有的aaa改成bbb(交互模式)每次遇到aaa时问你是不是需要修改,确定按y 否则n * :%s/^/#/g 注释整个文档 * :1,3s/^/#/g 注释前3行 ---- ====== 保存,退出 ====== * :wq 保存并退出 * ZZ 保存并退出 * :q! 强制退出并忽略所有更改 * :e! 放弃所有修改,并打开原来文件。 * :e! a.txt 放弃所有修改,并打开a.txt。 ---- ====== 多文件 ====== * :split file或:new file 用新窗口打开文件 * split打开的窗口都是横向的,使用vsplit可以纵向打开窗口。 * Ctrl+ww 移动到下一个窗口 * Ctrl+wj 移动到下方的窗口 * Ctrl+wk 移动到上方的窗口 * :r /etc/group 将一个文件的内容写到当前文件中 * :w 保存不退出 ---- ====== 删除 ====== * dd 删除一行 * d$ 删除当前字符之后的所有字符 * dgg 删除当前行之前所有行,不包括当前行 * dG 删除当前行之后所有行,包括当前行 * dfx 删除光标处到下一个x之间的所有字符 ---- ====== 复制,黏贴 ====== * yy 拷贝当前行 * 5yy 拷贝当前后开始的5行 * p 在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。 * u 撤销(Undo) * U 撤销对整行的操作 * Ctrl + r 重做(Redo),即撤销的撤销。 ---- ====== 字符操作 ====== * 5x 删除5个字符 * rx 将当前字符替换成x ---- ====== 其他 ====== * :set nu 显示行号 * :set nonu 显示行号 * :!command 执行shell命令 * 设置tab建长度:修改~/.vimrc文件,加入:set ts=4 * [[vim插件管理]] * [[vim各个插件介绍]]