目录
前言
【Linux】Linux软件包管理器yum/apt详情请点击,今天继续介绍【Linux】Linux编辑器--vim的使用
- 从代码编写、编译、调试、运行功能集成到一款软件里,我们叫IDE(集成开发环境)
Linux中开发工具是独立的
- 写代码----编辑器----vim、vi
- 编译代码---- 编译器----gcc/g++
- 调试代码----gdb、cgdb
- 构建工具 ---- makefile、make、cmake
一、vim的基本概念
vim是多模式编辑器,本文将详细讲解最基本的三种模式:命令模式、插入模式、底行模式再另外补充两种模式:替换模式和视图模式
- 命令模式:最初使用vim打开文件时的模式就是命令模式,控制屏幕光标的移动,字符、字或行的删除,移动复制某区段
- 插入模式:只有在插入模式下才能进行代码的编写
- 底行模式:文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作
二、三种模式的转换
1、我们可以创建一个.c文件或者.cpp文件,再vim 文件名打开文件。我们还可以不创建文件,直接vim 文件名,写完代码保存退出,自动就创建了文件
2、进入文件默认在命令模式下,我们要进入编写代码模式下,即插入模式下直接输入:i
3、任何模式进入命令模式都是按下Esc
4、命令模式进入底行模式:(shift + ;)== :,底行模式中按下wq(w:保存,q:退出)退出
5、插入模式没有办法直接进入底行模式,底行模式不能直接进入插入模式,只能通过命令模式这个桥梁进行切换
三、命令模式命令集
命令模式下,一般使用键盘控制光标的移动,并不会使用鼠标定位光标,下面我将以下面代码为例介绍命令模式
为了方便观察,小编提前再底行模式下输入set nu 将行号显示
1、光标移动
shift + g
: 光标移动到最后一行gg
:光标移动到第一行n + shift + g
:光标移动到第n行, n = 2时,移动到第二行shift+4($)
:将光标定位到该行末尾shift + 6(^)
:将光标移动到该行开头
- h j k l分别将光标左、下、上、右移动,巧记方法,h在4个按键最左边,l在4个按键的最右边,j(jump)下、k(king)上
为什么有了上下左右的按键,还要hjkl?
- 这4个按键在右手边,方便、快
- 从下面这张图可以看到,早期键盘没有方向键
(n + ) w
:以单词为单位,向右移动n个单词(n + ) b
:以单词为单位,向左移动n个单词
2、行操作
-
yy
:复制当前行(n + yy:复制n行) -
p
:粘贴到当前一行到下一行(n+p,粘贴到当前行下n行)
-
dd
:删除当前行(n+dd:删除n行) -
dd+p
:剪切 -
u
:撤销操作 -
ctrl + r
:按下撤销按键u后,如果反悔了,按下ctrl + r回到u撤销前
批量化注释:(批量化插入)
ctrl + v:
h j k l :选择区域
I(shift + i):进入插入模式
//
Esc:进入命令模式
批量化去注释:(批量化删除)ctrl + v
h j k l :选择区域
d
3、字符操作
- shift+ == Esc下面的~,字符大小写转换
r
:替换光标所在位置的一个字符(n + r:替换n个字符)shift + r == R
:进入替换模式,批量化替换内容,按下Esc进入命令模式,退出替换模式x
:删除光标所在字符(连续x,向右删除),n + x:向右删除n个字符shift + x == X
:向左删除,n + shift + x:向左删除n个字符
四、底行模式命令集
w!
:【强制】保存q
:退出set nu/set nonu
:显示行号/取消显示行号/ key
:搜索功能,n:下一个!cmd
:不退出vim,直接对代码进行编译和运行%s/printf/cout/g
:将printf全部替换成cout
- 在项目中,我们一般是多个代码文件,.c、.h,在底行模式中,我们可以vs 文件名创建文件并且多文件操作
- ctrl+ww:文件之间进行跳转,光标在哪里就是对哪个文件做操作,这样就可以跨文件操作了
- 当vim退出时,光标在哪行,再次进入时光标还是在原来那行。
- 当我们代码编写出错时,报错信息会告诉我们在哪一行,这样我们vim进入文件时直接vim code.c + 报错行号,光标直接定位到那一行
五、vim编译器的简单配置
- vim在写代码的时候默认是没有代码补全、高光、自动缩进等功能,我们可以进行简单配置,但是不建议root用户配置,建议给普通用户配置
- 在我们的家目录下创建一个.vimrc的隐藏文件
- 在该文件中写入我们需要的配置保存退出即可
cpp
set nu
set tabstop=4 // 一个 Tab 键显示为 4 个空格的宽度
set softtabstop=4 // 按退格键时可以一次删除 4 个空格
set shiftwidth=4 // 自动缩进时的宽度为 4 个空格
- 当我们简单配置号之后,我们再使用vim进行代码编写的时候就可以有对应的功能