Linux下vim的常见命令操作(快速复查)

2023-11-17


前言

本篇文章不面向新手,全文几乎都是命令,主要为了防止对那些命令忘记用来快速复查的。

1、Vim常用操作

1.1、环境参数

命令 说明
set xxx 设置环境参数
set no xxx 取消环境参数
set all 可查询
set nu 显示行号
set noun 取消行号
set nowarp 禁止长行自动回绕
set autowrite 设置自动保存
set hlsearch 打开查找高亮

1.2、方向

命令 说明
k 类似方向键↑
j 类似方向键↓
h 类似方向键←
l 类似方向键→

1.3、插入命令

命令 说明
a 在光标所在字符后插入
A 在光标所在行尾插入
i 在光标所在字符钱插入
I 在光标所在行首插入
o 在光标下插入新行
O 在光标上插入新行

1.4、定位命令

命令 说明
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行
$(4键) 移至行尾
0 移至行首

1.5、删除命令

命令 说明
x 删除光标所在字符
nx 删除光标所在处后n个字符
dd 删除光标所在行,ndd删除n行
dG 删除光标所在行到文件末尾内容
D 删除光标所在处到行尾内容
:n1,n2d 删除指定范围行

1.6、复制和剪切命令

命令 说明
yy 复制当前行
nyy 复制当前以下n行
dd 剪切当前行
ndd 剪切当前以下n行
p、P 粘贴在当前光标所在行下或行上

1.7、替换和取消命令

命令 说明
r 取代光标所在处字符
R 从光标所在处开始替换字符,按ESC结束
u 取消上一步操作
Ctrl + r 取消最近一次撤销,可多次撤销

1.8、搜索和搜索替换命令

命令 说明
/string 搜索指定字符串,
:set ic 搜索时忽略大小写
n 搜索指定字符串的下一个出现位置
:%s/old/new/g 全文替换字符串
:n1,n2s/old/new/g 在一定范围内替换指定字符串
在这里插入图片描述 表示全文中吧sh字符串替换为SH

1.9、保存和退出命令

命令 说明
:w 保存修改
:w new_filename 另存为指定文件
:wq 保存修改并退出
ZZ shift + ZZ快捷保存修改并退出
:q! 不保存修改并退出
:wq! 保存修改并退出(文件所有者及root可使用,一般用在只读文件)

1.10、其他命令

命令 说明
. 重复执行上一次执行的vi命令
~ 对光标当前所在的位置的字符进行大小写转换
vim --version 查看vim的版本号

1.11、可视模式

命令 说明
Ctrl + v 进入
Shift + (移动键hjkl) 矩形选中在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux下vim的常见命令操作(快速复查) 的相关文章

  • 如何使用 Vim 和 Eclipse 提高 PHP5.3 项目的工作效率(可能使用 Eclim 与 Zend Studio 集成)

    在开发应用程序时 我总是努力提高生产力 在过去的几年里 我可以说我在提高生产力方面取得了良好的进展 但我仍然发现我需要更多的工具或方法 我需要更快地编辑并学习盲打 目前正在过程中 因此我发现需要转向 Vim 现在已经一年多了 我已经放弃了
  • 确保 config.h 包含一次

    我有一个库项目 正在使用 Linux 中的 autotools 套件移植到该项目 我对自动工具很陌生 本周 我已经了解了其操作的基础知识 我有一个关于如何保留内容的问题config h免遭重新定义 我惊讶地发现生成的config h文件也没
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • 如何获取 linux 实用程序 tail 的源代码?

    这个命令确实非常有用 但是我可以在哪里获取源代码以查看内部发生的情况 thanks tail 实用程序是 Linux 上 coreutils 的一部分 源压缩包 ftp ftp gnu org gnu coreutils coreutils
  • 如何在我的 AWS EC2 实例上安装特定字体?

    我有一个在 AWS EC2 Amazon Linux Elastic Beanstalk 实例上运行的 Python 应用程序 该实例需要某些特定字体才能生成输出 并且想知道如何在部署或实例启动过程中安装它们 我的代码在本地计算机 OS X
  • 构建 makefile 依赖/继承树

    如果我解释得不好或者问了一些明显的问题 我很抱歉 但我是 Linux 内核的新手 而且有点深入 我们有一个嵌入式 Linux 系统 它附带一个 文档非常糟糕的 SDK 其中包含数百个文件夹stuff 大多数文件夹包含rules make m
  • 伊迪德信息

    重新定义问题 有什么方法可以获取所连接显示器的序列号吗 我想收集显示器的Eid信息 当我使用 logverbose 选项运行 X 时 我可以从 xorg 0 log 文件中获取它 但问题是 如果我切换显示器 拔出当前显示器 然后插入另一个显
  • 在 LINUX 上使用 Python 连接到 OLAP 多维数据集

    我知道如何在 Windows 上使用 Python 连接到 MS OLAP 多维数据集 嗯 至少有一种方法 通常我使用 win32py 包并调用 COM 对象进行连接 import win32com client connection wi
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • 为什么在 Linux 上字符串文字的内存地址与其他字符串文字的内存地址如此不同?

    我注意到字符串文字在内存中的地址与其他常量和变量 Linux 操作系统 非常不同 它们有许多前导零 未打印 Example const char h Hi int i 1 printf p n void h printf p n void
  • 标准头文件中的 C 编译器错误 - 未定义的 C++ 定义

    我正在尝试编译 C 程序 但收到许多错误 这些错误是在标准 C 头文件 inttypes h stdio h stat h 等 中遇到的 错误的来源是以下未定义的常量 BEGIN DECLS END DECLS BEGIN NAMESPAC
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 在后台从 gVim 运行 :make

    我在 Windows 中使用 gVim 来编辑我的代码 主要是 C 我在 gVim 中使用 make 来编译项目 但这是一个阻塞操作 在编译完成之前我无法使用 gVim 我怎样才能异步执行 make 并仍然获得将错误读回 Vim 并跳转到源
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • 归档文件系统或格式

    我正在寻找一种文件类型来存储已退役系统的档案 目前 我们主要使用 tar gz 但从 200GB tar gz 存档中查找并提取几个文件是很麻烦的 因为 tar gz 不支持任何类型的随机访问读取规定 在你明白之前 使用 FUSE 安装 t
  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte

随机推荐

  • 部署MES管理系统首先要解决什么问题

    随着制造业市场竞争的加剧 企业需要更加高效 灵活的生产运营 以提高产品质量和降低成本 在这种情况下 MES管理系统解决方案成为许多企业的选择 然而 在部署MES管理系统之前 必须首先解决一些关键问题 以确保系统的成功实施 本文将探讨部署ME
  • C和C++中的结构体

    解释一 C C 结构体的区别 C中的结构体和C 中结构体的不同之处 在C中的结构体只能自定义数据类型 结构体中不允许有函数 而C 中的结构体可以加入成员函数 C 中的结构体和类的异同 一 相同之处 结构体中可以包含函数 也可以定义publi
  • 基于Rancher实现kubernetes集群管理

    基于Rancher实现kubernetes集群管理 1 Rancher介绍 2 Rancher部署 添加kubernetes集群 3 Rancher简单操作 1 Rancher介绍 Rancher可以通过图形化操作的方式管理kubernet
  • JAVA利用HttpClient进行POST请求(HTTPS)

    目前 要为另一个项目提供接口 接口是用HTTP URL实现的 最初的想法是另一个项目用JQuery post进行请求 但是 很可能另一个项目是部署在别的机器上 那么就存在跨域问题 而JQuery的post请求是不允许跨域的 这时 就只能够用
  • 逆水寒跑商时服务器维护,逆水寒跑商路线推荐 合适的路线让你事半功倍

    逆水寒跑商路线推荐 帮会跑商可以赚到大量的财富 因为跑商比较浪费时间也比较危险 所以我们需要研究一条比较合理的路线 这样对于各位镖师来说才是最省时省力的方法 汴京 菊花酒 杭州 贸易信息 木板年画 宋辽边境 磁州 3000以下 贸易信息赚更
  • Linux学习笔记(九) -- 利用Code::Blocks建立C++静态链接库

    1 测试平台 测试平台 Linux版本 Ubuntu 18 04 LTS Code Blocks版本 16 01 2 操作步骤 2 1 启动Code Blocks 2 2 新建静态链接库工程 1 选择 File 菜单中的 New Proje
  • 总结:nn.Module的children()与modules()方法、如何获取网络的某些层

    一 nn Module的children 方法与modules 方法的区别 children 与modules 都是返回网络模型里的组成元素 但是children 返回的是最外层的元素 modules 返回的是所有的元素 包括不同级别的子元
  • osg学习(三十九)DisplaySettings

    DisplaySettings是osg的全局单实例变量 类似osg的Registry 主要记录窗口的一些显示设置 比如窗口尺寸 多重纹理采样数 着色器设置等 osg在创建窗口时会从该变量中读取信息 这个变量中的信息可以通过命令行输入也可以通
  • 2023Matlab初级教程- 第二章 Matlab 基础运算及函数、数据类型

    第二章 Matlab 基础运算及函数 数据类型 文章目录 第二章 Matlab 基础运算及函数 数据类型 前言 一 基础运算 二 基础函数 1 基础函数 2 练习 三 数据类型 3 1特殊变量 3 2调用优先级 3 3 1数组 3 3 2结
  • 转码日记——Javascript笔记(4)

    对象 引用数据类型 基本数据类型的不足 基本数据类型都是单一的值 值和值之间没有任何联系 如果只使用基本数据类型 那么创建的变量都是独立的个体 不能成为一个整体 对象属于复合的数据类型 在对象中可以保存多个不同数据类型的属性 分类 1 内建
  • 21份软件测试全流程文档模板(标准版)

    1 需求说明书 2 功能测试计划 3 功能测试用例 4 业务流程测试用例 5 系统安装配置说明书 6 阶段功能测试报告 7 性能测试计划 8 性能测试用例 9 性能测试报告 10 系统功能测试报告 11 需求变更说明书 12 用户建议说明书
  • VS中C语言调Fortran,急急急!哪位大哥能帮我一下,把以下FORTRAN语言的程序转换成C语言...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 PROGRAM MAIN IMPLICIT NONE INTEGER I NUM NMAX M MB ME MS PN PARAMETER NMAX 2000 parameter PN 1500
  • Nand flash

    一 需要什么 我们的目的是编写Nand Flash 的裸机代码 可以读写Nand Flash 那么我们应该从哪开始呢 以我为例 我板子上的cpu 是时s5pv210 板子上的nand flash的芯片是1Gbyte 的 NAND FLASH
  • Idea如何导入一个SpringBoot项目

    最近公司要求开发工具要用Idea 作为一个eclipse的老员工 记录一下Idea中遇到的坑 刚开始用Idea从Git上导入一个项目时 遇到了很多坑 网上有很多方法 我不多做介绍 只说明一下我使用的方法 1 本地新建一个文件夹 从git上导
  • email.class.php,利用PHP发送邮件Class类

    记录一下 function send code email admin kieng cn title 标题 message 内容 toemail email 定义收件人的邮箱 sendmail xxxx 163 com 发件人邮箱 send
  • C# 子类如何访问子类的方法(同一父类)

    在继承关系中 子类可以通过创建另一个子类的对象来访问其方法 下面是一个示例 展示了子类如何访问另一个子类的方法 public class Animal public virtual void Speak Console WriteLine
  • arm push/pop/b/bl汇编指令

    目录 1 push指令 2 pop指令 3 b指令 4 bl指令 5 bx指令 1 push指令 功能描述 入栈 armv7 芯片手册 Push Multiple Registers stores multiple registers to
  • day3作业

    思维导图 第2题 第3题
  • got an unexpected keyword argument ‘datasets‘的解决方法

    发生异常 TypeError note full exception trace is shown but execution is paused at init got an unexpected keyword argument dat
  • Linux下vim的常见命令操作(快速复查)

    目录 前言 1 Vim常用操作 1 1 环境参数 1 2 方向 1 3 插入命令 1 4 定位命令 1 5 删除命令 1 6 复制和剪切命令 1 7 替换和取消命令 1 8 搜索和搜索替换命令 1 9 保存和退出命令 1 10 其他命令 1