Linux神器——vim

news2025/1/22 15:59:48

目录

一、vim基本概念

二、vim基本操作

三、vim正常模式命令集

 四、vim末行模式命令集

五、vim操作总结

六、vim界面配置


vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。

一、vim基本概念

正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。最频繁的编辑模式。
末行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入
:help vim-modes

二、vim基本操作

进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:
$ vim test.c
不过有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文
字。
[正常模式]切换至[插入模式]
输入a
输入i
输入o
[插入模式]切换至[正常模式]
目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可
以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
[正常模式]切换至[末行模式]
「shift + ;」, 其实就是输入「:」
退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」,例如:
: w (保存当前文件)
: wq (输入「wq」,存盘并退出vim)
: q! (输入q!,不存盘强制退出vim)


三、vim正常模式命令集

插入模式
按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
从插入模式切换为命令模式
按「ESC」键。
移动光标
vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、
「l」,分别控制光标左、下、上、右移一格
按「G」:移动到文章的最后
按「 $ 」:移动到光标所在行的“行尾”
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l
按[gg]:进入到文本开始
按[shift+g]:进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页
按「ctrl」+「d」:屏幕往“前”移动半页
删除文字
「x」:每按一次,删除光标所在位置的一个字符
「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
「dd」:删除光标所在行
「#dd」:从光标所在行开始删除#行
复制
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
替换
「r」:替换光标所在处的字符。
「R」:替换光标所到之处的字符,直到按下「ESC」键为止。
撤销上一次操作
「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次
「ctrl + r」: 撤销的恢复更改
「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字跳至指定的行
「ctrl」+「g」列出光标所在行的行号。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首

 四、vim末行模式命令集

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。
列出行号
「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。
跳到文件中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,
再回车,就会跳到文章的第15行。
查找字符
「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按
「n」会往后寻找到您要的关键字为止。
「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直
按「n」会往前寻找到您要的关键字为止。
问题:/ 和 ?查找有和区别?操作实验一下
保存文件
「w」: 在冒号输入字母「w」就可以将文件保存起来
离开vim
「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件


五、vim操作总结

vim有打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作

六、vim界面配置

配置文件的位置
在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,
通常已经存在一个.vimrc文件,如果不存在,则创建之。
切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
打开自己目录下的.vimrc文件,执行 vim .vimrc
常用配置选项,用来测试
设置语法高亮: syntax on
显示行号: set nu
设置缩进的空格数为4: set shiftwidth=4
使用插件
要配置好看的vim,原生的配置可能功能不全,可以选择安装插件来完善配置,保证用户是你要配置的用户,接下
来:
安装TagList插件,下载taglist_xx.zip ,解压完成,将解压出来的doc的内容放到~/.vim/doc, 将解压出来
的plugin下的内容拷贝到~/.vim/plugin
在~/.vimrc 中添加: let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let
Tlist_Use_Right_Window=1
安装文件浏览器和窗口管理器插件: WinManager
下载winmanager.zip,2.X版本以上的
解压winmanager.zip,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到
~/.vim/plugin
在~/.vimrc 中添加 let g:winManagerWindowLayout=‘FileExplorer|TagList nmap wm :WMToggle<cr>
然后重启vim,打开~/XXX.c或~/XXX.cpp, 在normal状态下输入"wm", 你将看到上图的效果。
更具体移步:点我, 其他手册,请执行 vimtutor 命令。
参考资料
Vim从入门到牛逼(vim from zero to hero)
 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

上班15年后,普通程序员能实现财富自由吗?

对于职业生涯还没有开挂的普通程序员来说&#xff0c;有可能实现财务自由吗&#xff1f; 先来说下财务自由的最低标准 北上广深&#xff1a;身价3000万&#xff0c;含房产1000万、现金2000万。 杭州、南京、成都等二线城市&#xff1a;身价1500万&#xff0c;含500万房产、现…

集成底座双K8S集群扩展升级方案

集成底座方案是应用于企业信息化建设的集成整合阶段&#xff0c;通过建立统一、标准、柔性、可复用、可扩展的IT架构&#xff0c;解决企业信息化建设过程中缺乏整体规划、集成整合难度大、安全管控不到位等问题&#xff0c;强化企业信息化的架构建设、集成整合、数据治理、安全…

某鱼兼职并不是那么好做,钱也不是漫天要价

文章目录一、背景二、雇主的期望2.1、jinja2代码三、题主的期望3.1、删除功能3.2、前端体现3.3、留言列表实现降序3.4、效果显示四、总结一、背景 上周某鱼推送过来的单子多到题主应接不暇&#xff0c;不得已拒绝了几单&#xff0c;但是接下来的单子呢又不那么顺利&#xff0c;…

提速3.7倍!何恺明团队再发新作,更快更高效的FLIP模型:通过Masking扩展语言-图像预训练(附论文原文下载)

原创/文 BFT机器人 研究论文地址&#xff1a;https://arxiv.org/abs/2212.00794 计算机视觉和深度学习领域大神何恺明携团队再发新作&#xff01;论文围绕近来火热的CLIP&#xff08;Contrastive Language-Image Pre-Training&#xff09;模型展开研究&#xff0c;并提出了一种…

Python怎么进行时区的转换

pytz 是一个用于处理时区的 Python 库,它为 Python 提供了对时区的支持。 它提供了大量的时区信息&#xff0c;包括时区名称、偏移量、是否使用夏令时等。你可以使用 pytz 库来处理本地时间、UTC 时间和其他时区之间的转换。 它提供了许多函数来帮助你处理时区相关的信息。 …

C++之多态(中篇)(最全总结)

这里接上面C之多态&#xff08;上篇&#xff09; 本篇目录4.多态的原理4.2 多态的原理4.3 C 11 override和final4.4 重载、重写&#xff08;覆盖&#xff09;、隐藏&#xff08;重定义&#xff09;的对比 &#xff08;函数之间的关系&#xff09;5.抽象类5.1概念5.2接口继承和实…

三、基于kubeadm安装kubernetes1.25集群第二篇

在上一篇中我们已经安装kubernetes要求做了服务器初始化&#xff0c;看这篇之前&#xff0c;建议先看下上篇&#xff1a;https://blog.csdn.net/u011837804/article/details/128350651 那我们正式开始kubernetes1.26集群安装 1、每台机器安装docker20.10.22 docker的安装细节…

数据结构训练营4

开启蓝桥杯备战计划&#xff0c;每日练习算法一题&#xff01;&#xff01;坚持下去&#xff0c;想必下一年的蓝桥杯将会有你&#xff01;&#xff01;笔者是在力扣上面进行的刷题&#xff01;&#xff01;由于是第一次刷题&#xff01;找到的题目也不咋样&#xff01;所以&…

itop-imx8m开发板gstreamer日志级别设置

gst 的日志等级分为 none(0)error(1) warning(2) info(3) debug(4) log(5)。默认 gst 的日志等级为 1&#xff0c;即 error 打印&#xff0c;出错时会打印。 1&#xff09;全局日志级别设置 如果需要更高级别打印&#xff0c;修改环境变量 GST_DEBUG 即可。如需要 warning 级别…

基于python的transform行人车辆识别

Transformer是一种神经网络体系结构&#xff0c;由于它能够有效地处理顺序数据中的长期依赖性&#xff0c;因此在自然语言处理(NLP)任务中受到欢迎。它还被应用于各种其他任务&#xff0c;包括图像分类、对象检测和语音识别。 在车辆和行人识别方面&#xff0c;transformer可用…

浅谈安科瑞电能预付费系统在大电力客户中的设计及应用分析

摘 要 随着我国供电企业的不断发展&#xff0c;而用电模式也在不断改革&#xff0c;预付费技术在气、电等部门得到普遍的使用&#xff0c;本文主要针对预付费系统在大电力客户中的使用情况进行分析&#xff0c;提高用电用户的缴费率&#xff0c;有效的避免了客户恶意偷窃电行…

【小5聊】Winform从指定服务器下载文件的方式

在一些实际项目中&#xff0c;我们往往需要上传一些excel、word等办公文件&#xff0c;甚至是mp3、mp4等音频视频文件。 当然&#xff0c;大多数小型网站会放到自己服务器&#xff0c;如果文件量不大的话 如果文件数量会很多&#xff0c;那么就需要考虑使用第三方来保管存储 不…

Elasticsearch:使用 NLP 问答模型与你喜欢的圣诞歌曲交谈

自然语言处理 (NLP) 是人工智能 (AI) 的一个分支&#xff0c;旨在通过将计算语言学与统计、机器学习和深度学习模型相结合&#xff0c;尽可能接近人类解释地理解人类语言。 NLP 的最大挑战之一是在考虑到各种语言表示的情况下预训练文本数据的过程。 2018 年&#xff0c;谷歌…

企业报表插件怎么用?

最近因为单位年底要做部门总结汇报&#xff0c;需要使用很多的数据以报表的形式来引证今年的工作情况&#xff0c;内部的 OA、ERP 这些业务系统是指望不上了。作为懂一点 SQL、又经常用 Excel 来给领导做报表的我&#xff0c;在网上一轮操作&#xff08;就是百度啦&#xff09;…

算法通关手册 刷题笔记1 数组基础

算法通关手册 刷题笔记1 数组基础 持续更新中 文章目录算法通关手册 刷题笔记1 数组基础数组操作题目0189 轮转数组AC自己的解法其他解法知识点查漏补缺关于python中的数组赋值python中对象的引用0066 加一AC自己的解法其他解法知识点查漏补缺0724 寻找数组的中心下标AC自己的解…

大数据必学Java基础(一百一十六):Application域监听器

文章目录 Application域监听器 一、认识Application域监听器 二、监听器代码 Application域监听器 一、认识Application域监听器

关于金字塔格式转tiff并且openslide能获取到缩略图等标签信息

我们都知道openslide通过openslide_get_associated_image_names获取相关的图像名称&#xff0c;比如"thumbnail",“label”,“macro"等。那我们将"thumbnail”,“label”,"macro"写入tiff的时候&#xff0c;如何才能保证openslide能够获取到呢&a…

2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛 赛道B 北京移动用户体验影响因素研究 建模方案及代码实现(更新中)

【BetterBench原创】2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛 赛道B 北京移动用户体验影响因素研究 建模方案及代码实现&#xff08;更新中&#xff09; 更新进展 2022年12月20日 22:00 发布初步思路 &#xff08;待更新&#xff09;发布初步思路实现代码 …

即时通讯音视频开发视频编解码预测技术

目的是去除空间冗余和时间冗余。因为视频存在大量的空间冗余和时间冗余&#xff0c;包括空间冗余、时间冗余&#xff0c;预测后得到去除大部分空间或时间冗余的残差。 图像空间相邻像素具有很强的相关性&#xff0c;帧内预测技术去除空间冗余。 视频图像在时间上有较强的相关性…

组团出海抢抓跨境电商外贸,有利于2023“开门稳”

组团出海抢抓跨境电商外贸&#xff0c;有利于2023“开门稳” 我国是货物贸易第一大国&#xff0c;强大的生产能力、出色的产业配套、完善的物流供应、充足高效的劳动力&#xff0c;都为我国成为贸易强国提供了有利条件。 近几年&#xff0c;中国跨境电商产业进入快速发展阶段&a…