Linux笔记--Vim编辑器

一、vi和vim

        vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于Windows系统下的记事本。很多软件默认使用vi作为他们编辑的接口。vim是进阶版的vi,vim可以视为一种程序编辑器。

        复制/etc/passwd文件到自己的目录下(不要直接修改letc/passwd),后面使用passwd文件演示 vim命令

下载vim: sudo apt-get install vim


#用法1: 
vim 文件路径
含义:打开指定的文件
#用法2:
vim +数字 文件的路径
含义:打开指定的文件,并且将光标移动到指定行
#用法3:
vim +/关键词文件的路径
含义:打开指定的文件,并且高亮显示关键词
#用法4:
vim 文件路径1 文件路径2 文件路径3
含义:同时打开多个文件

二.vim三种模式


vim中存在三种模式:命令模式、编辑模式(输入模式)、末行模式

  • 命令模式:打开文件之后默认进入该模式,可以输入快捷键进行一些操作:删除、复制、粘贴、移动光标等
  • 编辑模式:可以对文件的内容进行编辑
  • 末行模式:可以在末行输入命令来对文件进行操作:搜索、替换、保存、退出、撤销、高亮等

进入编辑模式:(大写一般与行相关,小写一般与光标相关)

  • i: 光标处 (光标处插入)
  • l:行首(第一个非空字符)
  • a: 下一个字符 (光标后添加)
  • A:行尾
  • o:光标下边插入一空行
  • O:光标上边插入一空行
  • s: 取代当前字符(替换)
  • S:取代当前行

退回命令模式:[Esc]


进入末行模式:

  • /或?:进入末行模式,后面接字符串进行查找

退出vim:

  • q:退出
  • wq:保存并退出
  • q!:强制退出
  • x:文件没有修改时直接退出,在文件修改的情况下保存并退出(不要使用X,X是文件进行加密)

异常退出:在编辑文件之后并没有正常wq(保存退出),而是遇到突然关闭终端或者断电的情况,则会显示下面的效果,这个情况称之为异常退出

解决办法:删除隐藏的临时文件(以.swp结尾)


三、命令模式


打开文件之后默认进入该模式

1.光标移动

  • 光标上下左右移动:方向键 或 kjhl
  • 光标上下左右移动指定行或字符:[数字]方向键 或 [数字]Kjhl
  • 光标移动到行首:^
  • 光标移动到行尾:$
  • 光标移动到首行:gg
  • 光标移动到末行:G
  • 自动格式化程序:gg=G
  • 光标移动到指定行:[数字]G 或 [数字]gg
  • 向上翻屏:按键ctrl+ b 或 PgUp
  • 向下翻屏:按键ctrl + f 或 PgDn
#向下移动5行
5 下方向键
#移动指定行
7 gg/G

2.复制/粘贴/剪切

  • 复制光标所在行:yy
  • 光标所在行的下一行新开一行粘贴: p
  • 以光标所在行为准,向下复制指定的行数:[数字]yy
  • 剪切/删除光标所在行: dd
  • 剪切/删除光标所在行为准,向下剪切/删除指定行:[数字]dd
  • 剪切/删除光标所在的当前行之后的内容:D
  • 可视化操作(view)(相当于鼠标的选中): v(可视模式)、V(可视行)、ctrl +v(可视块),然后按下方向键来选中需要操作的区块按下y复制或按下d删除
#复制5行
5 yy p

3.撤销/恢复

  • 撤销(undo) : u 或者 :u(末行模式)
  • 恢复(取消)之前的撤销操作:ctrl + r

四、末行模式


1.保存与退出文件

  • 保存: :w
  • 另存为: :w 路径
  • 退出::q
  • 保存并退出: :wq
  • 强制执行: :!
  • 不保存,强制退出: :q!

2.查找与替换

  • 查找: /关键词 或 ?关键词
  • 在搜索结果中切换上/下一个结果(next) : N/n
  • 取消高亮 : :nohl
  • 替换光标所在行第一条原数据: :s/原数据/新数据
  • 替换光标所在行全部原数据: :s/原数据/新数据/g
  • 替换整个文件每行第一条原数据: :%s/原数据/新数据
  • 替换整个文件全部原数据: :%s/原数据/新数据/g

[符号含义]:

  • %表示整个文件g表示全局(global)3.显示行号
  • 显示行号(临时)(number) : :set nu取消显示行号: :set nonu

3.显示行号

显示行号(临时)(number) : :set nu

取消显示行号: :set nonu


4.*执行shell 指令

#执行shell指令*      
![shell指令]
! ls /

5.*切换文件

查看当前已经打开的文件名称: :files

  • 切换指定文件: :open已经打开的文件名
  • 切换到上一个文件(back prev): :bp
  • 切换到下一个文件(back next) : :bn

五、vim的配置

        临时配置:末行模式下输入的配置

        全局配置文件(vim自带): /etc/vim/vimrc

        个人配置文件(优先级更高): ~l.vimrc

   /etc/vim/template.c

#include<stdio.h>
#include<string.h>                                                              
#include<unistd.h>
#include<pthread.h>
#include<fcntl.h>

int main(int argc, char* argv[])
{
    
    return 0;
}

~/.vimrc

set number
" 突出显示当前行
set cursorline
" 设定 tab 长度为 4
set tabstop=4
" 搜索时高亮显示被找到的文本
set hlsearch
"开启新行时使用智能缩进
set smartindent
"显示命令
set showcmd
"命令行高度
set cmdheight=2

"autocmd BufNewFile *.c 0r /usr/share/vim/vimfiles/template.c
"设置头文件及主函数模板                                                         
autocmd BufNewFile *.c 0r /etc/vim/template.c

全局配置文件和个人配置文件都有同一个配置项时,以个人配置文件为准


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/424280.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

k8s资源管理之声明式管理方式

1 声明式管理方式 1.1 声明式管理方式支持的格式 JSON 格式&#xff1a;主要用于 api 接口之间消息的传递 YAML 格式&#xff1a;用于配置和管理&#xff0c;YAML 是一种简洁的非标记性语言&#xff0c;内容格式人性化&#xff0c;较易读 1.2 YAML 语法格式&#xff1a; ●…

k8s 集群调度,标签,亲和性和反亲和性,污点和容忍,pod启动状态 排错详解

目录 pod启动创建过程 kubelet持续监听的原因 调度概念 调度约束 调度过程 优点 原理 优先级选项 示例 指定调度节点 标签基本操作 获取标签帮助 添加标签&#xff08;Add Labels&#xff09;&#xff1a; 更新标签&#xff08;Update Labels&#xff09; 删除标…

基于springboot+vue的中国陕西民俗网

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

家政按摩上门服务小程序搭建

家政按摩上门服务小程序支持技师入驻申请&#xff0c;用户可以通过在线下单预约家政服务&#xff0c;并根据距离、价格、销量好评度等条件进行筛选和选择。用户可以选择技师进行预约&#xff0c;并填写自己的服务地点和时间&#xff0c;享受上门服务。同时&#xff0c;技师也可…

C++_数据类型_整形

数据类型 C规定在创建一个变量或常量时&#xff0c;必须要指定出相应得数据类型&#xff0c;否则无法给变量分配内存 整形 作用 整形变量表示的是整数型的数据 方式 越界

攻防世界-get_post

题目信息 相关知识 -G&#xff1a;表示GET请求&#xff0c;缺省POST -d参数用于发送 POST 请求的数据体 使用-d参数以后&#xff0c;HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法&#xff0c;因此可以省略-X PO…

跨站脚本攻击xss-labs(1-20)靶机练手

目录 一、跨站脚本攻击&#xff08;XSS&#xff09; 1.1 漏洞简介 1.2:类型 1.3 XSS危害 1.4XSS防御规则 二、环境搭建 三、xsst通关记录 Level 1&#xff1a;文本解析为 HTML Level 2&#xff1a;htmlspecialchars;input 标签 value 注入 定义和用法 字符过滤绕过 …

pytorch基础2-数据集与归一化

专题链接&#xff1a;https://blog.csdn.net/qq_33345365/category_12591348.html 本教程翻译自微软教程&#xff1a;https://learn.microsoft.com/en-us/training/paths/pytorch-fundamentals/ 初次编辑&#xff1a;2024/3/2&#xff1b;最后编辑&#xff1a;2024/3/2 本教程…

2024-03-01(金融AI行业与大数据生态圈)

1.金融这一块的算法&#xff0c;不像推荐系统&#xff0c;图像等领域&#xff0c;金融领域的算法都比较成熟了。现在来说门槛低&#xff0c;属于初期阶段&#xff0c;上升期。 2.反欺诈的数据标签比较少&#xff0c;有一种“标签染色”的方法来做反欺诈模型的标签。 3.常用反…

什么是Vue指令?请列举一些常见的Vue指令以及它们的用法

Vue.js 是一款流行的前端框架&#xff0c;它的指令&#xff08;Directives&#xff09;是 Vue.js 提供的一种特殊属性&#xff0c;用于在模板中对 DOM 元素进行直接操作。指令通常是以 v- 开头的特殊属性&#xff0c;用于响应式地将数据绑定到 DOM 元素上。 在 Vue 中&#xf…

【NTN 卫星通信】卫星和无人机配合的应用场景

1 场景概述 卫星接入网是一种有潜力的技术&#xff0c;可以为地面覆盖差地区的用户提供无处不在的网络服务。然而&#xff0c;卫星覆盖范围对于位于考古或采矿地点内部/被茂密森林覆盖的村庄/山谷/靠近山丘或大型建筑物的用户可能很稀疏。因此&#xff0c;涉及卫星接入和无人驾…

131. 分割回文串(力扣LeetCode)

文章目录 131. 分割回文串题目描述回溯代码 131. 分割回文串 题目描述 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1&#xff1a; 输入&#xf…

C#,基于密度的噪声应用空间聚类算法(DBSCAN Algorithm)源代码

1 聚类算法 聚类分析或简单聚类基本上是一种无监督的学习方法&#xff0c;它将数据点划分为若干特定的批次或组&#xff0c;使得相同组中的数据点具有相似的属性&#xff0c;而不同组中的数据点在某种意义上具有不同的属性。它包括许多基于差分进化的不同方法。 E、 g.K-均值…

kafka文件存储机制和消费者

1.broker文件存储机制 去查看真正的存储文件&#xff1a; 在/opt/module/kafka/datas/ 路径下 kafka-run-class.sh kafka.tools.DumpLogSegments --files ./00000000000000000000.index 如果是6415那么这个会存储在563的log文件之中&#xff0c;因为介于6410和10090之间。 2.…

STM32使用FlyMcu串口下载程序与STLink Utility下载程序

文章目录 前言软件链接一、FlyMcu串口下载程序原理优化手动修改跳线帽选项字节其他功能 二、STLink Utility下载程序下载程序选项字节固件更新 前言 本文主要讲解使用FlyMcu配合USART串口为STM32下载程序、使用STLink Utility配合STLink为STM32下载程序&#xff0c;以及这两个…

Stable Diffusion 模型分享:AAM XL (Anime Mix)(动漫截屏风格 XL)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 AAM XL (Anime Mix) 是一个动漫截屏风格的模型&#xff0c;是 AAM - AnyLoRA Anime Mix 模…

【办公类-25-01】20240302 UIBOT上传 ”班级主页-育儿知识(家园小报)“

作品展示&#xff1a; 一、背景需求&#xff1a; 本学期制作了 “育儿知识&#xff08;家园小报&#xff09;”合并A4内容 【办公类-22-08】周计划系列&#xff08;4&#xff09;“育儿知识&#xff08;家园小报&#xff09;“ &#xff08;2024年调整版本&#xff09;-CSDN博…

【Qt学习笔记】(四)Qt窗口

Qt窗口 1 菜单栏1.1 创建菜单栏1.2 在菜单栏中添加菜单1.3 创建菜单项1.4 在菜单项之间添加分割线1.5 给菜单项添加槽函数1.6 给菜单项添加快捷键 2 工具栏2.1 创建工具栏2.2 设置停靠位置2.3 设置浮动属性2.4 设置移动属性2.5 添加 Action 3 状态栏3.1 状态栏的创建3.2 在状态…

【高级数据结构】Trie树

原理 介绍 高效地存储和查询字符串的数据结构。所以其重点在于&#xff1a;存储、查询两个操作。 存储操作 示例和图片来自&#xff1a;https://blog.csdn.net/qq_42024195/article/details/88364485 假设有这么几个字符串&#xff1a;b&#xff0c;abc&#xff0c;abd&…

基于springboot+vue的高校教师科研管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…