vi filename 命令模式
a i o 插入模式 后前 行
Esc键 回到命令模式
Shift+: 编辑模式 set nu加行号 执行完命令后直接回到命令模式
:set nu 设置行号
:set nonu 取消行号
移动命令:
gg 到第一行
G 到最后一行
nG 到第n行 :n到第n行
$ 移至行尾
0 移至行首
删除命令:
x 删除光标字符
nx 删除光标后n个字符
dd 删除光标行
ndd 删除n行
dG 删除光标之后所有行
D 删除光标至行尾
:n1,n2d删除指定范围的行
复制和剪切命令:
yy 复制当前行
nyy 复制当前以下n行
dd 剪切当前行
ndd 剪切当前以下n行
p 行下粘贴
P 行上粘贴
替换和取消:
r 取消光标所在处的字符
R 从光标所在处开始替换字符,按Esc结束
u 撤销上一步操作
搜索和搜索替换命令:
:/string 搜索指定字符串 :set ic 忽略大小写搜索、替换set noic
:%s/old/new/g全文替换指定字符串 中间无空格
:n1,n2/old/new/c在一定范围内替换指定字符串
g 不询问
c询问确认
:n1,n2s/^/#/g 从n1行到n2行连续加注释 :n1,n2s/^/\/\//g 加//注释 转义字符为\
:n1,n2s/^#//g 把行首的注释符去掉
^表示行首
保存和退出命令:
:w 保存修改
:w new_filename 另存为指定文件
:wq 保存修改并退出 快捷键是ZZ
:q! 不保存修改退出
:wq! 强制保存修改并退出(文件所有者及root可使用,此时文件的所有者的权限是4)
ls -l 的缩写是 ll
导入命令:
:r 文件名 将指定文件内容导入当前文件中
:!which ls 在不退出vim的情况下执行系统命令
:r !date 将执行系统命令的结果导入到当前文件中
定义快捷键:
:map ^P I#<ESC> 插入#
:map ^P 0x 删除第一个字符
Ctrl+v+p定义的快捷键是Ctrl+p
替换:
:ab mymail samlee@lampvrother.net
家目录下的文件,文件内的编辑模式永久生效 /home.username/.vimrc /root/.vimrc
.vimrc 是vim编辑器的配置文件
set nu
map ^P I#<ESC>
ab mymail jinzhao@hbu.edu.cn
VIM多文件编辑:
:n 编辑下一个文档
:N 编辑上一个文档
:files 列出目前这个vim开启的所有文档
VIM多窗口编辑:
:vsp
:sp [filename] 开启一个新窗口。如果有filename,新窗口为新文档,否则显示同一个文档。
[ctrl]+w j
[ctrl]+w 下箭头 移动到下方窗口
[ctrl]+w k
[ctrl]+w 上箭头 移动到上方窗口
ctrl]+w q 相当于:q 退出
:Ex 查看当前目录,选择文件进行编辑
:Sex 查看整个目录
VIM常用命令补充:
:set nu/ nonu 设置/取消行号
:set autoindent/noautoindex 是否自动缩进
:set backup/nobackup 是否自动存储备份
:set ruler 是否显示右下角的状态栏说明
:set showmode 是否显示左下角如--INSERT--等提示符
:set all 显示当前所有环境参数设定值
:set 显示与系统默认值不同的参数设定
:syntax on/off 是否语法高亮显示
:set bg=dark/light 设置背景颜色