1、光标移动
h,j,k,l 左,上,下,右 #10j“表示向下移动10行
CTRL-G“命令,可以查看光标在文件中的位置
0 跳至行首,不管有无缩进,就是跳到第0个字符
^ 跳至行首的第一个字符
5gg/5G 调至第5行
5l 向后跳5列
u 撤销
~ 切换大小写,当前字符
> 将当前行右移一个单位;如果想要多个缩进,n+>
< 将当前行左移一个单位(一个tab符)
== 自动缩进当前行
2、查找替换
/pattern 向后搜索字符串pattern
?pattern 向前搜索字符串pattern
n 下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)
N 上一个匹配(同上)
:%s/old/new/g 搜索整个文件,将所有的old替换为new #类比sed -i s/old/new/g file
:%s/old/new/gc 搜索整个文件,将所有的old替换为new,每一个都要你确认是否替换
3、复制粘贴删除插入,行操作,列操作
选择模式:
v 字符选择,会将光标经过癿地方反白选择!
V(大写) 行选择,会将光标经过癿行反白选择!(常用,配合上下左右键,进行区域选择,很爽!!!)
[Ctrl]+v 区块选择,可以用长方形癿方式选择资料 CTRL+v 将编辑器切换至"可视模式"(visual mode)
删除d 复制y 粘贴p
(1)在某一列插入相同的数值
首先ctrl+v选中一列,然后操作组合键SHIFT+i(SHIFT+i插入到列的左边,SHIFT+a插入到列的右方),这时候光标会回到选定起始点,当时可输入你要插入的内容。输入完成后按ESC键,按ESC键退出“可视模式”并完成插入操作(也就是两次ESC键)。
(2)批量替换列块
CTRL+v选择完成后,接着按c键,然后输入你要替换后的文字,最后ESC,ESC。完成列替换操作
(3)对字符操作
x, X 在一行字当中,x 为向后删除一个字符 (相当亍 [del] 按键),X 为向前删除一个字符(相当亍 [backspace] 亦即是退格键) (常用)
nx n 为数字,连续向后删除 n 个字符。丼例来说,我要连续删除 10 个字符, 『10x』。
d$ 删除游标所在处,到该行行尾的所有字符
d0 删除游标所在处 ,到该行行首的所有字符
4、自动排版
在粘贴了一些代码之后,vim变得比较乱,只要执行gg=G就能搞定
5、vimrc设置
#设置一个tab占多少空格
变量名 缩写 含义
(no)smartindent si 基于autoindent的一些改进
tabstop=X ts 编辑时一个TAB字符占多少个空格的位置。
shiftwidth=X sw 使用每层缩进的空格数。
(no)expandtab (no)et 是否将输入的TAB自动展开成空格。开启后要输入TAB,需要Ctrl-V<TAB>
softtabstop=X sts 方便在开启了et后使用退格(backspace)键,每次退格将删除X个空格
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
放在 ~/.vimrc中仅对自己生效,放在/etc/vimrc中对所有用户生效
6,自动补全
ctrl+p 向上查找
ctrl+n 向下查找