vi 常用命令行

2023-11-08

vi 常用命令行

1.vi 模式
   a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了.
   b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作。等按下‘i,I,o,O,a,A,r,R’等
          字母之后才能进入编辑模式.通常在linux中,按下上述字母时,左下方会出现'INSERT'或者‘REPLACE’字样,才可以
          输入任何文字到文件中.要回到一般模式,按下[ESC]键即可.
   c) 命令行模式:在一般模式中,输入“: 或者/或者?”,即可将光标移动到最下面一行,在该模式下,您可以搜索数据,而且读取,
      存盘,大量删除字符,离开vi,显示行号等操作.
2.vi 常用命令汇总:
 2.1 一般模式
    a) 移动光标: 
      --> 上下左右方向键 ↑↓← →
      --> 翻页 pagedown / pageup 按键
      --> 数字 0 : 将光标移动到当前行首
      --> $ :   将光标移动到当前行尾
      --> G :       移动到这个文件的最后一行  nG :  n 为数字,移动到这个文件的第n行.
      --> gg:      移动到这个文件的第一行 相当于 1G
    
    b)  搜索与替换
      --> /word :  从光标开始,向下查询一个名为word的字符串。
      --> :n1、n2s/word1/word2/g : n1 与n2 为数字.在第n1与n2行之间寻找word1这个字符串,
              并将该字符串替换为word2。
      --> :1、$s/word1/word2/g : 从第一行到最后一行寻找word1字符串,并将该字符串替换为word2
      --> :1、$s/word1/word2/gc: 从第一行到最后一行寻找word1字符串,并将该字符串替换为word2。
            并且在替换之前显示提示符给用户确认(conform)是否需要替换。
    c) 删除,复制,粘贴
      --> x,X  : 在一行中,x为向后删除一个字符(相当于del键),X为向前删除一个字符(相当于backspace键)。
      --> dd   : 删除光标所在的那一整行。
      --> ndd  : n 为数字。从光标开始,删除向下n列。
      --> yy   : 复制光标所在的那一行。   
      --> nyy  : n为数字。复制光标所在的向下n行。
      --> p,P  : p 为将已复制的数据粘贴到光标的下一行,P则为贴在光标的上一行。
      --> u    : 复原前一个操作
      --> CTRL + r : 重做上一个操作。
      --> 小数点'.': 重复前一个动作。
 2.2  编辑模式:
    a) i, I : 在光标所在处插入输入文字,已存在的文字向后退。i 为‘从当前光标所在处插入’,I 为‘在当前所在行的一个非空格符处开始插入’。
    b) a, A : a 为‘从当前光标所在处的下一个字符开始插入’。A 为‘从光标所在行的最后一个字符处开始插入’。
    c) o,O  : 这是英文o的大小写。o为‘在当前光标所在行的下一行处插入新的一行’。O表示‘在当前光标所在行的上一行插入新的一行’。
    d) r,R  : 替换:r 会替换光标所在的那一个字符。 R : 会一直替换光标所在的字符,直到按下esc 键为止。
    e) ESC  : 进入一般模式。
 2.3 命令模式:
    a) :w   : 将编辑的数据写入硬盘
    b) :q   : 离开vi
    c) :q!  : 强制离开,不存储
    d) :wq  : 存储后离开
    e) :wq! : 强制存储后离开

3. vim 附加命令行
 3.1 块选择(visual block)
    v  字符选择,将光标经过的地方反白显示
    V  行选择,会将光标经过的行反白选择
    ctrl + v 块选择,可以用长方形的方式选择数据
    y  复制反白的地方
     d  将反白的地方删除掉
 3.2 多文件编辑
   :n  编辑下一个文件
     :N  编辑上一个文件
   :files  列出当前vim 打开的所有文件
 3.3 多窗口功能
     :sp 【filename】打开一个新窗口,如果加filename,表示在新窗口打开一个新文件
       否则表示两个窗口为同一个文件内容
     ctrl+wj  先按下ctrl ,再按下w后,放开所有按键,然后按下j,则光标可移动到下方的窗口
     ctrl+wk  同上,不过光标移动到上面的窗口
     ctrl+wq  其实就是:q结束离开。

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

vi 常用命令行 的相关文章

  • Vim:用字符填充行

    如何在一行或多行末尾重复添加字符 将行填充到特定列 例如 x 代表第 40 列 不是该行上的字符 并且文本后没有空格或制表符 line one x line two x line three x line eleventy billion
  • 如何在vim中每隔几行添加一行

    我想使用 vim 编辑器在文件 大约 1000 行 中每 3 行添加一行 有人可以帮我吗 谢谢 艾丽莎 有一个 vim 特定的正则表达式可以做到这一点 s n n n 0 r g s 是 vim ex 命令来替换整个文件 n 是包含行尾的一
  • Vim - 删除多行中的直到(包括)字符

    我有这个代码 def foo c Char c match case a B 我的光标位于后面的空格上 我想删除所有内容 直到 包括 我怎样才能做到这一点 我可以在光标位于第一行任意位置时执行相同操作吗 块中的任何位置 并将光标放在 d e
  • 如何取消 Vim 中的粘贴操作?

    每当我不小心在 Putty 中右键单击 打开 Vim 时 我的剪贴板上就有相当多的文本 并且 Vim 启动了粘贴操作 该操作已经持续了大约十分钟 我不想丢失未保存的工作 有没有办法指示 Vim 停止粘贴文本 If you re in nor
  • 你能让 vi 在打开时“前进”屏幕吗?

    我经常在 vi 中工作 暂停 vi 在 cli 上运行一些东西 然后返回到 vi 来处理结果 例如 修复运行 cli 命令时出现的错误 但是 当我 fg vi 时 vi 会 擦除 当前终端缓冲区 并且我在回滚缓冲区中看不到终端输出的 最后一
  • 切换 git 分支时如何处理 vim 缓冲区?

    因此 我在 vim 缓冲区中打开了大量文件 并且正在使用 git 处理功能分支 突然 我意识到我需要恢复到主分支来进行快速修复 提交后 我将 vim 会话保持打开状态并切换回 master 分支 但是 当我尝试从缓冲区加载我需要的文件时 我
  • 在 Vim 中搜索并替换为递增值

    假设我写了一个简单的 CSS 规则 如下所示 star 10 background url stars png no repeat 0 0 而我需要10个 所以我复制了9次 star 10 background url stars png
  • 插件 (vim-latex) 在启动时导致 gVim 崩溃

    我正在尝试使用在 Windows XP 上使用 gVim 但是一旦我打开 tex 文件 或者一旦我set ft tex gVim 崩溃且没有可见的错误消息 控制台 vim 中不会发生崩溃 我已经按照设置说明进行了操作 据我所知 并且我尝试禁
  • 在 vim 中,+register 和 +register 与 .命令?

    我很难理解这个问题的解决方案维姆高尔夫挑战赛 http vimgolf com challenges 5192f96ad8df110002000002 最好的建议解决方案是 cw
  • Vim 关闭窗口而不关闭缓冲区

    如何在不删除缓冲区的情况下关闭窗口或取消分割 A window is a viewport on a buffer In vim to manage windows it is CTRL w the leading command that
  • 如何在 Vim 中从命令行模式复制文本?

    比如说 我刚刚在 Vim 中运行了这个命令 nmap
  • vim - 如何删除 netrw?

    我正在测试https github com skwp dotfiles https github com skwp dotfiles 不幸的是它确实安装了很多我不想要的东西 例如 现在 使用空的 vimrc 当我打开 vim 时 我得到 N
  • 在 Vim 中的缩进线上按“Home”

    我有一个坏习惯 就是使用 home 键返回到行首 当我最近开始使用 vim 时 我注意到当我在缩进的行上按 home 键时 它会让我回到该行的开头 在 Notepad 我曾经使用的编辑器 中 它会让我返回到该行代码的开头 就在缩进之后 有没
  • Redhat Vim 中的可视化块插入

    我的 ec2 服务器附带了 redhat vim ec2 user vim version VIM Vi IMproved 7 2 2008 Aug 9 compiled Jul 7 2012 08 03 48 Included patch
  • 在键盘快捷键上插入预定义文本

    我经常插入binding pry当我调试我的 ruby 文件时 当我使用 Vim 时 我希望将其自动化 以避免每次都重新输入 我怎样才能做到呢 我想要映射的确切顺序是 插入新行 Insert binding pry到新创建的行 返回正常模式
  • Vim 函数插入带有传递参数的静态文本

    背景 I m interested in writing a function that assigned to keyboard shortcut s when invoked would 采取用户参数 计算值反映80 string le
  • 如何在 MySQL Insert 语句中添加 where 子句?

    这不起作用 INSERT INTO users username password VALUES Jack 123 WHERE id 1 有什么想法如何通过 id 将插入范围缩小到特定行吗 在插入语句中 您不会有现有行来执行 where 语
  • Mysql获取特定表的最后一个id

    我必须从特定的插入表中获取最后的插入 ID 可以说我有这个代码 INSERT INTO blahblah test1 test 2 VALUES test1 test2 INSERT INTO blahblah2 test1 test 2
  • :set 选项的显示值

    如果你不给 colorscheme一个参数 然后它显示 vim 当前使用的颜色方案的名称 vim 中是否有类似的方法来显示是否设置了选项或如果选项的值不是布尔值则设置为什么 例如 如果我想知道是否autoindent已设置或者我想知道的值t
  • 在 Vim 分割窗口中打开函数定义?

    我知道你可以使用ctrl 在 Vim 中跳转到定义 但是有没有办法让它在分割窗口而不是当前缓冲区中打开 我知道我可以打开一个新的分割窗口 然后使用ctrl 但是有没有更快的方法呢

随机推荐

  • vim连接外接显示器后右侧无法选中的问题

    RT 解决办法 在 vimrc添加如下代码 if has mouse sgr set ttymouse sgr else set ttymouse xterm2 end 原文连接 https ifconfiger com articles
  • 4.jeston nano NX安装系统、pycharm

    笔者有幸通过项目一次入手一块jeston Xavier NX和jeston nano 随即开始研究安装系统和pycharm 其中系统换了4个镜像才安装成功 其实下载安装官方的就行 其他的包括店里的都不要用 1 安装系统 务必注意镜像要下对
  • 如何修改VsCode的背景图片

    步骤 第一步 准备一张图片 图片路径最好不要出现中文 第二步 在VsCode中安装插件 搜索 background 安装这个插件 第三步 这个插件安装成功之后 里面自带了一些背景 如果喜欢可以不用换 也可以根据需要自定义 找到 settin
  • SpringBoot-线程池ThreadPoolExecutor异步处理(包含拆分集合工具类)

    ThreadPoolExecutor VS ThreadPoolTaskExecutor ThreadPoolTaskExecutor是对ThreadPoolExecutor进行了封装处理 配置文件application yml 异步线程配
  • 顺序表的静态和动态实现

    静态顺序表 所谓静态顺序表就是把空间的大小给定 结构体的定义 typedef struct SeqList DataType array MaxSize int size SeqList 基本操作的实现 void InitSeqList S
  • STM32+MS5611测气压温度例程详解,测试无误

    硬件平台 STM32F10X MS5611 JLink 软件平台 Keil 4 一 基础知识 首先 MS5611是什么 MS5611气压传感器是集合SPI和I C 高达20 MHz 总线接口的高分辨率气压传感器 分辨率可达到10cm 内部有
  • 应用层——协议

    前言 本章将介绍关于应用层的协议 如下图所示 一 应用协议的概要 利用网络的应用程序有很多 包括Web浏览器 电子邮件 远程登陆 文件传输 网络管理等 能够让这些应用进行通信处理的正是应用协议 网络应用由不同的用户和软件供应商开发而成 为了
  • Kafka源码深度解析-序列15 -Log文件结构与flush刷盘机制

    Log文件结构 在前面我们反复讲topic partition的概念 本文来分析这些不同topic 不同partition的message 在文件中 是以何种结构存储的 有兴趣朋友可以关注公众号 架构之道与术 获取最新文章 或扫描如下二维码
  • QT屏幕自适应自动布局,拖动窗口自动变大变小(一)

    QT屏幕自适应自动布局 拖动变大变小 困扰了很久 布局好ui后 随着屏幕分辨率的变化 换成笔记本或4k显示屏时 或最大化 拖动窗口 ui就乱了 挤在一起 或不能跟随窗口拉大而变化 布局是一个很重要的步骤 下面这张图 拖动窗口到最大化 结果是
  • 2020-07-23

    达梦数据库DSC搭建 原创 2020 03 17 zcn126 码龄2年 关注 一 环境准备 硬件 两台相同配置机器 2G 内存 20G 本地磁盘 2 块网卡 操作系统 Red Hat Enterprise Linux Server rel
  • ui测试怎么做?依据文档有哪些_软件开发流程涉及到哪些文档?其中有你需要了解的外包开发中的猫腻...

    此篇文章的目的 1 让软件开发业主了解软件开发过程中涉及的到具体文档以及它的作用 2 以文档的视角来感受整个开发过程 然后帮助业主选出优秀的外包开发方 软件开发整体流程介绍 需求分析 产品原型设计 UI设计 编码开发 测试 上线交付 1 需
  • 计算机网络---网络编程套接字(一)

    计算机网络 网络编程套接字之UDP数据报套接字编程 作者介绍 作者 偷偷敲代码的青花瓷 作者的Gitee 代码仓库 系列文章推荐 计算机网络 网络原理之初识 我和大家一样都是热爱编程 很高兴能在此和大家分享知识 希望在分享知识的同时 能和大
  • IntelliJ IDEA 插件下载安装教程 在线安装和本地安装教程

    随着idea用户越来越多 许多插件可以方便我们日常的开发 idea本身就可以下载安装这些插件 话不多说 上教程 在线安装 点击左侧 file gt settings 点击Plugins gt 输入想下载的插件名称 支持模糊查询 gt 选中想
  • GPT-4是一个好的数据分析师吗?

    文章目录 摘要 1 简介 2 相关工作 2 1 相关任务和数据集 2 2 GPT 3 ChatGPT GPT 4能力 3 任务说明 3 1 背景 数据分析师工作范围 3 2 我们的任务设置 4 我们的框架 4 1 步骤1 代码生成 4 2
  • Python爬虫系列(一)——手把手教你写Python爬虫

    1 什么是爬虫 根据百度百科的定义 网络爬虫 又称为网页蜘蛛 是一种按照一定的规则 自动地抓取万维网信息的程序或者脚本 人们如今的生活 大都离不开网络 发一条微信 电子支付买一杯奶茶 刷一条微博 等等 都依赖于网络的便携性 但是 互联网茁壮
  • Vue 代码如何进行调试

    Vue 代码调试 console debugger 浏览器调试 推荐文章 初入职场 还是个前端小白 代码写不出来 师傅不在 小梦 vs 后端大兄弟 我运行了一个东西 一直出不来 后端大兄弟 我可以试一试断点 看哪里出错 后端大兄弟 我好像不
  • 数据结构---希尔排序

    希尔排序 逐步折半增量 JAVA实现 Hibbard增量 Sedgewick增量 总结 对原始数组预处理 然后使用插入排序 满足 数组元素较少和 数组大部分元素有序俩个条件 逐步折半增量 逐步分组进行粗调 再进行直接插入排序的思想 就是希尔
  • sql-labs 闯关 11~20

    sql labs 闯关 11 20 友善爱国公正敬业爱国爱国诚信自由友善爱国公正诚信民主和谐敬业平等 复习笔记1 内容 POST请求介绍 sql labs第11关 POST请求 基于错误 单引号 字符型 sql labs第12关 POST请
  • C++ 工厂模式

    简单工厂 简单工厂 定义一个类负责创建其他对象类的实例 而被创建的对象类一般都有共同的基类 一般来说简单工厂如果想创建一个对象类 只需要根据名字进行实例化 工厂就会创建相应的对象类 特点 简单的对不同类对象的创建进行了一层很薄的封装 inc
  • vi 常用命令行

    vi 常用命令行 1 vi 模式 a 一般模式 vi 处理文件时 一进入该文件 就是一般模式了 b 编辑模式 在一般模式下可以进行删除 复制 粘贴等操作 却无法进行编辑操作 等按下 i I o O a A r R 等 字母之后才能进入编辑模