当前位置: 首页 > news >正文

VIM ——Vimtutor 个人总结【从入门到精通】

精进 Vim 编辑器技能:从入门到精通

文章目录

  • 精进 Vim 编辑器技能:从入门到精通
    • 学习资源
      • [Vim 自带教程中文版 —— vimtutor-CSDN博客](https://blog.csdn.net/qq_40395874/article/details/116047253)
      • [Learn Vimscript the Hard Way (stevelosh.com)](https://learnvimscriptthehardway.stevelosh.com/)
  • 前置任务:一些Linux常用命令和技巧知识
    • 代码帮助:命令帮助
    • 目录查看:ls -l 命令
    • Vim 配置文件修改
    • Vim 编辑技巧总结
      • 删除操作
      • 撤销命令
      • 粘贴命令
      • 替换命令
      • 文件定位和状态
      • 搜索命令
      • 匹配括号
      • 替换命令
      • 执行外部命令
      • 保存文件
      • 可视模式
      • 插入新行
      • 插入模式
      • 替换模式
      • 复制模式
      • 查找设置
      • Vim 命令行设置
      • 代码提示
    • 结语

Vim 是一款强大而高效的文本编辑器,但对于初学者来说,学习曲线可能会略显陡峭。在这篇博客中,我们将介绍一些优秀的学习资源以及 Vim 的一些高级技巧,帮助你更好地利用这款编辑器。

学习资源

Vim 自带教程中文版 —— vimtutor-CSDN博客

这是一个基于 CSDN 平台的中文版 Vim 教程,提供了对 Vim 的初步了解和基本操作的指导。

Learn Vimscript the Hard Way (stevelosh.com)

这个网站提供了一个深入学习 Vim 脚本的平台,适合想要更深入理解 Vim 内部机制和自定义配置的用户。

你可以使用 vimtutor 命令来启动 Vim 自带的教程。确保你在学习过程中不会迷失方向。

前置任务:一些Linux常用命令和技巧知识

代码帮助:命令帮助

- 命令帮助- 什么是内部命令和外部命令?- shell 命令自带的是内部命令- 其他为外部命令- 如何检查命令类型?- `type ____`(比如 `type cd`)- 内部命令:shell buildin- `help xx`- 外部命令:xx is hashed (/xx)- `xx --help`- 典型例子- `man xx`- `help xx`- `info xx`- `xx --help`

目录查看:ls -l 命令

- 目录查看- `pwd`- 查看当前目录- `cd`- `cd -`- 回到上次 cd 进的目录- 2个目录之间进行快速切换- `cd ..`- 回到上级目录 - 可以比 `cd ../` 更快- `ls`- 常用参数详解- `-l` 长格式显示- 示例:`drwxr-xr-x 1 root root 4096 Dec 5 09:05 hh -rw-r--r-- 1 root root 0 Dec 5 07:28 test.txt -rw-r--r-- 1 root root 0 Dec 5 07:28 test2.txt`- 第一个参数 d 为文件或目录,- 表示文本。第二个参数为文件个数,包含自身以及其内文件。第三个是哪一个创建的该文件。第四个该文件属于哪个用户组?第五个为文件的大小。第六个为文件的最后修改时间- `-a`(all)显示隐藏文件- `-r`(reverse)逆序显示- 默认是以文件名进行逆序- `-t` 按时间顺序显示- `-R`(recursive)递归显示

Vim 配置文件修改

# 使用 Vim 打开 ~/.bashrc
vim ~/.bashrc# 用代码编辑 bashrc 文件,可以在其中添加函数
function pyinstall() {v=$1echo '准备按照 Python' $vcurl -L https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -o ~/.pyenv/cache/Python-$v.tar.xzpyenv install $v
}# 编写完后激活
source ~/.bashrc# 然后使用 pyinstall 3.8.5 安装指定版本的 Python

Vim 编辑技巧总结

删除操作

d-(deletel)

解释: 删除命令的格式是

OPERATOR [NUMBER] MOTION

其中,w 表示单词(word)、e 表示单词结束、$ 表示行末等。

撤销命令

u - 撤销上一步
shift + u [U] - 重做
CTRL + R - 重做

粘贴命令

p - 在光标下方粘贴

替换命令

r - 输入 r 后,再输入要替换的字母
[number] r - 同时替换 number 个字母

文件定位和状态

CTRL + G - 显示位置和状态
gg - 移动到文件开头
G[shift + g] - 移动到文件结尾
[number] G[shift + g] - 跳转到任意行的位置,例如:233G 跳转到第 233

搜索命令

/+字符串 - 当前 cursor 向后查找
?+字符串 - 当前 cursor 向前查找
n - 向下查找下一个匹配项
shift + n[N] - 向上查找上一个匹配项
CTRL + O - 退到上一次查找前的位置
CTRL + I - 向前查找(可能有问题)

匹配括号

% - 匹配括号

替换命令

:/s/old/new - 匹配 cursor 所在行的第一个目标
:/s/old/new/g - 匹配 cursor 所在行的所有目标
:#,#s/old/new/g - 匹配 # 与 # 首尾两行之间所有目标
:%s/old/new/g - 不提示的替换整个文件所有匹配的目标
:%s/old/new/gc - 会进行提示,替换整个文件所有匹配的目标

执行外部命令

:! 执行外部命令

保存文件

:w filename - 另存为指定文件名

可视模式

V - 进入可视行模式
Ctrl + V - 进入块可视模式

插入新行

o - 在 cursor 下方插入一行
O[shift + o] - 在 cursor 上方插入一行

插入模式

a - 在 cursor 后进入插入模式
i - 在 cursor 当前位置进入插入模式
I[shift + i] - 在 cursor 所在行的句首进入插入模式
A[shift + a] - 在 cursor 所在行的句尾进入插入模式

替换模式

R[shift + r] - 进入连续替换模式

复制模式

yy - 复制一行
[number]yy - 复制多行

查找设置

/set ic - 忽略大小写查找
/set hls - 查找内容高亮显示
/nohlsearch - 移除匹配项的高亮

Vim 命令行设置

/etc/vim/vimrc - Vim 配置文件路径
:r $VIMRUNTIME/vimrc_example.vim - 读取示例配置文件

代码提示

Ctrl + D - 提示当前可执行命令

结语

通过这些学习资源和 Vim 编辑技巧,相信你将能够更加熟练地使用 Vim,提高编辑效率。如果你对 Vim 还有其他疑问或者想要深入学习,建议查阅更多相关资料,例如 Vim - Vi Improved By Steve Oualline。愿你在 Vim 的世界里畅游自如!

以上是本人的个人经验总结,如有错误请各位大佬批评指正!!!

相关文章:

VIM ——Vimtutor 个人总结【从入门到精通】

精进 Vim 编辑器技能:从入门到精通 文章目录 精进 Vim 编辑器技能:从入门到精通学习资源[Vim 自带教程中文版 —— vimtutor-CSDN博客](https://blog.csdn.net/qq_40395874/article/details/116047253)[Learn Vimscript the Hard Way (stevelosh.com)](h…...

gitea分支、合并

一、创建分支,推送到远程仓库 git branch dev git checkout dev 或者可以使用合并的命令来完成上述两个步骤: git checkout -b dev在新分支上进行修改、提交代码等操作 接下来,将新分支推送到远程仓库。使用git push命令,并…...

探究 JavaScript 类型检查的利器:typeof 和 instanceof

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...

VSCode报错插件Error lens

1.点击左侧扩展图标→搜索“error lens”→点击“安装” 2.安装成功页面如下: 3.代码测试一下:书写代码的过程中会出现红色提醒或红色报错 4.另外推荐小伙伴们安装中文插件,学习过程中会比较实用方便,需要安装中文插件的小伙伴请点…...

go-zero开发入门之gateway深入研究1

创建一个 gateway 示例: // main.go package mainimport ("flag""fmt""gateway/middleware""github.com/zeromicro/go-zero/core/conf""github.com/zeromicro/go-zero/gateway" )var configFile flag.String(&…...

【每日一题】反转二叉树的奇数层

文章目录 Tag题目来源题目解读解题思路方法一:广度优先搜索方法二:深度优先搜索 写在最后 Tag 【深度优先搜索】【广度优先搜索】【二叉树】【2023-12-15】 题目来源 2415. 反转二叉树的奇数层 题目解读 反转二叉树奇数层的节点。 解题思路 对于二叉…...

vue 项目配置反向代理导致项目白屏

问题:vue 项目配置反向代理导致项目白屏 一、现象描述 添加反向代理代码后,前端运行白屏 // 设置baseURL,8888是后端端口号,前端请求默认发送到baseURL的地址 var axios require(axios) axios.defaults.baseURL http://local…...

全国县级行政区点位数据,Shp+excel格式

基本信息. 数据名称: 县级行政区点位 数据格式: Shpexcel 数据时间: 2021年 数据几何类型: 点 数据坐标系: WGS84坐标系 数据来源:网络公开数据 数据字段: 序号字段名称字段说明1xzqhdm_1省代码2xzqhmc_1省名称3xzqhdm_2市代码4xzqhmc_2市代…...

文件包含的提升刷题

上一篇文章:一篇文章带你入门文件包含-CSDN博客 已经开始入门了文件包含,那现在开始拔高提升刷题! 1. 拿到题目后啥也没有,所以也不知道要读取啥文件,那就查看源代码。 直接看if的条件就可以知道一定要设置cookie&a…...

入门级银行测试岗位招聘,只需具备这些基本条件!

2023年应该说是超乎意外的寒冷,几乎算是百业凋零。充斥在各个地方各个行业的,更多的是裁员的消息,很少有以往的风风火火的招聘了。无论是金九银十还是在以往的淡季。 谁也不知道这样一个特殊的寒冬还有多久才能过去。但是无论面对什么样的局…...

组里新来了个00后,真卷不过....

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…...

python 命令添加参数

官网 argparse模块可以很容易地编写用户友好的命令行界面。程序定义它需要什么参数,argparse将找出如何从sys.argv中解析这些参数。argparse模块还会自动生成帮助和用法消息。当用户为程序提供无效参数时,该模块也会发出错误。 核心功能 argparse模块对…...

LVS负载均衡器(DR模式)+nginx七层代理+tomcat多实例+php+mysql 实现负载均衡以及动静分离、数据库的调用!!!

目录 前言 一、nfs共享存储,为两个节点服务器提供静态网页共享 二、nginx作为lvs的后端节点服务器,完成lo:0网卡配置,以及内核参数设置,还有设置路由表 步骤一:先完成nfs共享存储挂载 步骤二:完成lo:0网…...

jmx_exporter安装

下载 wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.13.0/jmx_prometheus_javaagent-0.13.0.jar 创建jmx_exporter.yml文件 文件内容为: rules: - pattern: ".*" 配置tomcatpinter/apache-tomcat-8.5.38/bin/ca…...

怎么给自己的微信公众号留言?

为什么公众号没有留言功能?根据要求,自2018年2月12日起,新申请的微信公众号默认无留言功能。有些人听过一个说法:公众号粉丝累计到一定程度或者原创文章数量累计到一定程度就可以开通留言功能。其实这个方法是2018年之前才可以&am…...

Unity中 URP 下的棋盘格Shader

文章目录 前言一、制作思路法1&#xff1a;使用纹理采样后&#xff0c;修改重铺效果法2&#xff1a;计算实现 二、粗略计算实现棋盘格效果1、使 uv.x < 0.5 区域 0 。反之&#xff0c; 0.52、使 uv.y < 0.5 区域 0 。反之&#xff0c; 0.53、使两个颜色相加4、取小数…...

杰发科技AC7840——SPM电源管理之低功耗模式

0、SPM简介 很早以前就听过低功耗模式&#xff0c;一直没有怎么深入了解&#xff0c;最近遇到几个项目都是跟低功耗有关。正好AutoChips的芯片都有电源管理的功能&#xff0c;在此借用AC7840的SPM对低功耗进行测试。 1、AC7840的5种功耗模式 2、AC7840的模式转换 3、唤醒 在…...

PCL 点云匹配 之NICP(Normal ICP)

一、概述 上面一篇中我们已经得出了一个结论&#xff0c;就是ICP虽然简单&#xff0c;但是也有明显的缺点 1、计算速度慢&#xff0c;收敛慢&#xff0c;迭代次数多 2、对内存的开销比较大 3、很容易陷入局部最优的困局 因此我们在经典ICP的基础上添加一两个约束&#xff1a; 第…...

华脉智联融合通信一张图

随着通信技术、信息技术以及互联网的发展&#xff0c;融合通信技术也日益发展成熟。融合通信系统作为常见的通信指挥调度系统&#xff0c;其发挥的功能也越来越强大&#xff0c;在不同行业中的应用也越来越丰富。 华脉智联深耕融合通信行业多年&#xff0c;自主研发的融合通信…...

Flink系列之:窗口Top-N

Flink系列之&#xff1a;窗口Top-N 一、窗口Top-N二、示例&#xff1a;在窗口聚合后进行窗口 Top-N三、在窗口表值函数后进行窗口 Top-N四、限制 一、窗口Top-N 适用于流、批一体窗口 Top-N 是特殊的 Top-N&#xff0c;它返回每个分区键的每个窗口的N个最小或最大值。与普通To…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...