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

linux编辑器-vim

一.vim的基本概念

vim 是从vi发展出来的一个文本编辑器,可以执行增删改查等众多的文本操作。

说到vim我们就不得不提到一个铁三角模式

image-20240605151547736

普通/正常/命令行模式(Normal mode):

控制光标的移动,对行进行删除,复制等功能,移动复制某区段及进入Insert mode下,或者到 last line mode

编辑/插入模式(Insert mode):

进行文本内容的输入,这也是我们最常用的一种模式,毕竟我们以后是要用插入模式来编写代码的。

末行模式(Last line mode):

文件的保存或退出,文件替换,文件内容的查找,列出行号等功能。

二.vim的基本操作

刚刚我们提到了vim的铁三角模式,这个是非常重要的,接下来我们就看看这三种模式具体是如何切换的。

进入vim,我们可以先使用touch创建一个文件出来,比如touch test.cc,然后使用vim test.cc,打开该文件;

或者我们可以直接使用vim test.cc,该文件不存在也没关系,vim还自带创建出该文件。

命令行模式:

刚进入vim的全屏幕的编辑画面的时候,这时候的模式就是命令行模式。

命令行模式进入插入模式:

点击键盘上的a,i,o三个键的任意一个都可以,区别就是光标所在的位置不一样。

当左下角出现INSERT的时候,也就是处于插入模式了。

image-20240605153756571

命令行模式进入底行模式:

输入,就是进入底行模式了。

重点:所有的模式都是和命令行模式打交道的,是双向箭头,所以在其他模式下返回到命令行模式,直接无脑按ESC键即可。

三.vim命令行模式命令集

在命令行模式下我们是不使用鼠标的,直接通过键盘来完成所有的操作。

早期的键盘:

image-20240605154854260

那时候还没有我们现在的小键盘来控制光标的上下左右,我们通过HJKL来控制光标的移动。

h:向右移动一个字符。
j:向下移动一个行。
k:向上移动一行。
l:向右移动一个字符

记忆方法:h和l键分别在左右两侧,自然知道;j对应单词jump,向下的意思;k对于单词king,自然在上。

gg:光标定位到第一行。
shift+g:光标定位到最后一行。
数字+shift+g:光标定位到任意一行。
Shift+6(^):光标到当前行的开始。
Shift+4($):光标到当前行的结尾。
w:以单词为单位,向后移动,支持跨行。
b:以单词为单位,向前移动,支持跨行。
数字+yy:复制多行。
数字+p:粘贴多行。
dd:剪切。
u:撤销。
ctrl+r:撤销的恢复。
Shift+`(~):文本大小写替换。

差不多常用的命令就是这些了,多练习。

四.vim末行模式命令集

处于命令行模式,输入:,进入末行模式。

q:退出vim,如果退出不了vim,可以加上!,q!表示强制退出。
wq:保存文件并退出文件。
set nu:在vim左侧设置出行号。
查找字符:
/输入你要查找的字符,你可以一直按n(next),向下找你需要找的字符。
?输入你要查找的字符,你可以一直按n(next),向上找你需要找的字符。

五.视图模式

在我们编写代码的时候,vs中我们都是通过//或者/**/来进行注释的,当然我们批量化注释的时候,使用鼠标选择内容,然后点击右上角的那个键,就可以一键批量化注释,非常的方便。

在vim中,我们也可以实现批量化注释,这就要说到另外一个模式了:视图模式。

image-20240605181428417

在命令行模式下按下crtl+v即可进入视图模式。

批量化注释:在命令行模式下:输入crtl+v进入视图模式,使用j/k两个键选中内容,再shift+i(I),再输入//,最后按Esc键,即可完成批量化注释。

实操:

动画

六.vim的配置

在目录/etc下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。

而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。

切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~。打开自己目录下的.vimrc文件,执行 vim .vimrc。

一款好看好用的vim,需要你自己安装各种插件。

这里有一个命令,一键配置c/c++的vim,非常的好用。

安装方法:sudo curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

卸载方法:bash ~/.VimForCpp/uninstall.sh

七.vim文件时,误使用了ctrl+z命令,该怎么办?

今天在写这篇文章的时候,无意间使用了ctrl+z,vim就会自动退出,如果你再次使用vim打来该文件,就会出现该情况:

当然你每次可以输入下面的选项进入vim,但是每次都要这么做,非常的烦。

这是因为,此时生成了一个隐藏文件。

第一种解决办法:把红框中的路径复制下来,然后使用rm 该路径,把这个隐藏文件给删除掉。

第二种解决办法:使用fg命令。

为什么使用fg命令呢?

ctrl+z

可以将前台执行的命令放到后台,并且暂停。

fg

可以将后台中的命令调到前台继续运行。

相关文章:

  • vue解决跨域问题
  • Spark RDD算子
  • 代码随想录算法训练营第三十一天| 455.分发饼干,376. 摆动序列 ,53. 最大子序和
  • 10进制与二、八、十六进制的转换
  • Day25 首页待办事项及备忘录添加功能
  • MFC 使用sapi文字转换为语音
  • 跨域、JSONP、CORS、Spring、Spring Security解决方案
  • maven的install不报错但deploy到nexus报400错误
  • AI大模型探索之路-实战篇16:优化决策流程:Agent智能数据分析平台中Planning功能实践
  • Python 中的装饰器及其作用
  • Oracle数据库连接并访问Microsoft SQL Server数据库
  • Apple开发者macOS设备与描述文件Profile创建完整过程
  • 协程库——面试问题
  • 大模型Prompt-Tuning技术进阶
  • 中介子方程十一
  • ----------
  • 【Leetcode】104. 二叉树的最大深度
  • Angular 2 DI - IoC DI - 1
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • HTTP中GET与POST的区别 99%的错误认识
  • Linux后台研发超实用命令总结
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 使用docker-compose进行多节点部署
  • 追踪解析 FutureTask 源码
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (20050108)又读《平凡的世界》
  • (C语言)fread与fwrite详解
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (三)终结任务
  • (算法)N皇后问题
  • (转)菜鸟学数据库(三)——存储过程
  • (转载)虚函数剖析
  • .Mobi域名介绍
  • .Net 8.0 新的变化
  • .net framework4与其client profile版本的区别
  • .NET MVC之AOP
  • .net MVC中使用angularJs刷新页面数据列表
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NetCore部署微服务(二)
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • .pop ----remove 删除
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @Import注解详解
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用
  • []T 还是 []*T, 这是一个问题
  • [1204 寻找子串位置] 解题报告
  • [20150904]exp slow.txt