VIM编辑器
vim三种工作模式
命令模式
编辑模式
末行模式
vim的配置文件
vi /etc/vimrc
在最后一行添加一行 set nu,这样打开每个文件都显示行号,即时生效
命令模式
# 可视化模式,支持块选,ctrl+v
# 示例,批量注释 :
1. 将光标定位到需要批量注释的首(尾)行
2. ctrl+v,使用向上或向下选中所有需要注释的行
3. 按I进入插入模式,插入#
4. 连按两下Esc
# 行内跳转
快速移动到行首:Home键 或 ^(Shift+6)
快速移动到行尾:End键 或 $(Shift+4)
# 行间跳转
快速回到文本首行(第一行第一个字母):gg
跳转到第n行行首:ngg
# 删除
删除当前行:dd
删除从当前行开始的n行:ndd
删除从光标位置开始的一个单词:dw
删除从当前字符开始到行尾:D或d$
删除光标所在位置的字符:x
删除光标前面的一个字符:X
# 复制
复制当前行:yy
复制从当前行开始的n行:nyy
复制一个单词:yw
# 粘贴,需先使用删除或复制
粘贴到光标所在行的下一行:p
# 撤销
撤回到上一次变更前文本,可撤销多次:u
# 替换
替换光标所在位置的一个字符:r
替换从光标所在位置开始的一串字符,直到按下[Esc]结束:R
编辑模式
# 即使用英文字母大小写的i、a、o进入不同位置开始编辑,按Esc退出编辑模式
在光标前插入:i
在光标所在行的第一个字符前插入内容:I
在光标后插入:a
在行尾插入:A
在光标所在行的下一行插入新行:o
在光标所在行的上一行插入新行:O
末行模式
# 在命令模式下按下 : 号进入末行模式
不保存退出:q
强制退出:q!
将修改写入文件:w
保存退出:wq
强制保存退出:wq!
将当前文件的内容另存为到路径文件:w 路径/文件
将其他文件内容读入到本文件中来(会复制到本文件光标当前行的下一行):r 路径/文件
设置table键的宽度为4个空格:set ts=4
显示行号:set nu
取消显示行号:set nonu
取消高亮:noh
光标定位到第n行 n表示数字:n
删除第8行:8d
删除第4行至第7行:4,7d
删除第8行至末行:8,$d
复制第5行:5y
复制第5行至第7行:5,7y
复制第2行至末行:2,$y
# 替换
:s/root/R00T/ # 替换光标所在行,第一个root替换为R00T
:s/old/new/g # 替换光标所在行,一整行中所有匹配到的old改为new
:%s/old/new/g # 全篇替换,替换整个文本中所有匹配到的old为new
:开始行,结束行s/old/new/g # 将从开始行到结束行之间的old替换为new
# 其它示例
:A,Bs/^/#/ # 在第A行至第B行的行首(^)添加#
:A,Bs/$/! # 在第A行至第B行的行尾($)添加!
# 查找
正向查找:/关键字
查找时按 n 向下查找
查找时按 N 向上查找
非正常退出vim编辑器恢复
比如使用vim编辑了一个文件,没保存就断开连接了,或者A窗口打开了一个文件,B窗口又打开了该文件等等这些行为,都会在同目录下生成一个同名的.swp临时文件,该文件为隐藏文件,需要使用`ls -a`查看。
这时再用vim编辑该文件会进入
上面这种状态按q退出,如果需要恢复到上次未保存的vim状态,使用:vim -r 文件名
之后删除掉同名的隐藏临时文件即可,如不需恢复到上次的vim状态,直接删除该临时文件就行。