目录
创建/打开文件
vi 文件名
打开一个文件,如果文件不存在,就创建它
vi test.c
回车后进入vi界面如下
vi的三种模式
vi有三种模式:命令行模式、插入模式和替换模式
在命令行模式下,任何键盘输入都是命令
vi初始化是命令行模式
在插入模式和替换模式下,键盘输入的才是字符
插入模式和替换模式合称编辑模式
按i键进入插入模式(底部有提示--INSERT--)
按Esc键返回命令行模式(底部没有提示)
按R键进入替换模式(底部有提示—REPLACE--)
vi的常用命令
Esc 从编辑模式切换到命令行模式
按i键进入插入命令,输入My World
在vi命令行模式下,光标移动到字母r上
i 在光标所在位置前面开始插入
按i键后,进入插入模式,输入ccc,在光标前插入
a 在光标所在的位置后面开始插入
按Esc键返回命令行模式,光标前移一个字符
再按a键,光标退回原位置,输入bbb,在光标前插入
按Esc键返回命令行模式
o 在光标所在位置下一行插入空白行,光标移动到下一行
注意是小写字母o不是0
同上,返回命令行模式,将光标向上移动到M
O 在光标所在位置上一行插入空白行,光标移动到上一行
注意是大写字母O不是0
先返回命令行模式,将光标移动到第一个字符b
I 在光标所在位置行的行首开始插入
返回命令行模式
A 在光标所在位置行的行末开始插入
返回命令行模式
k 类似方向键上
j 类似方向键下
h 类似方向键左
l 类似方向键右
切换到root用户主目录下
Ctrl+d 向下翻半页
Ctrl+u 向上翻半页
Ctrl+g 显示光标所在位置的行号和文件的总行数
nG 光标跳到文件的第n行行首(如我按10G,再按Ctrl+g显示下)
G 光标跳到文件最后一行(同上按Ctrl+g显示)
:n回车 光标跳到第n行
如:5回车 光标跳到第5行(同上按Ctrl+g显示)
先将光标移动到第8行中间
0 光标跳到当前行的行首
$ 光标跳到当前行的行尾
w 光标跳到下个单词的开头
b 光标跳到上个单词的开头
e 光标跳到本单词的尾部
x 每按一次,删除光标所在位置的一个字符
u 撤销命令,可多次撤销
将光标移动到onboot的o上
nx 如"6x"表示删除光标所在位置开始的6个字符(只针对光标所在行)
按u键恢复
将光标移动到onboot的n上
dw 删除光标所在位置到本单词结尾的字符
按u恢复
D 删除本行光标所在位置后面全部的内容
dd 删除光标所在位置的一行
ndd 如"2dd"表示删除光标所在位置开始的2行
按多次u恢复到未修改状态
先按:88回车跳到文件的第88行,按Ctrl+g显示
yy 将光标所在位置的一行复制到缓冲区(无提示)
p 将缓冲区里的内容粘贴到光标所在位置
nyy 将光标所在位置的n行复制到缓冲区(如3yy)
r 替换光标所在位置的一个字符 replace
R 从光标所在位置开始替换,底部出现提示—REPLACE
直到按下"Esc",回到命令行模式
将光标移动到单词sbin的开头s处
cw 从光标所在位置开始替换单词,光标处sbin单词删除底部提示—INSERT—
输入fghj,按Esc键退出单词替换
J 把当前行的下一行接到当前行的尾部
连按u,直到恢复到初始状态,提示Already at oldest change
/mc 在当前文件中查找“mc”文本内容
光标自动从当前行跳到下边第一次出现mc的位置
n 查找下一个
N 查找上一个
. 重复执行上一次执行的vi命令(结合其他命令,奇妙无穷)
将光标移动到字符u
~ 对光标当前所在的位置的字符进行大小写转换
列操作(若vi操作没反应,可能是版本问题,执行命令yum –y install vim*)
若yum命令执行不了,参考如下链接:
Centos 6无法使用yum的解决方法_提示Error: Cannot find a valid baseurl for repo: base – 主机之家测评 (liuzhanwu.cn)
(2条消息) CentOS yum 安装时错误 Errno 14 Couldn't resolve host 解决办法_weixin_30526593的博客-CSDN博客
(1)Ctrl+V 有提示—VISUAL BLOCK--
(2)光标上或下
(3)大写的I 提示—INSERT--
(4)输入内容 如ccc
(5)Esc 稍等一下
:w回车 存盘
:q回车 不存盘退出
:q!回车 不存盘强制退出(当q无法退出时使用)
查看下cat test.c
:w!回车 强制存盘(当w无法存盘时使用),注意保存别按Ctrl+s
:wq回车 存盘退出
查看修改cat test.c
:x回车 存盘退出等价于wq,但特别注意别按成了X
:X回车 为当前文件设置密码
输入则设置密码
如123
:wq退出,下次vi test.c时需输入密码123,如下
若密码输入错误,则显示乱码
两次回车即不设密码
:set key=回车 清除文件密码
:wq回车保存后退出,再次vi test.c无需密码就可以进入
:g/ccc/s//bbb/g回车
把文件中全部的ccc替换成bbb
替换前
替换后
Ctrl+s 终止屏幕输出(即停止回显),你敲的依然有效,但看不见
(联想:像不像在Linux系统终端输入密码的感觉)
Ctrl+q 恢复屏幕输出,你刚敲的都将显示
Ctrl+insert 复制文本,相当于Ctrl+c
Shift+insert 粘贴文本,相当于Ctrl+v
以上两个命令在windows和UNIX中是通用的
Linux系统下也可以使用Ctrl+shift+c复制,Ctrl+shift+v粘贴
vi中文显示乱码参考:vi显示中文乱码 - dongtshj - 博客园 (cnblogs.com)