oeasy教您玩转vim - 49 - # 命令进阶
命令进阶
回忆上节课内容
- 我们上次研究vim的历史
- 为什么会有行编辑器这种东西
- 竟然是当年
- 没有显示器只有纸的时代的无奈之举
- vim进化到今天
- 依然还有好多人使用
- 而且ssh连接的时候直接vim就很方便
- 命令行还有什么好玩的么?
缩进控制
- 我们学习过用<kbd><</kbd><kbd><</kbd>、<kbd>></kbd><kbd>></kbd>控制缩进
- <kbd><</kbd><kbd><</kbd> 向左一个
shiftwidth - <kbd>></kbd><kbd>></kbd>向右一个
shiftwidth - 如果忘了的话,可以
:h 'shiftwidth'
- <kbd><</kbd><kbd><</kbd> 向左一个
- 如果我们想要多行进行控制呢?
:20,40>20-40行向右一个shiftwidth
:'a,$>a标记到结尾向右一个shiftwidth
%<- 所有行向左一个
shiftwidth
- 所有行向左一个

范围添加分号结尾
我们如果想要给从4到10行添加分号结尾,应该如何呢?
:4,10normal A;- 首先是
range,先打上:4,10 - 然后让这个范围内的东西进入
normal格式再 :4,10normal切换为normal模式- 打一个空格,后面打上命令
A;- A是normal模式下的命令在行尾进入插入模式
- 在最后的位置插入
;
- 整体的命令为
:4,10normal A;
- 首先是
思考
- 如果我想在
8,15行添加//应该如何做呢? - 动手试一试!
- 如果我想在
但是这些都是执行
vim的内部命令- 我想要执行外部命令
- 比如
shell中的ls可以么?
直接执行外部命令
- 要直接执行外面的命令比如
ls - 我们在前面加上
!就可以- 比如
:!ls - 更复杂一些的
!javac oeasy.java!source o2z.sh!python3 %
- 比如
- 这很方便,直接在vi里面就可以执行命令了
- 而且编译运行能看到报错的结果
- 直接G跳到出错那行就可以!
- 可以直接修改,很爽!!!
- 超爽!!!
- 不过这一行命令执行完了就没了
- 看不见前面执行的结果了
- 我想一直看见前面的命令和执行结果
- 可以么?
进入命令模式 ex-mode
- 在
Normal模式下直接按下<kbd>Q</kbd> - 进入Ex-mode
- 全屏执行命令格式
- 可以执行各种命令行
:ls:1,3d:1,7p:visual退回到正常模式
- 可视化模式
visual是vi名字的来源 vi就是ed+ 可视化模式visual

- 能直接挂起vim运行命令么?
跳到shell
- 我们知道我们是从
shell运行vim然后进来的- 如果我们想退出
vim的话需要保存并退出:wq - 如果我不想保存并退出
- 就想切到外面
- 把
vim整个进程先挂起放到后台 - 我们就 <kbd>ctrl</kbd>+<kbd>z</kbd>
- 我们就挂起
vim切出去了
- 如果我们想退出
- 在
shell运行完命令之后fg就可以把vim切回到前台- fg的意思是foreground前台

- 但是我们可以直接不挂起
vim的情况下 - 执行
shell命令么?
分屏终端 :term
:term- 上面切出一个窗口
- 执行命令
exit退出shell

- 上下切换
- <kbd>ctrl</kbd>+<kbd>w</kbd> <kbd>j</kbd> 切换到下方窗口
- <kbd>ctrl</kbd>+<kbd>w</kbd> <kbd>k</kbd> 切换到上方窗口
- 可以切来切去
- 一边修改一边运行
- 这个
:term什么意思
:term 帮助
- 什么不会,
:h什么:h :term

总结
- 我们这次研究范围命令执行方法
- 批量控制缩进
:20,40>
- 批量执行普通模式下的命令
:4,10normal A;
- 直接切换到
全屏命令模式ex-modeQ
- 执行外部命令
!javac oeasy.java
- 新开一个termianl窗格
:term
- 这个方式真的很爽!
- 在
vi什么都干了!
- 在
- 命令模式本身可以再提高效率吗?
- 下次再说
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (overmind1980/oeasyvim)
[蓝桥实验楼] (oeasy 教您零基础玩转编辑神器 Vim_Linux - 蓝桥云课)
oeasy教您玩转vim - 49 - # 命令进阶的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
- oeasy教您玩转linux010109clear清屏
回忆上次内容 上次讲了灵魂三问 whatis whereis which 通过这三个问题,可以对命令基本了解,我们来试一下!!
随机推荐
- WPF绑定数据源到ListBox等selector的注意事项
如果使用CollectionViewSource绑定到控件上,会导致默认选择第一项,而使用List,SelectedItem就默认为空. 要避免默认选择第一项,就要设置 ListBox.IsSynch ...
- 轻松下载k8s.gcr.io,gcr.io,quay.io镜像
目录 一.系统环境 二.前言 三.使用现成的镜像代理仓库下载镜像 3.1 使用阿里云镜像仓库 3.2 使用lank8s.cn镜像仓库 3.3 使用中科大镜像 一.系统环境 服务器版本 docker软件 ...
- 重温 ShardingSphere 分布策略
ShardingSphere--分片及策略:https://blog.csdn.net/weixin_38910645/article/details/107538848 Sharding-JDBC: ...
- 记录一次配置iis与Sqlserver的集成windows账户登录
1.连接字符串,要写 "Data Source=[主机名称];Initial Catalog=[数据库名称];Integrated Security=True" 2.iis下配 ...
- .NET5 IIS ASP.NET CORE 部署时 HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure
.NET5 IIS ASP.NET CORE 部署时 HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure 部署机器只安装了dotnet-hos ...
- dubbo~全局异常拦截器的使用与设计缺陷~续
上一次的介绍,主要围绕如何统一去捕获异常,以及为每一种异常添加自己的Mapper实现,并且我们知道,当在ExceptionMapper中返回非200的Response,不支持application/j ...
- 如果你也用过 struts2.简单介绍下 springMVC 和 struts2 的区别有哪些?
a.springmvc 的入口是一个 servlet 即前端控制器,而 struts2 入口是一个 filter 过虑器. b.springmvc 是基于方法开发(一个 url 对应一个方法),请求参 ...
- 项目管理--PMBOK 读书笔记(11)【项目风险管理】
1.风险分解结构(RBS): RBS 有两个含义,一个是资源分解结构(Resource),一个是风险分解结构(Risk). 1)技术风险 2)管理风险 3)商业风险 4)外部风险 2.核对单 核对 ...
- 雪花算法(SnowFlake)
引言 唯一ID可以标识数据的唯一性,在分布式系统中生成唯一ID的方案有很多,常见的方式大概有以下三种: 依赖数据库,使用如MySQL自增列或Oracle序列等. UUID随机数 snowflake雪花 ...
- 网站_域名_DNS_端口_web访问过程
网站基本概念 服务器:能够提供服务器的机器,取决于机器上所安装的服务软件 web服务器:提供web服务(网站访问),需要安装web服务软件,Apache,tomcat,iis等 域名 (Domain ...