Linux-vim的使用和配置

一、vim的基础概念

vim的三种模式,分别是命令模式(command mode)、插入模式(insert mode)、底行模式(lastline mode),各模式的功能区分如下:

命令模式(command mode)

控制着光标的移动、字符、字或行的删除,移动或复制行或段落。以及进入插入模式或底行模式。

插入模式(insert mode)

只有在插入模式下才能做文字的输入,按esc即可退回命令模式。

底行模式(lastline mode)

执行文件的保存或退出,也可以执行文件的替换,查找字符串列出行号等操作,按esc可退回命令模式。

三中模式之间的切换方式:

从命令模式到插入模式:按键盘 i 。

从插入模式回退至命令模式:按键盘 esc 。

从命令模式到底行模式:按键盘 shift + ; 组合键。

从底行模式回退至命令模式:按键盘 esc 。

底行模式和插入模式之间不能相互直接切换。

二、vim的基本操作

1.使用vim进入文件test.c

vim 文件名

cpp 复制代码
[xxl@VM-0-2-centos ~]$ vim test.c

使用vim进入文件后是处于命名模式中,需要切换到插入模式中才能进行文本的输入和编辑。

2.退出vim并保存文件

需要切换到底行模式才能进行文件的保存和退出。

输入 w :保存当前文件

输入 wq :保存文件并退出

输入 q!:强制退出

三、vim命令模式的命令集

vim的键盘图

插入模式

按 i 进入插入模式后是从光标当前位置开始输入文本。

按 a 进入插入模式后是总光标的下一个位置开始输入文本。

按 o 进入插入模式后是插入新的一行,从行首开始输入文本。

移动光标

vim可以直接使用键盘上的按键来直接移动光标h、j、k、l分别控制着光标左、下、上、右移动一格。

按两次g gg :将光标定位到文本开始的位置。

按组合键 shift + g G :将光标定位到文本的结尾处。

按组合键 数字n + shift + g nG :将光标定位到文本的第n行。

按组合键 shift + 4 $ :将光标定位到行首。

按组合键 shift + 6 \^ :将光标定位到行末。

按 w、b、e :光标会按照单词符进行行内移动,w(光标跳到下个单词的开头),e(光标跳到下个单词的结尾),b(光标跳到上个单词的开头)。

删除文字

按 x :每按一次,删除光标所在位置的一个字符。

按 数字n + x nx :删除光标所在位置及后面的共n个字符。

按组合键 shift + x X :删除光标前面的一个字符。

按组合键 数字n + shift + x nX :删除光标所在行前面的n个字符。

按两次 d dd :删除光标所在行。

按组合键 数字n + dd ndd :从光标所在行开始删除n行。

复制

按两次 y yy :将光标所在行复制到缓冲区。

按组合键 数字n + yy nyy :从光标所在行开始复制n行到缓冲区。

按 p :将缓冲区内复制的内容粘贴到光标所在位置。

替换

按 r :替换光标所在处的字符,例如某个字符输错了可以按r替换。

按组合键 shift + r R :一直替换光标位置的字符,直到按esc退出替换模式。

撤销

按 u :撤销上一次的操作。

按组合键 ctrl + r :恢复撤销的操作。

四、vim底行模式的命令集

按esc键从底行模式回退至命令行模式,按组合键 shift + ; : 从命令行模式进入底行模式。

列出行号

输入 set nu set nu :会在文件的每一行前面列出行号。

输入 set nonu set nonu :取消每一行的行号。

跳到文件的某一行

输入 数字n + enter :可以直接跳到文件的第n行。

查找字符

输入 / + 关键字 :可以查找关键字,如果不是自己想找的关键字可以按 n 继续向后查找。

输入 ?+ 关键字 :可以查找关键字,如果不是自己想找的关键字可以按n继续向后查找。

保存文件

输入 w :可以保存文件。

输入 w!:强制保存。

退出vim

输入 q :直接退出。

输入 q!:强制退出。

输入 wq :保存并退出。

输入 wq!:强制保存并退出。

五、简单vim的配置

普通用户配置文件的位置

1.输入 cd \~ 指令进入普通用户所在的家目录位置。

2.输入 vim .vimrc 指令创建一个.vimrc隐藏文件。

常用的一些配置选项

cpp 复制代码
//设置行号
set nu

//语法高亮
syntax on

//设置允许使用光标
set mouse=a

//按下tap缩进4格
set softtabstop=4

//显示当前列
set cuc

//显示当前行
set cursorline

//显示括号匹配
set showmatch

//设置自动缩进长度为4格
set shiftwidth=4

//继承前一行的缩进格式
set autoindent

//自动补全
:inoremap ( ()<ESC>i

:inoremap ) <c-r>=ClosePair(')')<CR>

:inoremap { {<CR>}<ESC>O

:inoremap } <c-r>=ClosePair('}')<CR>

:inoremap [ []<ESC>i

:inoremap ] <c-r>=ClosePair(']')<CR>

:inoremap " ""<ESC>i

:inoremap ' ''<ESC>i
相关推荐
GeW16 小时前
新质生产力路线图Linux、数据库、国产化替代一次讲透
linux
aningx18 小时前
cachyos 从 GRUB 切换到 rEFInd
linux
第404号工位19 小时前
40块钱二手瘦客户端,如何跑满家庭物联网中枢?(拒绝Docker爆盘实录)
linux·架构·node.js
骑着蜗牛撵大象32721 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
..Dauntless..21 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
QMCY_jason21 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特21 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
あ-1 天前
CubeSandBox配置CubeMaster CPU 超分
linux·运维·服务器
Escalating_xu1 天前
【Linux 网络编程】TCP Socket 编程(上):从 listen、accept 到完整回显通信
linux·网络·tcp/ip
老秦包你会1 天前
Linux第十课---------Linux信号
linux