一文看懂linux 中vi编辑文件的所有操作

在Linux中我们常用的文本编辑器有Vi,Vim(Vi的增强版)。而且vi编辑器不仅仅是适用于Linux,它是所有Unix以及Linux系统下的标准编辑器,几乎适用于Unix、Linux系统的所有版本。vi或vim虽然没有Windows操作系统中的图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理字符界面中,永远不是图形界面的编辑器能比的。它能轻易地创建和修改文本文件,维护Linux系统中的配置文件。其实刚开始的时候我也觉得很不习惯,但是用的多了渐渐就熟悉了。个人觉得掌握这些命令没有必要刻意的记忆,遇到不会的查找一下表就好了,用的多了自然就记得了。

首先了解他有三个模式,下面这张图是他们之间的关系
在这里插入图片描述

Vi编辑器三种工作模式
1、命令模式(command mode):
控制屏幕光标的移动,字符,子或行的删除,移动,复制到某区段。以及起到插入模式(Insert mode)和末行模式(last line mode)的桥梁作用。
2、插入模式 (Insert mode):
只有在插入模式下才可以进行文字输入,按[ESC]键可以退回到命令模式。
3、末行模式(last line mode):
将文件保存或者退出Vi,也可以设置插入环境,如:寻找字符串,行号等。

进入模式后,是当前光标所在位置之后开始输入文字;
按[i]键进入插入模式后, 是当前光标所在位置之前开始输入文件;
按[o]键进入插入模式后,是在光标所在位置下一行添加新的一行,从行首开始输入文字;
按[O]键进入插入模式后,是在光标所在位置上一行添加新的一行,从行首开始输入文字;
按[r]键替换当前光标所在位置的字符;
按[R]键可以替换当前光标所在位置之后的字符。

a.保存或者退出编辑器
:q 退出而且不保存修改的内容
:q! 强制退出不保存修改的内容
:wq 退出并且保存修改的内容
:wq! 强制保存修改的内容然后退出(修改了只读文件会用到)

b.光标移动命令
对于我而言,比较喜欢上下左右方向键,字母 h (左) ,j (下), k(上),l(右)也是可以的但是总感觉有点奇怪(题外话:可能是单机游戏打多了)
^ 光标移到行首
$ 光标移到行尾
shift+g 光标移动到文件最后一行
gg 光标移动到文件第一行

c.控制命令
打开一个内容很多的文件的时候经常用到。
Ctrl+d 向下滚半屏
Ctrl+u 向上滚半屏
Ctrl+f 向下滚全屏
Ctrl+b 向上滚全屏

d.编辑命令
主要是进入编辑状态,也就是insert状态
i 光标当前位置开始编辑
o 光标的下一行开始编辑
shift+o 光标的上一行开始编辑

e.删除命令
dd 删除一行,可以带个数字,如6dd,表示向下删除6行
d$ 删除光标到行尾的内容(也可以使用ctrl+d)
d^ 删除光标到行首的内容
x 删除光标位置的字符(向后删除)
shift+x 删除光标位置的字符(向前删除)

f.查找命令
/String 查找一个字符串(向下开始)
?String 查找一个字符串(向上开始)
n 向后查找下一个
shift+n 向前查找下一个

g.粘贴复制命令
yw 复制一个单词
yy 复制一行,和删除dd一样可以带个数字,6yy复制六行(向下复制6行)
p 粘贴到光标位置的下一行
shift+p 粘贴到光标位置的上一行

h.同时打开两个文件
比如:aa.txt ss.txt
打开第一个文件vi aa.txt然后输入下面的命令
:sp ss.txt 此时就在同一个窗口打开另外一个ss.txt
Ctrl+w 进行两个文件上下窗口切换(需要再按上下方向键)

i.其他常用命令
:e! 重新加载文件,再查看日志文件的时候可以用,不断在变化的文件。
shift+j 将下一行拼接到上一行
u 撤销
:set nu 显示行号
:set nonu 取消显示行号
:n 跳转到第n行(按回车才会跳)
Ctrl+g 会在显示屏的底部显示文件名字和总的行数,当前光标的位置行号
~ 这个将会改变光标位置的字符的大小写
Ctrl +a 跳到当前命令行里的首位,比如 cd /etc/profile ,这个是一个文件,我想改成vi /etc/profile 就可以按 ctrl+a 光标就会移到cd位置,如果碰到比较长的命令,这个还是非常的实用的
ctrl+e 跳到当前命令行的末尾。和ctrl+a 相反

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值