当前位置: 首页 > news >正文

vim及其模式的操作

vim介绍

    Vim是一个强大的文本编辑器,全称叫Vi IMproved,而vi则是Visual Interface的缩写,他们处理都是ASCII码字符数据;vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。


vim的基础操作

    vim打开文件操作

操作作用
vim 文件名打开文件,如果没有该文件就自动创建一个文件
vim -r 文件名当vim崩溃时,打开因崩溃没保存的文件
vim -R 文件名以只读方式打开文件
vim -On 文件名1 文件名2 ...左右分屏并同时打开或创建文件夹1,文件夹2...
vim -on 文件名1 文件名2 ...上下分屏并同时打开或创建文件夹1,文件夹2...

vim的三种模式功能

正常/普通/命令模式(Normal mode)

    控制屏幕光标的移动,字符,字或行的删除,移动复制某区域及进入Insert mode下,或到last line mode。 

插入模式(Insert mode)

    只有在Insert mode下,才能进行文本输入,按【esc】键返回命令行模式。

末行/底行模式(last line mode)

    用于文本的保存退出,也可以进行文件替换,找字符串,列行号等操作


vim的三种基础模式的切换方式


vim的操作

    注意,所有的 shift + 小写字母 命令都可自行切换成大写输入,如 shift 键 + a 命令可直接通过键盘的大写输入输入 A 也可实现命令

(输入前请确认键盘的大小写输入)

命令行模式的操作

    如何进入命令行模式?任意模式下点按esc键即可进入命令行模式。

    进入命令行模式后,可直接通过键盘输入指定命令实现指定功能

光标操作

操作作用
h
j
k
l
shift 键 + g

移动到文本末尾

gg移动到文本首位

shift 键 + 4

移动到所在光标行的行尾
shift 键 + 6移动到所在光标行的行首
w光标移动到下一个词(字段)的首字母(字)
e光标移动到下一个词(字段)的结尾字母(字)
b光标回到上一个词(字段)的首字母(字)
n + l

n为数字,光标移到该行第n个字符位置

ctrl 键 + b屏幕向上移一页
ctrl 键 + f屏幕向下移一页
ctrl 键 + u屏幕向上移半页
ctrl 键 + d屏幕向下移半页

删除操作

操作作用
x删除光标所在字符
n + xn为数字,删除光标所在位置及之后共n个字符
shift 键 + x删除光标所在字符的前一个字符
n + shift 键 + xn为数字,删除光标所在位置的前n个字符
dd删除光标所在行
n + ddn为数字,删除光标所在行及以下共n行

复制操作

操作作用
yw将从光标所在处到行尾复制到缓冲区
n + ywn为数字,将从光标起往后共n个字符复制到缓冲区
yy将光标所在行复制到缓冲区
n + yyn为数字,将从光标所在行起往下共n行复制到缓冲区
p将缓冲区内的字符粘贴到光标所在位置(即粘贴功能
n + pn为数字,将缓冲区的字符粘贴n次

替换操作

操作作用
r + 字符可对光标所在字符进行修改替换
n + r + 字符n为数字,在当前行内,替换光标起n个字符
shift 键 + r进入替换功能,在光标处输入时变为替换功能,esc键退出

撤销操作

操作作用
u返回上一次操作
shift键 + u撤销当前行所有编辑
ctrl 键 + r撤销 u 的撤销操作

更改操作

操作作用
cw更改光标所在处的字符起到该段字符串尾的字符
c + n + wn为数字,修改光标字符起到其后n个字符串,如c3w为修改三个字符串

跳至指定行操作

操作作用
ctrl 键 + g右下角显示所在行数
n + shift 键 + gn为数字,光标跳转至n行行首

窗口操作

    注意:关于窗口操作,所有的 ctrl 键 + w + XXX 的操作,都需要先按住 ctrl 键 + w 后再输入后面的字母

操作作用
shift 键 + `快速切换光标所在位置字母的大小写
ctrl 键 + w + s上下分割当前文件
ctrl 键 + w + v左右分割当前文件
ctrl 键 + w + q关闭窗口,如果剩最后一个窗口,则退出vim
ctrl 键 + w + w把光标移动到下一个窗口
ctrl 键 + w + h/j/k/l光标移动到(左、下、上、右)边窗口
ctrl 键 + w + H/J/K/L(左、下、上、右)移动窗口


插入模式

    如何进入插入模式?可通过命令行模式输入i、a、o等进入插入模式。

    进入插入模式后即可对文本进行编辑。

命令行进入插入模式的命令操作

操作作用
i直接在光标处进入插入模式
a从光标后一位进入插入模式
o在光标下边新开一行再进入插入模式
shift 键 + i从当前行首进入插入模式
shift 键 + a从当前行尾进入插入模式
shift 键 + o在光标上边新开一行再进入插入模式

底行模式的操作

    如何进入底行模式?可通过命令模式下通过输入命令 shift 键 + ; 进入底行模式。

    进入底行模式后可在底行输入命令然后按回车键来实现指定功能。

底行模式的基本操作

操作用处
w保存
w!强制
q退出
q!强制退出
wq保存并退出
wq!保存并强制退出
set nu行号显示
set nonu取消行号显示
nn为数字,光标跳转至文件的第n行行首
/ + 关键字查找关键字,回车键后可通过按 n 跳至下一个关键词位置
?+ 关键字查找关键字,回车键后可通过按 n 跳至上一个关键词位置

替换操作

操作作用
s/a1/a2替换光标所在行的第一个a1成a2
s/a1/a2/g替换光标所在行的所有a1成a2
%s/a1/a2替换所有行的第一个a1成a2
%s/a1/a2/g替换所有行的a1成a2
n1,n2 + s/a1/a2n1,n2为数字,替换n1到n2行所有行的第一个a1成a2
n1,n2 + s/a1/a2/gn1,n2为数字,替换n1到n2行所有的a1成a2

窗口操作

操作作用
sp水平分屏
vsp垂直分屏
qall同时退出多个屏幕
wqall同时保存退出多个屏幕
vsp 文件名左右分割并打开一个新文件
sp 文件名上下分割并打开一个新文件

额外知识

    当vim文件未保存退出,而是闪退和或直接关闭vim时,再打开该文件会出现以下情况

    这是系统自动保存的临时文件,避免了因为意外造成的奋斗很久的成果“付之东流”

此时需要你选择如何处理该文件(看最后一行选项)

O:以只读方式打开文件。

E:不管交换文件,强制编辑文件。

R:复文件(利用交换文件恢复之前的编辑内容)。

D:删除交换文件(如果确认不需要恢复,且不会有冲突)。

Q:退出 Vim,不打开文件。

A:中止当前操作,回到之前的状态。 


    此外,在之后打开这个文档时还会弹出这个选项框,这是因为你的文件夹中存在着这个文件的隐藏临时文件

    如果在保存好文档后,后续打开时想关闭这个选项框,我们可以在当前文件夹下输入 ls -al 查看这个隐藏的临时文件,如我的文档全名加后缀为 a.c,而我的临时文件的名为 .a.c.swp

    我们可以通过 rm .a.c.swp 命令来删除 .a.c.swp 这个临时文件,删除后每次进入就不会出现选择栏


批量化注释

批量化注释

    原理:通过视图模式,可对文本进行插入修改和删除,而我们可以通过对代码前方加入 // 来实现注释的效果

    1.在命令行模式下通过 ctrl 键 + v 进入视图模式(看图片左下角单词为进入视图模式标志)

    2.通过h、j、k、l选择区域

  刚进入视图模式如1图片一样,接下来通过 h j k l(左下上右)控制方向选择代码,如下图为选择好的

    3.shift 键 + i 

  按完 shift键 + i 就如下图一样 

    4.直接输入 //

    5.按esc退出,即可对之前选择的区域自动进行同样的操作

批量化删除注释

    1.命令行模式通过 ctrl 键 + v 进入视图模式

    2. h、j、k、l 选择区域,把所有注释都选择

    3.按 d 后直接删除


今天的学习就到这吧,下次见( •̀ ω •́ )✧

http://www.dtcms.com/a/511599.html

相关文章:

  • ESP32学习笔记(基于IDF):SmartConfig一键配网
  • 黑马商城day4-微服务02
  • 哪些网站可以找到做海报的素材浙江建设厅考试成绩查询
  • Python定时爬取新闻网站头条:从零到一的自动化实践
  • 纯CSS实现多种背景图案:渐变条纹、蓝图网格、波点与棋盘效果全解析(附 Sass Mixin 封装)
  • Linux相关概念和易错知识点(48)(epoll的底层原理、epoll的工作模式、反应堆模式)
  • 植物网站设计方案如何查网站是哪家公司做的
  • Vue 2 响应式系统常见问题与解决方案(包含_demo以下划线开头命名的变量导致响应式丢失问题)
  • [人工智能-大模型-33]:模型层技术 - 大模型的神经网络架构
  • MySQL 从库延迟 10 小时——磁盘静默错误引发的惨案
  • 【go语言】gopls工具与LSP协议全面解析
  • 网站页面设计怎么做东莞软件开发培训机构
  • 《算法每日一题(1)--- 第31场蓝桥算法挑战赛》
  • 低代码开发平台有哪些:数字化深水区的核心基建与品牌全景
  • 二元 LDPC码的Tanner图表示方法
  • 基于大数据的股票推荐系统 协同过滤推荐算法 数据分析可视化 Django框架 金融数据分析(源码+文档)✅
  • diffusion model(0.4.2) 为什么$\nabla_x \log p(x)$指向概率密度更高的区域?
  • Linux小课堂: 文件归档与压缩技术之从 tar 到 gzip、bzip2 与 zip/rar 详解
  • IT科技资讯新闻类织梦网站模板定制化网站开发
  • 编程 网站建设一站式快速网站排名多少钱
  • 工厂防护鞋穿戴检测预防足部伤害 防护鞋穿戴检测 未佩戴防护鞋实时报警 基于YOLOv8的防护鞋识别算法
  • 「日拱一码」126 机器学习路线
  • react学习笔记【一】
  • Drawnix - 开源白板工具
  • 网站制作是怎么学的WordPress博客右边设置
  • go build -tags的其他用法
  • 【Unity开发】try-finally 与 try-catch 的区别详解
  • PHP数据库操作全攻略
  • 标准解读——GB/T 46353—2025《信息技术 大数据 数据资产价值评估》国家标准
  • Herm详解