白日放歌须纵酒,青春作伴好还乡。这篇文章主要讲述vim的简单使用相关的知识,希望能为你提供帮助。
写在前面
今天我们主要看看再Linux环境下如何编辑代码,里面的一些指令大家可能会有些不太懂,不过没有关系,先看着我写,后面会逐渐了解的.在学习之前,我想和大家说一句话,不要对Linux感到神秘,也不要觉得它很难,学习新知识是困难的,但是学习过之后,你会发现也就那样,没有什么值得感到无从下手的.vim一般情况下,我们在widows环境下,编写代码都是有专门的软件,例如VS,IDEA...使用这些软件,我们不仅仅可以编写代码,还可以在这里运行,调试...它们存在很多功能,所以有一个共同的名字:集成开发工具,但是在Linux中就不一样的,我们很少使用这些东西,每个模块都有相对应的工具来帮助我们使用.
什么是vim
不知道大家在Windows下使用过文本编辑器(记事本)过没有,就是那个可以写.txt文件,又可以修改文件后缀的小工具,vim的本质就是它.也就是说vim就是我们编写代码的地方,它只负责这个功能.我们在vim中编写代码,后面的编译运行等等的事交给其他的工具来干.
如何下载vim
在Linux中也有一个和vim功能一样的编辑器,叫做vi,但是我们一般很少使用.vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面 .但是vim又不是Linux自带的,我们该如何下载呢?在Linux中下载软件有点麻烦,大家就按照我下面写的指令就可以了.按照这一条指令就可以了,后面输入一下超级用用户的密码,按下回车就可以自动下载安装了,很简单.
sudo yum -y install "vim"
文章图片
这里的配置我先不说,在篇博客的后面会专门谈一谈,不过说的比较浅.我们先可以看看这篇如何配置.这里强烈建议
???一键部署vim配置??
为何学习vim的使用大家为何不用一些电脑上自带的软件,而去选择那些心仪的,这就体现出一个优胜略汰,好的工具我们会第一选择使用,我们也喜欢用它,就是因为它好用,vim也是如此.在vim中,我们可以做很多事情,初步接触的时候大家可能感觉有些困难,但是一旦我们上手了,就会知道它的优点了.大家可能觉得vim不就是一个编辑器吗,他还需要我们学习?不就是把我们的代码写到文件中吗?这不就是有手就行.是的,有手就行,但是vim要仅仅是这些最基本的功能,大家也不会在今天学习它了.学习vim在于我们如何快速的编写代码,修改代码.这也是我们今天学习的主要内容.
vim的模式
我们先看看如何使用vim编辑文件,再说这个vim的模式.在编译文件前,我们需要创建一个文本文件,但是vim会自动创建我们需要的文件.
vim main.cpp// vim + 空格 + 文件名(带上后缀)
即使没有main.cpp这个文件,vim也会自动帮忙创建出来,下面的代码就是我们回车会出现的结果.画面中主要包括三个方面,我都标出来了.其中一个就是我们要谈的模式.
文章图片
vim中包含很多种模式,分别有不同的作用,这里我谈谈大家经常接触的,共有三种.
- 底行模式(last line mode): 文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作
- 命令模式(Normal mode): 控制屏幕光标的移动,字符、字或行的删除
- 插入模式(Insert mode): 就是我们普普通通编写代码,也就是敲字,该模式是我们后面用的最频繁的编辑模式
如何切换vim的模式
如何在vim中切换模式,对我们来说是很重要的,大家来看看吧.这三种模式是可以相互切换的,我们只需要知道一些常用的切换方法就可以了,对于那些很偏僻的方法,我们不太提倡,大不了切换的时候绕些远路.
文章图片
命令模式 -> 插入模式我们一进入vim,模式就是命令模式,先要进入插入模式有下面三种常见的方法.这三种方法又不同的作用,适合不同的场景.
- 按键盘的a当文件中有文字时,按a光标会自动后移一下
- 按键盘的i当文件中有文字时,按 i光标会不会动
- 按键盘的o当文件中有文字时,按o光标移动到下一行
文章图片
插入模式 -> 命令模式按一下ESC按键就可以了.
文章图片
命令模式 -> 底行模式按一下shift + : 就可以了
文章图片
命令模式插入模式没有什么好说的,就是正常编辑代码就可以了,大家主要还是放在另外两种模式下.命令模式在大范围修改代码有很大的优点,可以随意跳到任意一行...这些功能都是我们需要的.下面我将一一列出vim在命令模式的快捷方式.
光标的上下左右移动
在vim中,光标的上下移动有两种方式,一种是使用键盘上自带的上下左右移动的按键,另外一种是使用 h,j,k,l这四个英文,大写不行.这里我建议使用英文字母,因为有的vim不支持第一种方法.我来详细说说这四个英文字母如何和上下左右相匹配
- 上移k可以理解为king国王高高在上
- 下移j可以理解为 jump先下跳
- 左移h四个按键最左边
- 右移l四个按键最右边
文章图片
移动一个单词的大小
或许大家觉得一个一个字符移动的速度太慢了,我们是不是有一个比较快的移动,这里有一个一次移动一个单词的长度的快捷键,说是一个单词不太准确,但是大概就是这种情况.
- 先后移动一个单词w
- 先前移动一个单词b
文章图片
跳至行尾行首
在Windows环境下一般都有单独的按键home键跳到行首,end键跳至行尾,但是在vim中有一点问题,我们不用这两个键.
- 直接跳到行尾:shift+4也就是$ 符
- 直接跳到行首:shift+6也就是 ^ 符
文章图片
跳至末行和首行
当一个文件的代码变的很少多的时候,我们要是想要直接跳到到尾行,需要不断的滑动鼠标的滚轮,但是在vim中一个简单的快捷方式就可以了.
- 最后一行shift+g
- 最上一行gg
文章图片
并且在这里vim还提供跳到任意一行的方法,和上面差不多.
- 第N行N+ shift+g
文章图片
复制& 粘贴
vim中也提供复制和粘贴的快捷方式,避免我们用鼠标一点点弄.
- yy复制光标所在的一行
- p默认粘贴到下一行
文章图片
有人可能会疑问道,我们复制多行的话不是还需要鼠标吗?上面的那个只能复制一行,但是下面的这个就可以复制多行了.
- N yy复制从光标可以数N行
- N p把复制的内容粘贴N次
文章图片
文章图片
撤销上一次的操作
要是我们感觉到上一次的操作用错了,我们可以撤销上一次的操作,和CTRL+ Z一样
- u撤销上一次的操作
文章图片
剪切& 删除
剪切包含复制和删除两种,只要我们不对剪切的内容进行粘贴,那不就是删除了吗!
- x删除光标所在的一个字符
- Nshift+x删除贯标所在之前的N个字符(光标所在的字符不删除)
- dd剪切剪切光标所在的一行但是会保存p可以粘贴出来
- N dd可以剪切从贯标开始数的N行
文章图片
大小写转化
在Windows环境下,要是我们想要把一行代码从小写变成大写这是很难做到的,但是vim却可以很简单的做到.
- shift+ ~大小写转换
光标会从左向右滑动,我们不想改变了,松开按键就可以了
文章图片
底行模式一般情况下,命令模式那些东西够我们平常使用vim,这里我简单的谈一下底行模式的内容,不是太多.我们需要先进入底行模式,先按esc键,然后shift + :,这样就可以了.
打开多个窗口
在vim中也可以使用多个窗口来一起编译.
- vs 文件名(带后缀)
文章图片
这样vim会自动打开这个这个文件,但是这里有一个问题,我们如何确定自己是在编写哪个文件呢?这个也很用辨别,记住光标是唯一的,光标在那里,编写的就是那个文件.这个有有一个问题,我们该如何将光标移动其他的文件中,vim也可以帮忙.在命令模式下,下面的快捷方式就可以将光标移动的其他的窗口
- CTRL + ww
文章图片
保存文件& 退出vim
我们写好了文件后,就可以保存和退出了.
- : w (保存当前文件)
- :wq(输入「wq」,存盘并退出vim)
- : q! (输入q!,不存盘强制退出vim)
文章图片
vim配置大家要是没有使用上面的vim的自动配置,看到我的vim页面会和你们的大不一样,我的vim是经过配置的,里面装了很多插件,大家会看到我的代码补全功能,这是刚下载的vim所没有的,甚至没有行号这个功能.我们可以自己配置自己的vim,这里建议一个用户配置独属于自己的vim配置.
自动配置
我建议是自动配置,别人是专门配置vim的,他们是专业的,这里我把上面的连接复制下来,我和它的配置是一样的.这里强烈建议??一键部署vim配置??
手动配置
要是大家想要手动配置vim的话,这里也给给大家一些方法,vim配置包含两个方面,我只谈谈基本配置就可以了,插件的安装很麻烦
- 基本配置
- 插件
我们需要下面几个步骤.而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通 常已经存在一个.vimrc文件,如果不存在,则创建之
- 在 用户目录下查看隐藏文件
- 要是有 .vmrc文件就直接vim .vmrc,没有的话创建一个再编辑
- 在.vmrc文件里面填写你要的功能
文章图片
这个我给出几个功能,大家也可以去网上找找关于这些的博客,把自己想要的功能复制粘贴到文件中就行了.
set number// 显示行号
syntax on// 语法高亮度显示
set autoindent// vim使用自动对起,也就是把当前行的对起格式应用到下一行
set smartindent// 依据上面的对起格式,智能的选择对起方式,对于类似C语言编
set tabstop=4// 设置tab键为4个空格
【vim的简单使用】
推荐阅读
- 一次实战挖掘软件逻辑漏洞
- 跨越时空的对白——async&await分析
- C语言_Linux基本命令与C语言基础
- NAT实验
- #私藏项目实操分享#愚公系列2022年05月 Python教学课程 75-DRF框架之排序
- 路由基础之DHCP接口全局中继地址池的配置
- Nacos源码系列—服务端那些事儿
- 日调用量超600亿次,HMS Core HiAI Foundation助力AI应用高效开发
- 搜狗输入法弹出广告