一段奇妙的vim编辑器之旅
一、背景
对于Linux服务器上的操作,我们往往少不了使用vim,而有时候我对vim的使用并没有那么的熟练和深入,这周就深入的学习了vim的使用,包括入门和进阶,先分享给你们,也方便自己以后复习查询。
二、vim入门
1.启动vim,使用命令:vim fileName
如果该文件存在,则打开并显示内容;如果文件不存在,则在第一次保存的时候创建新文件。
2.vim的三种模式
命令模式:可以移动光标、删除、复制、搜索。
插入模式:通过输入"a"、"i"、"o"中任意一个字符,可以进入该模式来进行修改文件内容。
扩展模式:通过输入":"字符进入该模式,可以进行退出、保存、查找替换等操作。(如果在插入模式可以按ESC键返回命令模式再进行该操作)。
3.命令模式下移动光标
使用"h"、"j"、"k"、"l"来进行向左、向下、向上、向右移动,或者使用方向键。
"w"移动到下一个单词,"b"移动到上一个单词。
4.命令模式下的删除、修改、复制操作。
即:
行:cc(修改)、dd(删除)、yy(复制)
字符:cl(修改)、dl(删除)、yl(复制)
单词:cw(修改)、dw(删除)、yw(复制)
5.撤销操作
"u",撤销最近一次的修改 undo
"U",撤销所有修改
"ctrl+r",取消最后一次的撤销,redo
6.查找操作(扩展模式或命令模式下)
"/keyword",向后搜索
"?keyword",向前搜索
"n",查找下一个
"N",查找上一个
7.粘贴
"p或P":粘贴已复制、已修改或已删除的数据。(命令模式下被修改以及删除的数据会默认复制到剪切板)
对于行数据,"P"粘贴到上一行,"p"粘贴到下一行。
对于字符数据,"P"粘贴到字符左侧,"p"粘贴到字符右侧
8.命令模式下的一些技巧
"dtc",删除从光标到字符c之间的所有字符
"rc",将光标下的字符替换成c字符
"dw",删除光标所在的单词的从光标处到结尾的所有字符
"ndd",删除光标开始往下n行数据,比如5dd。
"nyy",复制从光标开始往下n行数据,比如3yy.
"nx",删除从光标开始的n个字符,比如4x.
"R",进入替换状态,按ESC键退出。
9.退出、保存、进入扩展模式
命令模式和插入模式按ESC键并输入":"进入扩展模式
":w",保存
":q",退出
":wq",保存并退出
":w!",强制保存
":q!",强制退出
":wq!",强制保存退出
三、vim编辑器使用进阶
1.文件内定位(命令模式下)
"G",跳转到文件最后一行
"1G",跳转到文件的第一行
"ctrl+d",往下滚动半屏
"ctrl+u",往上滚动半屏
2.屏幕定位相关(命令模式下)
"H",跳转到本屏显示的第一行
"M",跳转到本屏显示的中间一行
"L",跳转到本屏显示的最后一行
"z"+"Enter",使当前的行成为屏幕显示的第一行
"z"+"-",使当前行成为屏幕的最后一行
3.查找并批量替换(扩展模式下)
通过sed来查找 ,":s/keyword/replaceWord/g"
将当前行的所有keyword都替换成replaceWord,如果不加"/g"则只替换第一个keywords
默认对当前行进行查找
n1,n2,对文件的n1到n2行进行查找,如:1,10 s/a/123/g 将第一到第十行中的a替换成123
1,$,对整个文件查找
4.读取和保存(扩展模式下)
":r fileName" 将另一个file的内容读入到当前文件
"1,20 w file" 将当前编辑文件的1-20行的内容写入到一个新的file中
"1,$ w file"将整个文件写入一个新的file
"1,20 w >> file" 将当前编辑文件的1-20行内容追加到file中
5.设置(扩展模式下)
1.":set",显示常用的配置选项
2.":set all",显示所有的配置选项
3.":set number",设置行号
四、总结
通过本文的学习,我们对vim编辑器有了入门以及进阶的了解,当我们掌握了这些技巧以后,在linux下使用vim进行操作文本变得不再是难事,很爽有木有~,为了梦想,我一直在路上,你呢?
感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的将是我最大的写作动力!另外您也可以选择【关注我】,可以很方便找到我!
本文版权归作者和博客园共有,来源网址:http://www.cnblogs.com/hafiz 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!


【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?