vim的使用

目录

1. 什么是vim

2. vim的配置

2.1 .vimrc配置文件

2.2 基本的vim配置操作

2.2.1 设置行号

2.2.2 设置高亮

2.2.3 设置Tab宽度

2.2.4 设置自动缩进 

 2.2.5 一键配置

3. vim的基本操作 

3.1 vim打开文件

3.2 vim的三种模式及操作

3.3 常见命令

3.3.1 命令模式下的命令

3.3.2 底行模式下的命令


1. 什么是vim

vim是一种文本编辑器,是Vi编辑器的升级版。因此vim不能像IDE(集成开发环境,Integrated Development Environment)一样,将代码的编辑和编译工作一步完成,vim的功能类似于一个记事本,只能够帮助我们进行代码的编写

vim是一个自由软件,可在多种操作系统上使用,包括Unix,Linux,Windows和Mac OS X等。vim具有许多强大的功能,例如多窗口编辑,语法高亮,自动补全,文本对象选择,宏录制,代码调试等。Vim还有许多插件和脚本,可以扩展其功能和自定义其外观。由于Vim的高度可定制性和强大的功能,它在程序员和系统管理员之间非常流行,经常用于编辑配置文件,编写脚本,处理文本等任务

2. vim的配置

2.1 .vimrc配置文件

vim很难用,原因之一就是许多对于文本编辑器而言强大的功能需要我们自己进行配置 

vim的配置文件名为.vimrc,一般在home目录下,如果home目录下没有,使用 touch .vimrc 命令创建一个

vim的使用_第1张图片

.vimrc在用户的home目录下,代表是用户自己所拥有的,Linux下每一个用户都可以有自己的.vimrc配置文件,.vimrc里面的配置仅对这个用户生效,当你打开vim时,会读取自己.vimrc里的配置信息

2.2 基本的vim配置操作

当我们对vim没有进行任何配置时,也就是说.vimrc内为空,敲代码的感觉类似下面,难用啊~

vim的使用_第2张图片

 使用vim 打开.vimrc文件进行配置

2.2.1 设置行号

set number 或者 set nu

vim的使用_第3张图片

2.2.2 设置高亮

syntax on

vim的使用_第4张图片

2.2.3 设置Tab宽度

set tabstop=4     // 想设置多少就设置多少
set shiftwidth=4
set expandtab

vim的使用_第5张图片

2.2.4 设置自动缩进 

set autoindent  // 与上一行缩进保持一致

vim的使用_第6张图片

 2.2.5 一键配置

vim的配置选项有很多,同时还存在很多插件,本文不一一介绍,可以去网上搜索,但是vim的配置一来比较麻烦,二来在以后开发时不一定使用vim,因此不必过多了解

这里介绍一个一键配置vim的开源项目, VimForCpp

VimForCpp: 快速将vim打造成c++ IDE (gitee.com)https://gitee.com/HGtz2222/VimForCpp?_from=gitee_search根据里面的参考手册可以一键配置好vim,满足日常使用大部分功能

安装好之后vim的配置就算完成了

vim的使用_第7张图片

但是这个项目的Tab缩进是2,如果不满意需要手动改一下 

vim的使用_第8张图片

3. vim的基本操作 

3.1 vim打开文件

对于已经存在的文件,直接使用vim+文件名打开

vim的使用_第9张图片

对于不存在的文件,直接使用vim+文件名会在当前路径下创建一个新的文件,新文件名就是输入的文件名

vim的使用_第10张图片

3.2 vim的三种模式及操作

vim是一款多模式的编辑器,有三种模式

  • 命令/正常/普通模式(command mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
  • 插入模式(Insert mode)只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式
  • 底行模式(last line mode)文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入

vim的使用_第11张图片

使用vim需要经常在这三种模式中进行切换,切换的方式为

  • 命令模式 → 插入模式
            1. i - 从光标当前位置开始输入文字
            2. a - 从目前光标所在位置的下一个位置开始输入文字
            3. o - 插入新的一行,从行首开始输入文字
            4. A - 在行尾输入文字
  • 命令模式 → 底行模式: shift + :(等价于输入 ; )
  • 插入模式或底行模式 → 命令模式: Esc键
  • 插入模式和底行模式不能直接切换,须由命令模式作为中转站

可以通过观察左下角的 NORMAL  INSERT  COMMAND 来观察处于何种模式 

 命令模式 → 插入模式

vim的使用_第12张图片

 命令模式 → 底行模式

vim的使用_第13张图片

插入模式或底行模式 → 命令模式

vim的使用_第14张图片

使用vim打开一个文件之后,默认处在命令模式下,这个时候需要切换成插入模式才能进行文本的输入,也就是代码的编写

完成代码的编写后,需要按下 shift + :进行底行模式输入 q 退出,退出时有几种输入

  • : w (保存当前文件)
  • : wq (输入「wq」,保存文件并退出vim)
  • : q! (输入q!,不保存文件并强制退出vim)
  • : wq! (强制保存文件并退出vim)

3.3 常见命令

3.3.1 命令模式下的命令

复制
yw:  将光标所在之处到字尾的字符复制到缓冲区中
nyw:复制n个字到缓冲区
yy:   复制光标所在行到缓冲区
nyy: 例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字
p:     将缓冲区内的字符贴到光标所在位置

#p:   将缓冲区内的字符复制n次再粘贴到光标所在位置

注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能

yw复制的是单词,从光标所在位置到这个单词的结尾,这里光标一开始在字母i处,yw复制的是printf中 字母 i 及之后的ntf;当使用3yw复制时,可以看到复制的是 intf("hello,其中三个单词分别是intf 、(" 和 Hello 

vim的使用_第15张图片

yy复制的是光标所在行,复制一行内容时,光标可以在这行的任意位置

2yy可以一次性复制两行

vim的使用_第16张图片

使用yw或yy复制内容到缓冲区后,按p将缓冲区内容粘贴出来

2p可以一次性粘贴两次

vim的使用_第17张图片

撤销上一次操作

u:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复
ctrl + r:撤销的恢复

先复制,再粘贴,接着把粘贴的操作撤销掉,最后把撤销掉的操作恢复 (yy + p + u + ctrl r)

vim的使用_第18张图片

移动光标

vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
按「G」(shift + g):定位光标到文件的最后

按「n + shift + g」:定位光标到文件的第n行

按「gg」:定位光标到文件的开头
按「$」(shift + 4):移动到光标所在行的“行尾”
按「^」(shift + 6):移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「nl」:光标移到该行的第n个位置,如:5l,56l
按[shift+g]:进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页
按「ctrl」+「d」:屏幕往“前”移动半页

删除

x:  每按一次,删除光标所在位置的一个字符
nx:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
X:  大写的X,每按一次,删除光标所在位置的“前面”一个字符
nX:例如,「20X」表示删除光标所在位置的“前面”20个字符
dd: 删除光标所在行
ndd:从光标所在行开始删除#行

dd较为常用,这里的操作是(dd + 2dd + p),先删除一行,再删除两行,再按p可将删除的内容粘贴出来,其效果类似于剪切

vim的使用_第19张图片

大小写切换

shitf + ~:可以将字母的大小写切换,一次切换一个字母,一直按住可以连续切换

vim的使用_第20张图片

替换

r:替换光标所在处的字符

nr:替换光标所在处开始的n个字符

R(shift + r):替换光标所到之处的字符,直到按下「ESC」键为止

r一次只能替换一个字符, shift + r之后会进入替换模式(注意左下角),可以连续替换字符

这里的操作是(r e    2r p   shift+r eeeee)

vim的使用_第21张图片

多行编辑

Ctrl + v进入可视块模式(visual block mode),移动光标键选择要编辑的区域,再使用修改命令进行编辑

vim中一次性注释多行的操作

  1. 按住 ctrl+v 进入块模式,左下角变成V-BLOCK
  2. 使用 j 或 k选中批量化注释的行(这里不能使用方向键选择),选择过的行会变成黄色
  3. shift + i进入插入模式,左下角变成INSERT
  4. 输入注释符号 // 
  5. 按Esc键退出

vim的使用_第22张图片

3.3.2 底行模式下的命令

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按 shift + :即可进入末行模式

列出行号

set nu: 输入「set nu」后,会在文件中的每一行前面列出行号

set nonu:取消行号

经过配置的vim不再需要使用这个操作来调出行号 

保存文件和离开vim

: w     保存当前文件

: wq   输入「wq」,保存文件并退出vim

: q!     输入q!,不保存文件并强制退出vim

: wq!  强制保存文件并退出vim

多屏操作

vs :对比操作,可以实现两个文件的分屏操作

ctrl + ww:ctrl按住,w快速按两下,可以实现文件间的切换

光标在哪个分屏文件中,此时操作的就是那个文件的内容

vim的使用_第23张图片

vim中执行命令行代码

:!+ cmd 可以不用退出vim,就可以执行命令行应用

可以直接在vim中使用gcc对我们的代码进行编译和运行

vim的使用_第24张图片

也可也直接在vim中使用man手册

vim的使用_第25张图片

查找字符

/关键字: 先按「/」键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按「n」会往后寻找到关键字为止

?关键字:先按「?」键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按「n」会往后寻找到关键字为止

这二者的区别是: / 命令用于向前查找文本,而 ? 命令用于向后查找文本

vim的使用_第26张图片

跳到文件中的某一行

: #「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文件的第15行

vim的使用_第27张图片

你可能感兴趣的:(linux,vim,linux)