VIM
目录
三种模式
- 一般模式:打开vim就是一般模式,这个模式下基本上除了插入之外,其他事儿都能做。
编辑模式:在一般模式下按下(i, I, o, O, r, R)之后会进入编辑模式,此时界面左下角会出现INSERT/REPLACE,表明可以编辑。ESC退出编辑模式。
- i/I:i为从目前光标处插入;I为所在行的第一个非空格符处插入(左下角显示INSERT)
- a/A:a为从光标处的下一个字符插入;A为从所在行的最后一个字符后插入(左下角显示INSERT)
- o/O:o为所在行的下一行插入新的一行;O为所在行的上一行插入新的一行(左下角显示INSERT)
- r/R:替换模式,r只替换光标所在的字符一次,然后就会变成一般模式;R会一直保持替换模式,直到ESC(左下角显示REPLACE)
命令行模式:在一般模式下按下(: or / or ?)三个中的任意一个,就可以进入这个模式。这个模式下可以提供字符搜索,替换,行号的显示,文件的保存,以及多窗口显示等等。
常用按键
#一般模式可用的按键
G 移动到文件的最后一行
gg 移动到文件的第一行
n(Enter) 光标向下移动n行
/key 向下寻找关键字key
n 重复前一个查找
N 与n相反,与前一个查找反向
:1, $s/old/new/g 从第一行到结尾,用new替代old
x, X x为向后删除所在处的一个字符;X为向前删除所在处的一个字符
nx 向后删除n个字符
dd 删除所在行
ndd 向下删除n行
d1G 删除所在行到第一行的所有行
dG 删除所在行到结尾的所有行
d$ 删除所在处到行尾的所有字符
d0 删除所在处到行首的所有字符
yy 复制所在行
nyy 向下复制n行
y1G 复制所在行到第一行的所有行
yG 复制所在行到结尾的所有行
y$ 复制所在处到行尾的所有字符
y0 复制所在处到行首的所有字符
p, P p为将已复制的数据粘贴到所在行的下一行; P为粘贴到上一行
u 复原上一个操作
ctrl+r 重做上一个动作
. 重复前一个操作
v 字符选择
V 行选择
ctrl+v 块选择
y 复制选择的字符
d 删除选择的字符
#命令行按钮
:w 保存文件
:w! 强制保存(不一定会成功)
:q 离开
:q! 强制离开
:wq 保存后离开
:w filename 文件另存为filename
:set number 显示行号
:set nonumber 取消行号
#多窗口
:sp filename 打开一个新窗口,sp为split
ctrl+w+↓ 光标移动下一个窗口
ctrl+w+↑ 光标移动到上一个窗口
ctrl+w+q 离开本窗口
环境变量设置
如果不想打开vim都要设置,可以设置~/.viminfo或者~/.vimrc
#~/.viminfo
:set number 设置行号
:set nonumber 取消行号
:set autoindent 设置自动缩排
:set noautoindent 取消自动缩排
:syntax on 设置语法显示颜色
:syntax off 取消语法显示颜色
编码问题
#文件编码
:file filename 查看文件编码
:set fileencoding[=codec] 如果有参数,则是设置,否则是查看文件编码
#编码转换,可以使用iconv
iconv -f 原本编码 -t 新编码 filename [-o newfile]