技术标签: 编辑器 开发工具 linux # Linux基础入门篇 vim
Vim
是从vi
发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和【Emacs】并列成为类Unix系统用户最喜欢的文本编辑器
对于vim来说,大家一定要了解,它仅仅就是一款编辑器,从文章标题应该就可以看出
上见面讲到了在vim下的五种模式,我们马上来了解一下
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。在此模式下无法进行代码编辑
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入
在正常模式按下v, V, Ctrl + v,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便
在正常模式按下R,可以进入可视模式。对于替换模式而言其实并没有那么常用,因为在命令模式中就可以直接进行替换,也就是按下【r】键,然后直接对当前光标所在字符进行替换即可。但是每次只可替换一次或者批量替换,在【替换模式】中可连续替换,更加方便
可能有些同学系统中并没有安装过vim,下面是安装命令。如果是买的云服务器那就不需要了,本身就是带有的
sudo yum -y install vim //普通用户
yum -y install vim //超级用户
vim
即可,它就是一条命令vim
的编辑界面,可以看到左上角的【No Name】,并没有对任何一个文本在进行操作。现在我们创建一个文本进行操作在上一小节中,我们虽然进入了vim中,但是我在开头就说了,对于vim而言存在多种模式,并不是所有模式都可以进行代码编辑的
【插入模式】
【末行模式】
【可视模式】
【替换模式】
注意事项
1. 如果你不知道自己在什么模式下,无脑Esc
2. 退出的时候,一般都时先保存,再退出【wq,write and quit】
3. vim操作中,不要用鼠标和鼠标的滑轮
对于大部分的指令来说,都在在【命令模式】下进行的,【末行模式】少许让我们走近vim的指令集,真正了解vim的魅力所在
移动光标
shift + 4
】shift + 6
】shift + g
】「ctrl」+「b」
:屏幕往“后”(上)移动一页「ctrl」+「f」
:屏幕往“前”(下)移动一页「ctrl」+「u」
:屏幕往“后”(上)移动半页「ctrl」+「d」
:屏幕往“前”(下)移动半页复制粘贴
删除
撤销
「ctrl + r」
: 撤销的恢复【相当于Windows下的ctrl + y】替换
大小写切换
所谓插入模式,就是你可以在这个模式下对文本/代码做增删修改的操作,因此不存在指令集一说
但是插入模式也被分为好几种,也就是从命令模式按下【特定键】即可进入不同插入模式
shift + i
进入可以使光标快速切换到当前行行首
shift + a
进入可以使光标快速切换到当前行行尾
shift + o
进入可以使光标快速切换到上一行行首
在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式
调出和去掉行号
「set nu / set nonu」
—— 代码前的行号跳到文件中的某一行
「:行号」
—— 例如:15
,然后按下Enter回车键,即可立马跳转到15行的第一个字符位置查找字符
「/关键字」
—— 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」
会往后寻找到您要的关键字为止「?关键字」
—— :先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」
会往前寻找到您要的关键字为止对于「/」
查找和「?」
查找存在向前和向后的区别,我们通过动图来看看
替换字符
「%s/替换前的字符串/替换后的字符串/g」
—— %s可以看成是C语言中字符串的格式声明符,g代表[global]整体的对于替换字符这一块有很多的写法,就不一一列举,有兴趣可以看看——>VIM中常用的替换模式总结
保存及退出vim
「q」
—— 直接退出「q!」
—— 强制退出「w」
—— 保存「wq」
—— 保存并退出「wq!」
—— 保存并强制退出不退出vim进行相关指令操作
「! + 指令」
—— 在任何指令前加个【!】即可(注意和强制退出要进行区分)
分屏编写工程
在vim分屏模式下,光标在哪里,我们就在编写哪一个文件
以上就是使用分屏模式编辑代码,这在我们以后使用Linux写代码的时候经常会用到,要牢牢掌握
在可视模式下,比较常用的一条指令就是多行注释
,放在这里将是因为它要配合【命令模式】和【底行模式】一起使用
修正一下,是Shift + i
R命令(shift + r)让你一步到位进入替换模式:对于需要替换多个字符,更好的方案是直接进入替换模式。按下大写的R键,屏幕左下角出现REPLACE
字样,说明你已经处于替换模式。此时输入字符可以连续替换光标及其后边的内容。
【注意】:退格键(Backspace)的作用
.vimrc
我们可以来看看这个配置文件,你可以直接vim ~/.vimrc
进入,也可以像我一样一步步找
当然,你肯定会任何这么一条条去配置不是要累死人了,那样的好你可以选择自动化配置,只需要打上一条命令即可
vimforcpp
便可以找到root
的密码后就可以进行安装配置了
注意:因为这是从gitee上面拿过来的,所以需要你的系统中装有git才行
① 使用
git --version
查看自己的系统中是否有安装git② 没安装的话使用
yum install -y git
稍等一会就可以安装好了
.bashrc
的文件让vim的配置生效即可.vimrc
这个配置文件看看再看完本文之后相信你对vim一定有了一定程度的了解,我们赶紧来总结一下吧
命令模式
、插入模式
、末行模式
、可视模式
、替换模式
这五种常用的模式中所包含的一些命令集,我也针对性地做了一些GIF动图帮助大家去理解,不过最终还是要靠你自己去勤加练习才可以熟练使用vim这款编辑器下面是几篇有关vim的文章,可供阅读学习
三、Vim从入门到牛逼(vim from zero to hero)
以上就是本文所有介绍的所有内容,如果觉得还可以记得给个三连哦️️️
文章浏览阅读722次。Oracle异常处理——ORA-01502:索引或这类索引的分区处于不可用状态参考自:https://www.cnblogs.com/lijiaman/p/9277149.html1、原因分析经过查证,发现是在删除分区的时候,导致分区表上的唯一性全局索引为不可用状态,导致新的数据无法正常插入,从而引发了该错误。是不是索引不可用会导致DML操作失败呢?经过验证,发现以下特点:(1)对于非唯一性索引,..._errorora-01502: 索引 'data168.pk_yunqu_call_sdr' 或这类索引的分区处于不可用
文章浏览阅读1.1k次。数据类型转换:今天遇到一个问题,就是DataFrame类型的数据里是str型的数字,想把数字转换为int 或float;百度没有发现好的,也可能输入的关键字不对,找不到;DataFrame.info()之后发现数据全是object之前有一个方法就是:先traindata=np.array(traindata,dtype=np.float)之后在traindata=pd.DataFrame(trai..._dataframe里面数据 从str改为float
文章浏览阅读316次,点赞5次,收藏5次。通过这些措施的综合运用,设备物联卡将能够充分发挥其在物联网设备管理中的作用,同时保护企业和用户的数据免遭侵害。设备物联卡可以使用端到端加密(E2EE)技术,确保数据在从源头设备到最终目的地的整个传输过程中都是加密的,即使数据在传输过程中被截获,未经授权的第三方也无法解读数据内容。物联网卡应该支持复杂的认证机制,如基于SIM卡的认证,确保所有通过卡进行通信的设备都是经过授权的。例如,企业可以对设备进行分组管理,不同组的设备拥有不同的访问权限,进一步增强数据的安全性。四:物联网卡的安全配置。
文章浏览阅读1.1k次,点赞34次,收藏24次。springboot基于springboot的校园生活工具租赁系统。springboot基于SpringBoot共享单车管理信息平台。springboot基于springboot的母婴服务管理系统。开发软件:eclipse/myeclipse/idea。springboot基于springboot的秒杀商城。springboot基于java的学生宿舍管理系统。ssm基于微信小程序的飞机订票系统的设计与实现。springboot安易网上商品交易系统。ssm基于微信小程序的网上门诊预约系统。
文章浏览阅读141次。Java事务类型分为本地(jDBC)事务跟分布式(JTA、JTS)事务JDBC事务:即为上面说的数据库事务中的本地事务,通过connection对象控制管理JTA事务:JTA指Java事AP(Java Transaction APl),是 Java数据库事务规范,JTA只提供了事务管理接口,由应用程序服务器厂商(如WebSphere Application Server)提供 实现,JTA事务比JDBC更强大,支持分布式事务。JTS不常用,这里不做介绍Atomikos事务管理器第三..._配置 atomikos 事务管理器
文章浏览阅读61次。1.开发模式(原生) xxx文件夹 js文件 html文件 css文件 image文件技术:html5 css3 JavaScript2.vue开发利用脚手架 vue-cli创建框架在xxx文件夹下,进入终端输入命令: vue create @vue-cli但是由于是框架,浏览器只能展示html css JavaScript文件 因此最终还是需要将vue项目进行打包成原生的项目文件在项目终端输入 npm run build以上操作将项目打包_es6 image
文章浏览阅读157次。栈和队列一、栈1.栈的基本概念2.栈的顺序存储结构3.栈的链式存储结构4.栈的应用二、队列1.队列的基本概念2.队列的顺序存储结构3.队列的链式存储结构4.队列的应用三、特殊矩阵的压缩存储四、其他1.迷宫的"穷举求解":五、总结我有想过要不要把栈和队列和在一起讲,因为他们之间太多相似的地方了,但是我还是决定分开来写,这样复习梳理起来会更加的细致,如有不对的地方也请大家指出,多多包涵。一、栈1.栈的基本概念栈(stack)是只能在尾部添加数据或者删除数据的线性表。表尾,表顶:top,表头,栈底:b_csdn 嘻嘻子
文章浏览阅读2.5k次。基于运行与qemu上的CentOS 7.6 Arm虚拟机,在线安装配置Qt5.13开发环境(含Qt Creator),并进行所需的GCC环境配置、MySQL8环境配置,为开发环境准备CMake、Protobuf、Python、SVN客户端配置,并额外安装JDK8。_centos 7.6 arm
文章浏览阅读1k次。所以我熟悉randsrc并且我可以使用给定概率的整数随机字母表创建.所以我想说我有这个字母表alphabet={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};prob=[0.08167 0.01492 0.02782 0.04254 0..._字母随机排序成个单词的的概率高数
文章浏览阅读984次,点赞22次,收藏25次。在不同的中间件中有特殊的情况,如果在 apache 可以开启 application/x-httpd-php 在 AddType application/x-httpd-php .php .phtml .php3 后缀名为 phtml 、php3 均被解析成 php 有的 apache 版本默认就会开启。把恶意文件改成 js 允许上传的文件后缀,如 jpg、gif、png 等,再通过抓包 工具抓取 post 的数据包,把后缀名改成可执行的脚本后缀如 php 、asp、jsp、 net 等。_渗透测试 上传文件
文章浏览阅读2k次。下面的内容适用于LaTeX日常报告。仅为个人存档文件。\documentclass[hyperref,UTF8]{article}\usepackage[colorlinks,linkcolor=blue,anchorcolor=yellow,citecolor=blue,urlcolor=blue]{hyperref}% set hyber link color as 'blue'\usepackage{geometry}% adjust pdf page geometry\usepackage
文章浏览阅读2.5w次。这几天帮一个学妹tiaoshi_matlab中四维绘图