Linux vi/vim/编辑器使用介绍(详细)

今天给伙伴们分享一下Linux 命令行基本语法和获取帮助,希望看了有所收获。

我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!

如果伙伴们看了文档觉得有用,欢迎大家关注我的公众号,获取相关文档。爱运维,爱生活。

一、vi/vim/编辑器介绍

  • Vim的发布最早可以追溯到1991年,英文全称为Vi Improved。它也是Vi编辑器的提升版本,其中最大的改进当属添加了代码着色功能,在某些编程场景下还能自动修正错误代码。

  • vi(visual editor)编辑器通常被简称为vi,它是Linux和Unix系统上最基本的文本编辑器,类似于Windows 系统下的notepad(记事本)编辑器。

  • vim(Vi improved)是vi编辑器的加强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用,全兼容vi,最明显的区别是vim可以语法加亮。

  • 通常情况下已经默认安装好了 vi 或 Vim 文本编辑器,只需要通过vim命令就可以直接打开vim编辑器。

  • Vim编辑器中设置了3种模式—命令模式、末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。要想高效地操作文本,就必须先搞清这3种模式的操作区别以及模式之间的切换方法。

二、vi/vim打开文件

[root@edenluo.com ~]# vim   文件名
1、创建文件
2、打开文件
3、编辑文件

三、vi/vim工作模式

命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。

输入模式:正常的文本录入。

末行模式:保存或退出文档,以及设置编辑环境。

第4章 Vim编辑器与Shell命令脚本第4章 Vim编辑器与Shell命令脚本

  • 在每次运行Vim编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编写工作。而每次在编写完文档后需要先返回命令模式,然后再进入末行模式,执行文档的保存或退出操作。
  • Vim中无法直接从输入模式切换到末行模式。

1、命令模式详解

光标定位:h j k l      分别对应左h下j上k右l方向键


ctrl+g       显示文件信息,统计行号(数)
ctrl+b       屏幕往前移动一页
ctrl+f       屏幕往后移动一页
ctrl+u       屏幕往后移动半页
ctrl+d       屏幕往前移动半页



0或者^       定位光标到当前行的开始
$            定位光标到当前行的结尾
gg、1G       移动到文章首行
G            定位到文本底部
3G           进入第三行 
dd           删除(剪切)当前光标所在行
数字+dd      删除多行
D            删除当前光标以后的内容
d^           删除当前光标之前的内容
yy           复制当前光标所在行
数字+yy      复制多行
p            粘贴
P            粘贴当前光标所在行上一行
u            undo撤销
ctrl+r       回滚撤销
shift+v      可视行模式
ctrl+v       可视块模式

2、编辑模式详解

  • 进入编辑模式

    • [i]:在当前字符前插入字符

    • [I]:在当前行行首插入字符

    • [a]:在当前字符后插入字符

    • [A]:在当前行行末插入字符

    • [o]:在当前行下插入新的一行,从行首输入文字

    • [O]:在当前行上插入新的一行,从行首输入文字

  • 编辑内容

  • 从编辑模式进入命令模式:ESC

3、末行模式详解

 :set nu        显示行号
 :set nonu      取消行号

 :set ts=4      设置一个制表符(tabstop)的长度是 4
 :set sw=4   	 vim 在缩进代码时的缩进量(shiftwidth)4

 
 :set  si       自动缩进
 :set  ci
 自动缩进
在vi中自动缩进的选项一般有以下的几种:
autoindent: 在这种缩进形式中,新增加的行和前一行有相同的缩进形式。
smartindent: 在这种缩进模式中,每一行都和前一行有相同的缩进量,同时能够正确的识别出{},当遇到右花括号(}),则取消了缩进形式。此外还增加了识别C语言关键字的功能。如果一行是以#开头的,那么这种格式将会被特殊对待而不采用缩进格式。这种缩进格式强于autoindent。
cindent:这是C语言的缩进形式,采用这样的缩进方式的程序语言有:C,C++,Java等。当采用这种缩进格式时,vi就会自动的采用标准的C语言形式。这种缩进格式强于smartindent。
可以用如下命令进行缩进形式的设置:
:set autoindent(ai)
:set smartindent(si)
:set cindent(ci)

 替换
 s
 :s/world/nice/     替换当前光标所在行匹配到的第一个内容
 :%s/world/nice/    %表示替换所有行匹配到的第一个内容(每一行只给一次匹配机会)   
 :%s/world/nice/g   替换行内所有关键字,匹配当前文件所有能匹配到的都给替换了
 :3s/world/nice/    替换指定行
 :3,10s/world/nice/ 第3行到第10行
 :3,4s/^/#/         每行行首加指定内容
 :,8s/hello/hi/		从当前行到第8行
 :5,10 s/.*/#&/     5-10前加入#字符  (.*整行   &引用查找的内容)
 
 :w      保存
 :q      退出
 :wq     保存退出
 :x      保存退出  //快捷键ZZ (大写的)
 :wq!    强制保存退出

4、命令模式中最常用命令

命令作用
dd删除(剪切)光标所在整行
5dd删除(剪切)从光标处开始的5行
yy复制光标所在整行
5yy复制从光标处开始的5行
n显示搜索命令定位到的下一个字符串
N显示搜索命令定位到的上一个字符串
u撤销上一步的操作
p将之前删除(dd)或复制(yy)过的数据粘贴到光标后面

5、末行模式中最常用命令

命令作用
:w保存
:q退出
:q!强制退出(放弃对文档的修改内容)
:wq!强制保存退出
:set nu显示行号
:set nonu不显示行号
:命令执行该命令
:整数跳转到该行
😒/one/two将当前光标所在行的第一个one替换成two
😒/one/two/g将当前光标所在行的所有one替换成two
:%s/one/two/g将全文中的所有one替换成two
?字符串在文本中从下至上搜索该字符串
/字符串在文本中从上至下搜索该字符串

如果有版帮助,帮忙免费的关注一下**公众号「想吃西红柿」「云原生运维实战派」**后续会有更多实用的运维技术分享给伙伴们,您的关注就是我最大的成就。

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尘嫣慕曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值