linux的vi编辑器计算工具,2018-1-2Linux基础知识(19)vi编辑器及bash算数
在上一章当中我们讲述了vim的基本操作,例如我们如何打开文件及关闭文件,以及如何进行编辑等,以及讲到了vim的诸多模式中之间的转换和常用的编辑命令,那么我们接下来介绍vim的末行模式及内建命令行接口的使用。
一、vim末行模式
vim的末行模式使得让vim编辑器的本身功能变得完善,使其编辑器是更加强大的一款工具,其末行模式的命令种类很多,那么在这里介绍其比较常见的用法:
1.1 地址定界
指的是在文本中的那个范围内作出相应的编辑操作,用逗号隔开指明起始位置和结束位置,其命令格式如下::start_pos[,end_pos]
从以上的格式可以看出,后面的结束位置是可以省略的,那么其编辑的方式有以下几种:#:特定的第#行,例如5即第5行;
.:当前行;
$:最后一行;
#,#:指定行范围,左侧为起始行,右侧为结束行
#,+#:指定行范围,左侧为起始行绝对编号,右侧为相对左侧行号的偏移量;例如:3,+7
.,$-1
1,$:全文;
%:全文;
/PATTERN/:从光标所在处其实向文件尾部第一次被模式匹配到的行;
/first/, $
/pat1/,/pat2/:从光标所在处开始,第一次由pat1匹配到的行开始,至第一次由pat2匹配到的行结束之间所有的行;
那么地址定界和我们此前选定的行范围一样,可以结合编辑命令一起使用,实现编辑操作:例如:
d
y
c
w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中;
我们可以指定某个行范围来进行其文件合并,使用r命令,空格跟上某个文件的路径就可以讲该文件内容合并到当前的文件当中。r /PATH/TO/SOMEFILE:将指定的文件中的文本读取并插入至指定位置;
1.2 查找
查找这个功能我们其实并不陌生,在Windows当中打开某个word文档时,想查找某个字段,或者使用某个文本编辑器,使用Ctrl+f快捷键,就会显示出搜索栏用来其进行查找,我们在Linux中使用less命令或man手册也是能查找出某个字段,但在vim中,我们不仅可以用关键字,还可以使用模式来进行查找。/PATTERN:从当前光标所在处向文件尾部查找能够被当前匹配到的所有字符串;
?PATTERN:从当前光标所在处向文件首部查找能够被当前匹配到的所有字符串;
n:下一个,与命令方向相同;
N:上一个,与命令方向相反;
1.3 查找并替换
以上说完了如何进行查找,那么替换也无非就是查找之后做出的一个处理的动作,讲查找到的字符或字段来进行替换你想要的字符串果,使用特殊的命令为s。s:末行模式的命令;使用格式为:
s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用正则表达式;
替换为的内容:不能使用正则表达式,但可以引用;
如果"要查找的内容"部分在模式中使用分组符号;在"替换为的内容"中使用后向引用;
直接引用查找模式匹配的全部文本,要使用&符号;
修饰符:
i:忽略大小写;
g:全局替换,意味着一行中如果匹配到多次,则均为替换;
可把分隔符替换为其它非常用的字符:
s@@@
s###
所以替换为的内容不能使用正则表达式元字符,因为它并不是处理查找的内容而去使用的,但可以使用后向引用机制,也可以使用直接引用机制用来匹配全部的内容的。
1.4 vim多文件功能
vim可以一次打开多个文本文件来进行处理,不过由于是全屏编辑器,所以打开文件时只能显示一个,所以要在全屏模式下我们可以进行对文件的操作与转换。其用法为:vim FILE1 FILE2 ...
由于vim是一款全屏编辑器,所以我们可以用以下方式在文件之间进行切换::next 下一个
:prev 上一个
:first 第一个
:last 最后一个
退出所有文件::wqall
:wall
:qall
还有一种是多窗口模式,全屏幕的编辑器由于默认只能显示一种,我们可以通过某些选项来进行多窗口讲多个文件一同显示。-o:水平分割窗口;
-O:垂直分割窗口;
在窗口间切换:Ctrl+w, ARROW
注意:单个文件也可以分割多个窗口进行查看:
Ctrl+w,s:水平分割窗口;
Ctrl+w,v:垂直分割窗口;
1.5定制vim工作特性
所谓的工作特性无非就是讲某个功能显示出来,例如添加行号或者说是自动缩进。那么我们需要注意的是,在末行模式下的设定,仅对当前的vim进程是有效的,要想让它永久生效,需要写入配置文件当中。永久生效:
全局:/etc/vimrc
用户个人:~/.vimrc
注意:该文件会有可能没有,需新建;
定制特性如下:1、行号
显示:set number,简写为set nu
取消显示:set nonumber, set nonu
2、括号匹配高亮
匹配:set showmatch, set sm
取消:set nosm
3、启动缩进
启用:set ai
取消:set noai
4、高亮搜索
启用:set hlsearch
取消:set nohlsearch
5、语法高亮
启用:syntax on
忽略:syntax off
6、忽略字符大小写
启用:set ic
禁用:set noic
7、tab四格
set ts=4
获取帮助:
:help
:help subject
二、bash脚本之算数运算
算数运算对我们来讲并不陌生,在小学或中学当中老师教我们如何使用加减乘除以及次方或者求余数用来计算数学问题得出该题目的正确答案,在编程当中它们也是常见的算数运算符,不过相比书本中稍微有些不同。+, -, *, /, **, %
在bash当中,由于bash是弱类型的语言,默认统统当作字符型,所以如果算数来说,示例如下:# echo "$num1+$num2"
1+2
但如果把变量申明为整型,也会当成结果运算时也会当成字符串,作为变量替换:# declare -i num3=3
# declare -i num4=4
# echo "$num3+$num4"
3+4
对于bash来说,要做算数运算,必须要用特殊算数的运算格式。算数运算格式:
(1) let VAR=算数表达运算式
(2) VAR=$[算数运算表达式]
(3) VAR=$((算数运算表达式))
(4) VAR=$(expr $ARG1 $OP $ARG2)
注意:乘法符号在有些场景中需要使用转义符;
linux的vi编辑器计算工具,2018-1-2Linux基础知识(19)vi编辑器及bash算数相关推荐
- 2018-1-2Linux基础知识(19)vi编辑器及bash算数
在上一章当中我们讲述了vim的基本操作,例如我们如何打开文件及关闭文件,以及如何进行编辑等,以及讲到了vim的诸多模式中之间的转换和常用的编辑命令,那么我们接下来介绍vim的末行模式及内建命令行接口的 ...
- 2018年计算机基础知识答案,最全全国计算机基础知识试题及答案考级宝典(2018)...
最全全国计算机基础知识试题及答案考级宝典(2018)全国,计算机,基础知识,试题,答案,复习资料,学习技巧,模拟试卷 最全全国计算机基础知识试题及答案考级宝典(2018) 第一部分. 一.单项选择题 ...
- 二进制权值计算 lsb_2020年二级计算机基础知识备考(第二章)
点击蓝字关注我们哟~ 2020年9月全国计算机等级考试倒计时29天,还没有好好备考的小伙伴们抓紧时间备考了~ 今天,跟着考无忧继续备考一下二级计算机基础知识的<第二章 信息的表示和储存>. ...
- 2018年计算机基础知识题库,2018年计算机基础知识题库文献.doc
2015年计算机基础知识题库 选择题 天气预报能为我们的生活提供良好的帮助,它应该属于计算机的哪一类应用? A)科学计算 B)信息处理 C)过程控制 D)人工智能 答案:A 解析:科学计算(数值计算) ...
- 蒙特卡罗模拟_Stata博文 | 使用蒙特卡罗模拟计算功率part 1:基础知识
功率和样本大小的计算是科学研究计划的重要组成部分.可以使用Stata的power命令来计算许多常用统计测试的功率和样本大小需求.但对于更复杂的模型是没有简单公式的,如多层/纵向模型和结构方程模型(SE ...
- linux运维开发之路(一)— 基础知识篇
一. 虚拟机管理 虚拟机管理的基本命令 [kiosk@foundation6 Desktop]$ rht-vmctl start desktop ## 打开虚拟机 ## [ki ...
- 股票入门基础知识19:使用贴现现金流(DCF)计算公司估值
贴现现金流是一种 通过预测未来(通常为五到十年)能产生多少现金流,然后减去或从中扣除那段时期的平均资本成本,来估算公司公允价值的方法 ,被广泛使用. 使用免费的贴现现金流计算器 很多经纪商会提供免费的 ...
- linux视频教程百度网盘分享,Java集合基础知识总结(绝对经典
2.JAVA集合可以存储和操作数目不固定的一组数据. 3.若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用. 注:使用相应的toArray()和Arr ...
- python计算3j系数_python数值基础知识浅析
内置数据类型 Python的内置数据类型既包括数值型和布尔型之类的标量,也包括 更为复杂的列表.字典和文件等结构. 数值 Python有4种数值类型,即整数型.浮点数型.复数型和布尔型. 整数型--1 ...
最新文章
- 将A*算法讲明白的大牛 感谢原作者Frank_chen 基础是迪克斯特拉算法
- ASP.NET中Web DataGrid的使用指南-转
- 函数调用时栈的相关变化
- Oracle 数据库设置最大进程数参数方法,oracle最大进程数满了处理方法,sysdba管理员登录报“maximum number of processes (150) exceeded“问题解决
- YBTOJ:字符串题(KMP)
- 飞鸽传书从天齐庙南门出来
- 更好也更快!最先进的图像去模糊算法DeblurGAN-v2
- 【2】SCN-Ribbon负载均衡
- vue 获取响应头里set-cookie的值_最简化 VUE的响应式原理
- build vue3 后压缩的文件在哪_Vue 3学习:4. 集成vuex
- Android应用程序内部启动Activity过程(startActivity)的源代码分析
- react脚手架构建工程
- Load Average (系统负载)
- python cross val score_python - sklearn cross_val_score的精度低于手动交叉验证 - 堆栈内存溢出...
- android studio for android learning (二十 )android中this、context等关键概念理解全解
- 基于热传递方程和目标规划的高温服装设计
- OCP考试题库(精准无比)
- javascript视频教程下载
- 安卓一键新机_新机速递:vivo S7,如7而至;更有Nokia携手一键直达登场
- 快速解决“多分类不平衡”问题