当前位置: 首页 > 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…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...