vim的基本操作_vim操作-程序员宅基地

技术标签: 编辑器  linux  vim  

image-20221117223808880

vim是什么

简单理解:vi/vim都是多模式文本编辑器,但vim是vi的升级版本。vim是可运行在x window 、mac os、windows的多模式编辑器。

vim快捷键键位图

image-20221117185052111

vim的模式

vim有很多种模式,但常见的模式有三种:命令/正常/普通模式(Normal mode);插入模式(insert mode);末行模式(last list mode);下面是三种模式的切换概览:

image-20221117185839296

image-20221117190919332

这个时候发现我们敲打键盘并不能像平时用记事本那样输入。这时候我们按i-就能进入插入模式!

image-20221117191145719

我们可以看到左下角会显示**–INSERT–**就说明进入插入模式!进入插入模式后就能像利用记事本那样输入了。

当我们想进入底行模式或者输入完想退出时,按键盘左上角Esc就能回到命令模式!

回到命令模式后按住shift+:【:是键盘上L右边的那个键】就能进入底行模式!

image-20221117191536072

进入底行模式就能看到左下角显示这个**:**

想回退到命令模式就按Esc!

现在三种模式的切换讲述完毕

现在我们进入到命令模式的介绍。

命令/普通模式(Normal mode)

vim是没有鼠标操控的编辑器,所以我们要用命令来移动光标。

移动光标

上下左右

我们可以用键盘上的上下左右移动光标也可以用键盘上的

小写字母【h】:向左移动【j】:向下移动【k】:向上移动【l】:向右移动—来移动光标

image-20221117193332044

那怎么在不熟练的情况下记忆呢

按h 在里面的最左边不用说了 向左
按j 联想单词jump—往下跳—向下 向下
按k 联想单词king—高高在上—向上 向上
按l 在里面的最右边不用说了 向右

这下能记住了吧

其余移动光标

+号不用按,这里用作连接表示

按shift+$ ——shift+4 移动到光标所在行的“行尾”:行右
按shift+^——shift+6 移动到光标所在行的“行首”:行左
按gg——{连点两下小写g} 进入文本开头
按shift+g——G 进入文本末端
按n+shift+g——G 跳转光标到指定第n行开头;n是行号
按w 光标跳到下个单词的开头
按e 光标跳到下个单词的字尾
按b 光标跳到上个单词的开头
以上是常见移动光标的指令 如果觉得不够用可以上百度查噢

image-20221117194739819

文本操作

+号不用按,这里用作连接表示

按 u 撤销(可多次按)
按ctrl+r 撤销的恢复(可多次按)
按ctrl+g 显示光标所在行的行号
按yy 复制光标所在行(一行)
按n+yy 复制n行:从光标所在行起往下复制n行的内容
按 p 粘贴一次复制内容
按n+p 粘贴n次复制内容
按dd 删除光标所在行
按n+dd 从光标所在行起往下删除n行
dd+p 剪切一次刚刚删除的内容(有剪才有切-有删除才有剪切)
按ndd+p 剪切n次刚刚删除的内容
按c+w 从光标位置往后删除当前单词或字符并进入插入模式
按c+n+w 从光标位置往后删除n个当前单词或字符并进入插入模式
按 x——小写x 从光标所在位置起往后删除一个字符
按 n+x 从光标所在位置起往后删除n个字符
按shift+x——大写X 从光标所在位置起往前删除一个字符
按n+shift+x——n+大写X 从光标所在位置起往前删除n个字符
按shift+~ ——1左边那个字符~(文本大小写切换) 从光标往后的小写转大写/大写转小写
按n+r+字符——比如我按3+r+a那么从当前光标往后的三个字符都变为a 局部替换文本
shift+r——R 进入替换模式可以整体替换

按住shift+~演示

按住shift+~

进入替换模式:shift+r=R

进入替换模式后可以看到左下角有–REPLACE–

image-20221117205555039

进入替换模式后在文本上输入导致文本替换!演示如下:
按shift+r进入替换模式后替换文本:

shift+r

插入模式(insert mode)

按i进入插入模式
按a从光标所在位置的下一个位置进入插入模式
按o从光标所在行的下一行进入插入模式

底行模式(last list mode)

进入底行模式:在命令模式按shift+:

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

输入set nu 显示行号
set nonu 不显示行号
wq 保存并退出
w! 强制保存
q! 强制退出(不保存当前修改)
wq! 强制保存并退出

下面是**按shift+:**进入底行模式后输入set nu 和 set nonu的演示

set nu或nonu

vs+文件名——比如我输入vs trx.test 那么会在当前界面分出另一个vim文本(trx.test) 分出来后光标在新的文本,当然光标只能在一个文本,所以只能操控一个文本,想要操控别的文本需要光标切换文本【另: 当然多次vs也可以分出多个文本】
ctrl+ww——ctrl+点击两次ww 光标切换文本
按**!** 不退出vim切换到linux界面;随后按任意键回到vim
!+ 指令 可以不退出vim切换到linux界面并执行指令
%s/destination/source/g 把当前文本的所有destination换成source;【比如%s/printf/cout/g—把当前文本的所有printf替换为cout】

vs演示

vs

%s/printf/cout/g

%s替换

vim的配置

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

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

3.切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~

4.打开自己目录下的.vimrc文件,执行 vim .vimrc

具体怎么配置呢?

第一步:查看有没有.vimrc文件,没有就创建(xxx为你自己用户名字)

image-20221117220622693

第二步:把需要的指令输入到.vimrc文件里(至于想要什么配置要去网上查噢)

1.修改.vimrc文件:vim .vimrc 把指令写进去并保存

比如image-20221117221550437

2.回到Linux界面:输入source .vimrc 等待它生效(如果发出生效错误说明指令不行~)

然后去vim个文件输入等待看看有没有生效 比如创建文件test.c并vim它看有没有配置好的效果

但是!现在都不需要了,现在有一键配置!

vim一键配置

我们可以进入gitte搜:vimforcpp

image-20221117222742332

点进去然后在下面找到

image-20221117223339486

当然我已经复制过来了:

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

把上面的一串输入到Linux里

image-20221117222854586

按回车,然后输入root密码等待安装就好了;然后我们按照要求重启一下云服务器;然后在随意vim一个文件就能看到这样,那么就是vim的一键配置完成拉!

image-20221117223117512

好啦,关于vim的保姆级教学就到这里,制作不易,看到这里的观众老爷们点点点赞关注收藏走一波~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_71841506/article/details/127913577

智能推荐

如何确定一笔用户的BTC转入记录_如何监听btc nft transfer-程序员宅基地

文章浏览阅读831次。在用户充值BTC业务中,我们需要通过BTC官方RPC接口中的 listtransactions 接口来获取BTC钱包中最近的交易记录,当监听当某笔未处理的记录时,我们会给记录对应的用户加钱,然后将这笔记录在系统中标记为已处理状态。重点是接口会返回许多笔交易记录,那如何判断某笔记录是已经被我们系统查询到且已经处理了呢?首先想到的 listtransactions 接口中返回的 txid 字段,起..._如何监听btc nft transfer

ZZ:实例解说网站优化--全过程详解 _举实例说明网站页面优化的过程-程序员宅基地

文章浏览阅读6k次。 我的网站在同行中是数一数二的,内容丰富,怎么流量上不去请大家指教一二www.cnkongtiao.com 中国暖通空调信息网原贴地址:http://bbs.50bang.com/read.php?tid=1874&fpage=11、既然是专业性,就要有个专业的样,你的网站整体感觉很不错,速度也不错,而且看上去也人比较勤快,基本上每天都有信息更新,你现在需要的是更专更精,做行业的权威,建议你每_举实例说明网站页面优化的过程

javaweb系统oracle锁表,java+oracle+web(第八天) java 基础课程(一) 线程同步和死锁...-程序员宅基地

文章浏览阅读65次。synchronizedsynchronized同步代码块同步函数两种方式。/*死锁,共享资源自有自己的锁,然后相互访问都要解锁,如果相互拿不到对方的锁,可能产生死锁synchronized例子说明:两个锁中锁,A和B,然后A有资源,然后B锁在A中锁了一个资源。然后两个线程来访问。引起死锁。在开发中要避免死锁。*/classLockTest implements Runnable{private ..._oracle两个线程同时锁一张表

中英文输入_鼠标复制英文加数字 site:blog.csdn.net-程序员宅基地

文章浏览阅读355次。一、键盘分为那几个部分: 1.功能区 2.指示灯区 3.打字键盘区 4.编辑区 5.数字键盘区 二、规范打字: 1.食指:(左边)45 rt fg vb (右边)67 yu hj nm 2.中指:(左边)3edc (右边)8ik, 3.无名指:(左边)2w..._鼠标复制英文加数字 site:blog.csdn.net

Pico四通道汽车诊断示波器高级套装(型号:PQ180)-程序员宅基地

文章浏览阅读993次。Pico汽车诊断示波器把你的PC电脑变成一台功能强大的汽车诊断工具,快速查找现代车辆上日益增加的传感器,执行器和电路的故障。12位高分辨率的PC示波器模块连接到你的电脑的USB接口上,并且能够采集达250M样本,使它能够捕捉复杂的汽车波形,包括CAN总线和FlexRay信号;然后放大可疑区域。由于基于PC,这些波形可以存储到你的PC电脑内用于以后参考,打印或发e-mail。强大的、容易使用的PicoScope汽车软件。整套套装里的一个重要组件就是功能强大的PicoScope汽车诊断软件。使用Pico_pq180

通过Java反射获得对象里面的所有字段名以及字段对应的值_java 通过对象 反射获取 对象的所有字段值-程序员宅基地

文章浏览阅读2.2w次,点赞4次,收藏9次。首先我们有一个对象类package com.xuzihui.ref;public class Student { public Student() { } private int id; private String name; private int math; private int english; public int getId() { retur..._java 通过对象 反射获取 对象的所有字段值

随便推点

数组中的逆序对-------归并排序应用_22212 14647 27252 22772-程序员宅基地

文章浏览阅读2k次。题目描述: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%100的数..._22212 14647 27252 22772

Android列表控件,整理出Android逆向系列学习进阶视频-程序员宅基地

文章浏览阅读966次,点赞17次,收藏10次。/ 返回适配器都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 PDF(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。Java语言与原理;大厂,小厂。Android面试先看你熟不熟悉Java语言。

【预测模型】基于粒子群算法优化ElM神经网络实现分类matlab代码_适应度函数rmse-程序员宅基地

文章浏览阅读885次。【预测模型】基于粒子群算法优化ElM神经网络实现分类matlab代码1 简介粒子群算法是一种启发式优化算法。粒子群算法是将优化问题的解比作一个粒子,粒子具有初始速度和位置以及一个适应值。粒子的速度能够确定其移动的方向和距离,粒子的适应值是由算法的适应度函数计算得出。粒子通过比较适应值和极值来不断更新自己的速度和位置本文将极限学习机的输入层与隐含层神经元的连接权值和隐含层神经元阈值作为粒子群算法中的粒子进行 优 化。因 均 方 根 误 差(Rootmeansquareerror,RMSE)的作用是用来_适应度函数rmse

GitLab 之 Rebase 导致本地代码丢失,进行还原_git rebase 代码不全-程序员宅基地

文章浏览阅读3.3k次,点赞2次,收藏7次。GitLab 之 Rebase 导致本地代码丢失,进行还原问题描述解决方案查看提交的历史记录回滚操作问题描述写了两天的代码,进行提交时发现冲突了,结果手贱点了 Rebase 结果发现本地代码全没了解决方案查看提交的历史记录–date=iso: 是为了打印时间,这样好通过时间判断哪个是提交的git reflog --date=iso我是通过提交时间,加上 Rebase 这个操作判断这个时间点是我要撤回的本地提交的时间点回滚操作之后旧发现代码成功变回去了git reset --hard _git rebase 代码不全

Unity AssetBundle爬坑手记 - 夜阑卧听风吹雨_collectdependencies-程序员宅基地

文章浏览阅读633次。http://www.tuicool.com/articles/ieYJBf这篇文章从AssetBundle的打包,使用,管理以及内存占用各个方面进行了比较全面的分析,对AssetBundle使用过程中的一些坑进行填补指引以及喷!AssetBundle是Unity推荐的资源管理方式,官方列举了诸如热更新,压缩,灵活等等优点,但AssetBundle的坑是非常深的,很多隐藏细_collectdependencies

异构计算技术分析_异构计算对神经网络的影响-程序员宅基地

文章浏览阅读1.2k次,点赞3次,收藏8次。异构计算技术分析_异构计算对神经网络的影响

推荐文章

热门文章

相关标签