vim常用操作——vim中执行shell

2023-11-18

vim常用操作——vim中执行shell

image-20210401131939144

vim中执行shell命令,有以下四种形式

单纯执行shell命令,不更改文件

  • 形式::!command

  • 解释:不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容

  • 例子::!ls

    image-20210401124639999

特别的可以运行:!bash来启动一个bash shell并执行命令,不需要退出vim,可以通过exit命令退出shell,退出shell后,会像上面图片那样提示Press ENTER or type command to continue

将shell命令结果插入到当前文件

  • 形式: :r !command

  • 解释:将shell命令command的结果插入到当前行的下一行

  • 例子::r !date,读取系统时间并插入到当前行的下一行。

    image-20210401125116137

用shell命令处理并替换当前文本

  • 形式:起始行号,结束行号 !command
  • 解释:将起始行号和结束行号指定的范围中的内容输入到shell命令command处理,并将处理结果替换指定范围中的内容
  • 例子::1,4 !sort,将1行到4行的内容进行排序

image-20210401125848771

可以只指定起始行,例如:62 !tr [a-z] [A-Z],将62行的小写字母转为大写字母
当前光标所在行,除可以指定行号外,也可以用.表示,例如:. !tr [a-z] [A-Z],将当前行的小写转为大写

用shell命令处理当前文本,将结果写入外部文件,不替换

  • 形式::起始行号,结束行号 w !command
  • 解释:将起始行号和结束行号所指定的范围的内容作为命令command的输入。不会改变当前编辑的文件的内容
  • 例子::1,4 w !sort,将1行到4行的内容进行排序,但排序的结果并不会直接输出到当前编辑的文件中,而是显示在vim敲命令的区域

image-20210401130521723

image-20210401130810808

特殊的可以下面这么用

:. w !bash,将会把当前行的内容作为bash命令来执行并显示结果,而且不会改变当前编辑的文件的内容。例如当前行内容为ls -l,那么输入:52 w !bash就跟执行!ls -l是一样的效果,如果你用的shell是bash shell

参考链接

https://www.cnblogs.com/wuchanming/p/4507428.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vim常用操作——vim中执行shell 的相关文章

  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • 如何根据 HTTP 请求使用 Python 和 Flask 执行 shell 命令并流输出?

    下列的这个帖子 https stackoverflow com questions 15092961 how to continuously display python output in a webpage 我能够tail f网页的日志
  • 为什么内核需要虚拟寻址?

    在Linux中 每个进程都有其虚拟地址空间 例如 32位系统为4GB 其中3GB为进程保留 1GB为内核保留 这种虚拟寻址机制有助于隔离每个进程的地址空间 对于流程来说这是可以理解的 因为有很多流程 但既然我们只有 1 个内核 那么为什么我
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • 从 Python 调用 PARI/GP

    我想打电话PARI GP http pari math u bordeaux fr dochtml gpman html仅从Python计算函数nextprime n 对于不同的n是我定义的 不幸的是我无法得到帕里蟒蛇 http code
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • 将 PDF 转换为 600dpi 的 TIFF 和 jpg 96 dpi

    我想使用 ImageMagick 从 Python 脚本将 pdf 转换为 600 dpi 的 tiff 和 96 dpi 的 jpg 我使用 imagemagick 命令行完成了这项任务 但我想使用python中的Imagemagick将
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • Linux 可执行文件与 OS X“兼容”吗?

    如果您在基于 Linux 的平台上用 C 语言编译一个程序 然后将其移植以使用 MacOS 库 它会工作吗 来自编译器的核心机器代码在 Mac 和 Linux 上兼容吗 我问这个问题的原因是因为两者都是 基于 UNIX 的 所以我认为这是真
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少

随机推荐

  • chat gpt 常见角色及对应的提示词汇总

    提示词的存在让ChatGPT能够扮演特定的角色 对用户的回答更加专业对口 以下是一些常见的ChatGPT角色及对应的提示词 目录 ChatGPT 市场推广提示 ChatGPT 业务提示 ChatGPT 内容提示 Web 开发的 ChatGP
  • Ubuntu系统中防火墙的使用和开放端口

    Ubuntu系统中防火墙的使用和开放端口 目录 1 Ubuntu查看防火墙的状态 2 2 Ubuntu开启防火墙 2 3 Ubuntu添加开放SSH端口 3 4 Ubuntu防火墙常用命令 5 4 1 查看ufw防火墙的状态 5 4 2 启
  • ARM汇编之APCS规则

    APCS规则简述 寄存器使用规则 寄存器r0 r3用于函数调用过程中传递函数形参 各有一个别名 a1 a4 使用前后可以不用恢复原来的值 R4 r11用于保存函数内部局部变量的值 每个函数使用前 必须要保存被调用函数的值 使用完毕 必须恢复
  • 在Linux远程服务器上搭建JavaWeb开发环境

    配置 远程linux服务器版本为CentOS7 6 使用的是阿里云服务器 目录 1 安装JDK 1 1 查看yum源中JDK版本 1 2 使用yum安装JDK1 8 1 3 查看是否安装成功 2 安装MySQL 2 1 查看是否已安装mys
  • C++ 循环

    有时候 程序需要多次执行同一块代码 一般情况下 语句是顺序执行的 函数中的第一个语句先执行 接着是第二个语句 依此类推 循环语句允许多次执行一个语句或语句组 大多数编程语言中循环语句的一般形式 循环类型 C 编程语言提供了以下几种循环类型
  • Anaconda环境的创建、激活、删除和管理

    1 Anaconda环境的创建 conda create n 环境的名字 自定义 python 3 7 其中环境的名字 自定义 表示创建环境的名字 可以自定义 建议为英文 后面python 3 7表示创建的解释器的版本 conda crea
  • 这里有141个创业公司的死亡案例,看鸡汤不如听教训

    今天我们打算跟大家聊聊失败 关于成功的方法论有着趋同性 多半与 天时地利人和 有关 而关于失败 却很少有人愿意公开谈起 也许因为野兽总是不想将伤口暴露在外 探讨失败的意义 可能远远大于成功 因为面对挫折 即使自认为最无畏的人也会有这样的时刻
  • PicGo安装与配置-Gitee图床

    PicGo安装与配置 Gitee图床 文章目录 PicGo安装与配置 Gitee图床 1 前言 2 下载 3 安装 4 Gitee 5 Node js 6 配置PicGo 6 1 PicGo界面配置 6 2 npm安装PicGo插件Gite
  • 空格的正则表达式

    在正则表达式想使用空格的时候不能采用 s的方法 因为 s指的是空白 就是所有空白 如果想表示单纯的空格的话可以采用 方括号本身就是匹配其中的字符 那么其中放空格就是匹配空格 如果有其他正则表达式问题可以查看 https blog csdn
  • GCP reliable google cloud infrastructure, devops lab

    最后更新2022 03 13 先到menu source repository里建立repository 还是不很好找 source repository在CI CD分类里面 点右上角的add repository按钮 输名字devops
  • uniapp集成unipush2.0

    unipush3 0集成 unipush推出2 0服务 之前一直用的1 0 现在项目推荐使用2 0 最近也是对2 0这个推送做了测试 下面就主要对华为这个来总结一下 其余的厂商大同小异 1 push1 0和2 0对比 个人理解 2 0比1
  • 深入浅出 RPC - 深入篇

    深入篇 我们主要围绕 RPC 的功能目标和实现考量去展开 一个基本的 RPC 框架应该提供什么功能 满足什么要求以及如何去实现它 RPC 功能目标 RPC 的主要功能目标是让构建分布式计算 应用 更容易 在提供强大的远程调用能力时不损失本地
  • 深度学习——制作自己的VOC图像分割数据集

    1 数据集介绍 COCO数据集有80个类别 VOC数据集有20个类别 当这些数据集类别中没有自己需要的时候 就需要自己动手做自己的数据集了 我自己在做数据集的时候主要使用到了labelme和labelImg两个工具 labelme主要是制作
  • string str="i"与 String str=new String("i")和String s = new String("abc")的解释!!!

    string str i 与 String str new String i String x 张三 String y 张三 String z new String 张三 System out println x y true System
  • Android中的回调

    mark一句比较好的话 A类中调用B类的某个方法C 然后B类反过来调用A类的方法D D这个方法就叫回调 在不同的状态 回调 我们的实现类 来达到接口和实现和分类 先定义一个接口 监听接口 来在主界面监听界面变化状态 public inter
  • sqli-labs通关攻略54-65[Challenges]

    Advanced Injections 文章目录 Advanced Injections less 54 less 55 less 56 less 60 less 62 less 63 less 64 less 65 最后一篇补上 less
  • yolov3 数据预处理部分实现细节

    参考 https mp weixin qq com s T9LshbXoervdJDBuP564dQ https blog csdn net qm5132 article details 83651291 https mp weixin q
  • 软件工程复习10:软件设计与实现

    作者 非妃是公主 专栏 软件工程 个性签 顺境不惰 逆境不馁 以心制境 万事可成 曾国藩 专栏地址 软件工程专栏地址 专栏系列文章 软件工程复习01 软件工程概述 软件工程复习02 个人技术 软件工程复习03 个人软件流程 软件工程复习04
  • Java经典面试题:Redis 和 Mysql 如何保证数据一致性

    Redis 和 Mysql 如何保证数据一致性 引言 重要性 挑战 Redis和MySQL概述 Redis Remote Dictionary Server MySQL 数据一致性概述 Redis的数据一致性机制 MySQL的数据一致性机制
  • vim常用操作——vim中执行shell

    vim常用操作 vim中执行shell vim中执行shell命令 有以下四种形式 单纯执行shell命令 不更改文件 形式 command 解释 不退出vim 并执行shell命令command 将命令输出显示在vim的命令区域 不会改变