文章目录

  • vi的常用操作
    • 进入vi
    • 命令模式和Insert模式切换
    • 保存和退出
  • 命令模式(重点)
    • 进入Insert模式
    • 移动光标
    • 删除文字
    • 复制
    • 查找
    • 字符替换
    • 字符串替换
    • 显示行号
    • 如何快速清空文件内容

vi的常用操作

进入vi

[root@hadoop-master test]# vi vi_test.txt

使用如上命令就可以进入vi_test.txt的内容页面

#!/usr/bin/env bash
echo "服务器开始部署服务"
projectname="demo"
#打开文件所属的目录,不然远程执行会找不到当前目录
cd /usr/local/test
#新的jar包会当成参数传过来
newJar=$1
echo "新的jar为:$newJar"
#如果新的jar包为空则退出
if [ -z "$newJar" ]; thenecho "新的jar不能为空"exit 0
fi

命令模式和Insert模式切换

在打开vi命令后默认进入命令模式,按字母[i]或者[Insert]键就可以进入编辑模式

编辑模式下面会有个INSERT标志,在编辑模式就可以修改文件内容,再按[Esc]就会进入命令模式。

保存和退出

在命令模式下,按[:]冒号进入[Last line mode]
保存::w(输入命令后按[Enter]回车键执行命令)
退出::q
保存并退出::wq
保存并强制退出::wq!

命令模式(重点)

进入Insert模式

按[i]进入插入模式,光标是从当前位置开始的

按[a]进入插入模式,光标是从当前位置的下一个字符开始的


按[o]进入插入模式,光标是从当前位置的下面重新插入一行,并且光标从行首位置开始

移动光标

向左:⬅、[h]
向右:➡、[l]
向下:⬇ 、[j]
向上:⬆ 、[k]

按「ctrl」+「b」:屏幕往"后"移动一页。
按「ctrl」+「f」:屏幕往"前"移动一页。
按「ctrl」+「u」:屏幕往"后"移动半页。
按「ctrl」+「d」:屏幕往"前"移动半页。
按数字「0」:移到段落的的开头。
按「G」:移动到文章的最后。
按「$」:移动到光标所在行的"行尾"。
按「^」:移动到光标所在行的"行首"
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l。

删除文字

「x」   每按一次,删除光标所在位置的"后面"一个字符。
「#x」  例如,「6x」表示删除光标所在位置的"后面"6个字符。
「X」   大写的X,每按一次,删除光标所在位置的"前面"一个字符。
「#X」  例如,「20X」表示删除光标所在位置的"前面"20个字符。
「dd」  删除光标所在行。
「#dd」 从光标所在行开始删除#行

复制

「yw」  将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」 复制#个字到缓冲区
「yy」  复制光标所在行到缓冲区。
「#yy」 例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
「p」   将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。

查找

/pattern  从光标开始处向文件尾搜索pattern
?pattern  从光标开始处向文件首搜索pattern

字符替换

「r」  替换光标所在处的字符。
「R」  替换光标所到之处的字符,直到按下「ESC」键为止。

字符串替换

:1,$s/oldstr/newstr/g        在全文范围用newstr替换oldstr
:n,ms/oldstr/newstr/g        在第n行到第m行内用newstr替换oldstr

显示行号

[:set number]   或者 [:set nu]       显示行号
[:set nonumber] 或者 [:set noun]     不显示行号

如何快速清空文件内容

方法一:

echo  "" > fileName

方法二:
首先vi打开文件(命令模式):

gg
dG

gg命令是回到文件首部,dG(注意G是大写)是删除从光标开始到文件尾内容。

方法三(不如方法二):
首先vi打开文件(命令模式)

:1
10000dd

:1命令是回到文件首部,10000dd是删除从光标开始10000行内容。
参考:

vi命令详解:https://www.cnblogs.com/ovliverlin/articles/1162430.html
vi命令汇总:https://www.cnblogs.com/fwl8888/p/9416375.html

每天学一点儿shell:vi和vim命令使用相关推荐

  1. java vi命令 退出_Git 使用vi或vim命令打开、关闭、保存文件

    1 vi & vim 有两种工作模式: (1)命令模式:接受.执行 vi & vim 操作命令的模式,打开文件后的默认模式: (2)编辑模式:对打开的文件内容进行 增.删.改 操作模式 ...

  2. linux vim命令pdf,Linux中vi、vim命令大全

    Linux中vi.vim命令大全 2019-11-21 16:55Linux命令大全 Linux vi 是 unix/linux 下极为普遍的一种文本编辑器. vi 有各种变种, 在不同的机器上有不同 ...

  3. Linux下vi与vim命令使用与区别

    [1]VI与VIM区别 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. vim的这些优势主要体现在以下几个方面: ① 多级撤消 我们知道 ...

  4. 每天学一点儿shell:Shell的常用语法规则

    文章目录 Shell 参数传递 Shell 数组 Shell 基本运算符 算数运算符 关系运算符 布尔运算符 逻辑运算符 字符串运算符(重点) 文件测试运算符 Shell 常用语法 Shell 函数 ...

  5. 每天学一点儿shell:shell字符串变量的基本操作

    文章目录 shell变量的定义 定义变量 变量命名规范 变量的使用 字符串的操作 单引号.双引号 其他常见操作 获取字符串长度 截取字符串 获取字符串位置 shell变量的定义 定义变量 定义变量的时 ...

  6. 每天学一点儿shell:xargs 命令

    文章目录 一.标准输入和管道 二.xargs命令的作用 三.xargs命令的实例 1.创建多个文件目录 2.多行内容变单行输出 3.将内容按照","分隔 4.找到所有的txt文件并 ...

  7. 每天学一点儿shell:Linux三剑客——awk命令

    文章目录 awk的命令格式 命令格式 常用命令选项 awk内置命令 awk的用法实例 获取内容的第2列 获取每一行的行数 内置函数 算数函数 字符串内置函数 时间内置函数 awk的命令格式 命令格式 ...

  8. 每天学一点儿shell:Linux三剑客——sed命令

    文章目录 sed用法 sed实例用法 1.打印文件的第2行 2.打印文件的第2-5行 3.删除第2行 4.删除第2-5行 5.删除第2到最后一行 6.追加"love china" ...

  9. 每天学一点儿shell:Linux三剑客——grep命令

    文章目录 前言 正则表达式 grep命令用法 grep命令实例 用法一:查找root字符串的行数以及内容 用法二:查找"core id"字符串以及前后2行内容 用法三:匹配包含&q ...

最新文章

  1. 相信自己,我能2 — ORM 工具的插入性能比较
  2. Netty:另一种Web(套接字)服务器
  3. 《CCNA学习指南:Cisco网络设备互连(ICND1)(第4版)》——1.10节本章小结
  4. inner join on 加条件和where加条件_图解 SQL 中各种连接 JOIN
  5. linux 正则表达式和通配符
  6. AndroidStudio_安卓原生开发_请求网络图片并解析成BitMap_异步处理_在UI线程执行_利用AsyncTask---Android原生开发工作笔记146
  7. 通风技术交底书范文_通风与空调工程风管安装安全技术交底
  8. php怎么判断未定义索引数组,PHP数组查找中的未定义索引
  9. 艾肯声卡VST新款驱动下载自带机架效果无需做跳线_小伙音频工作室分享
  10. c++用msxml6.0解析xml
  11. 卖猪还钱 法院拍卖被执行人300头生猪 40.5万成交
  12. apache 二级域名设置完整步骤
  13. Python练手项目:计算机自动还原魔方(3)还原两层
  14. 使用计算机的什么来储存数据,电脑数据存贮器
  15. 创业失败的18个原因
  16. Mac上如何下载brew
  17. Ribbon与Hystrix
  18. 【数据结构C语言】二叉树的遍历
  19. git新branch创建
  20. 2023年华数杯国际赛数学建模

热门文章

  1. 会计证考试《财经法规与职业道德》第四章精选题
  2. MM模块常用T-code
  3. 中报亮眼,阅文的增长“飞轮”是如何练成的?
  4. django外调用url_Django:中间件 与 案例
  5. html5 video js控制摄像头的焦距,html 通过input video canvas 打开摄像头 定制相机
  6. 花两千元学python_花两万学的python,总结了一点初学者的小技巧,免费送给大家...
  7. python读取输入流_python – 将一个正在运行的程序的输出流传输到其他正在运行的程序的输入流...
  8. python对话机器人软件_如何用Python为聊天机器人创建对话?
  9. android加载转圈动画,android 围绕中心旋转动画
  10. php中unset函数是在哪一章_PHP unset函数原理及使用方法解析