vim极为详细的教程(一)基本操作 您所在的位置:网站首页 dlib使用教程 vim极为详细的教程(一)基本操作

vim极为详细的教程(一)基本操作

2023-03-22 14:24| 来源: 网络整理| 查看: 265

vim的总体介绍

我以前是坚定的vim党,但后来用了一次vscode,便再也出不来了。vscode虽然功能强大,但本质上任然是个编译器,它强大的功能来自于对各种经典工具的灵活调用,vscode开发C++本质还是对其他编辑工具的调用,而vim又可以说是这些编辑器中功能最强大,效率最高的,我的vscode也用的是vim模式。要熟练利用vscode开发C++, 推荐熟练掌握vim,必须熟练掌握gdb,json等。

vim常常因其极高的学习门槛劝退很多新手,但这很大程度上是因为市面上缺乏好的vim使用教程,其实只要按合理的顺序学习,vim并不难,而且它有极高的效率。有很多人连vim的基本使用方法都搞不清,便急急忙忙的去学各种插件,最后只能是什么都不懂,然后抱怨这是个垃圾工具。

vim的学习过程

我打算将vim详解分为四个章,分别是

vim的基础操作,即vim自带的功能,无需任何安装vim的自带的高级操作,配置文件的配置,比如如何在vim中配置各种映射等等vim各种插件的安装,使用vim与各种工具的配合,这个了解一下就可以了,用vscode调用vim就自带了这部分功能

这四章是层层递进的关系,必须要把前一章学好,才能学会使用下一章。

vim遇到问题

vim需要肌肉记忆才能熟练使用,有问题可以到我创建的 QQ群“361863861” 问问题,有些操作在试验后不懂,可以加群讨论。

vim的使用环境

我用的是vim最新版,vim8,vim的使用和操作系统无关,ubuntu,centos等都可以,使用vim --version可以查看vim的版本,如果是vim7,建议升级为vim8,vim7在某些功能上可能不支持。

vim的基础操作

1-1 初识vim:我是从裸的vim上开始配置的。

(1) 输入vim即可进入vim,输入vim 文件名,即可用vim的去编辑文件。进去之后是normal模式,无法输入任何东西,使用:q可以退出vim。

(2) 要编辑文件,必须进入编辑模式,输入i(insert)即可进入编辑模式,此外输入a(append),o(open a line below)也可以进入编辑模式。i表示在光标的位置插入,a表示在光标后的位置插入,o表示在当前的下一行插入。vim的开发人员为了提高编辑效率,I,A,O也可以进入编辑模式,I表示从该行最前面开始编辑,A表示从从该行最后面开始编辑。

所以,使用i,I,a,A,o,O均可以以不同的方式进入编辑模式。

(3)在编辑模式下,按esc键即可退回到normal模式,normal再输入:q就可以退出vim,输入:wq就可以保存文件,然后退出。

(4)注意:如果对文件进行了修改,输如:q就无法退出文件,必须输入:wq保存退出,或者输入:q!不保存,强制退出。

1-2vim的模式介绍

(1) 很多新手都会想,vim为什么要有那么多模式,而且vim上来要是normal模式,而不是编辑模式?

vim弄那么多模式,是为了提升工作效率。

vim上来是nornal模式,是因为我们大部分的工作是在normal模式下进行的,编辑只是很小的一部分。

这两点在vim用多了之后会更有体会。

(2) vim初始是normal模式,输入:可以进入命令模式。在normal模式下输入:q退出vim本质上是在命令模式下输入q,以退出vim。在命令模式下按下esc即可退出命令模式。

在normal模式下,按v键即可进入可视化模式,按下esc键又可以回到normal模式。

1-3vim编辑的小技巧

(1) 在编辑模式下,在我们本次编辑修改的部分,我们可以使用快捷键去修改字符

ctrl + h删除光标前面的字符

ctrl + w删除光标前面的单词

ctrl + u删除光标前面的该行所有内容

(2) 在normal模式下,可以使用hjkl来代替方向键,hjkl分别代表左,下,上,右,这样就可以在手不离开键盘的情况下移动光标。

(3) 在normal模式下,可以按gi键以跳动到从编辑模式退出时光标所在的位置,并进入编辑模式。

1-4normal模式下光标的移动方法

(1) w/W移动到下一个单词的开头,e/E移动到下一个单词的结尾,b/B移动到上一个单词的开头,其中小写的表示以非字母为分割单位(比如冒号,引号,逗号,空格都死分割单位),大写表示以空白符为分割的单位。

(2) 行间字符搜索移动,按f {char},就可以快速移动到char上面,按;/,可以移动到char的下一个字符/前一个字符。f表示从文件开始搜索字符,F表示从文件结尾开始搜索字符。

(3) 如何快速移动到一行的行首或行尾:0移动到一行的第一个字符,$移动到一行的最后一个字符。

(4) vim的页面移动gg/G移动到文件开头/结尾,可以使用ctrl+o快速返回,ngg可以快速跳转到文件第n行。

H/M/L可以快速跳转到屏幕的开头,中间,结尾

ctrl + u,ctrl + f,上下翻页,zz把当前行设置为屏幕的中间

1-5 vim自带的快速增删改查

(1) vim快速删除:在normal模式下

x快速删除光标后的一个字符。

使用d配合文本对象可以快速删除一个单词,比如daw(delete around word),dw,diw。daw表示删除光标所在的单词,包括单词旁边的空格。dw表示删除光标后面的单词,diw表示删除光标所在的单词,但不包括单词旁边的空格。dt{char}表示从光标位置删除到char之前的字符。

(2) vim的快速修改,在normal模式下

常用的有三个,r(replace),c(change),s (substitute)。

r可以替换一个字符,s删除当前字符并且进入插入模式

c可以配个文本对象快速修改一个单词,cw,ciw,caw只不过是在dw,diw,daw删除的基础上同时进入插入模式。

(3) vim的查询操作,查询单词也是一个常用的操作

使用/或者?进行前向或反向的搜索,使用n/N跳转到下一个/上一个的匹陪对象,例如/time表示搜索time这个单词,按n表示下一个。

使用*/#进行匹配,光标在一个单词上,*/#表示上一个/下一个同样的单词

1-6 vim如何进行替换

vim中替换的格式为:[range]s/{string1}/{string2}/[flags]

range表示要替换的范围,比如10,20表示10-20行,%表示全部

string1表示要替换的字符串

string2表示替换成为的字符串

flags表示标志,常用的有g(表示全局范围内执行),没有g的话,每一行只会替换一行中第一个匹配成功的。c表示确认,在进行替换时我们可以选择是否进行替换,n表示匹配的次数·,但不进行替换。

比如:%s/my/you/g, 表示把文件中所有的my替换成you。而且string1和string2都是支持正则表达式的。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有