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

【Linux】15. 详解Vim快捷操作

目录

1. 命令模式

1.1 移动光标

1.2 跳转

1.3 批量注释和反注释

1.4 删除字母

1.5 删除整行或剪切

1.6 从光标所在行删除到文件末尾

1.7 复制

1.8 粘贴

1.9 替换

1.10 撤销与反撤销

1.11 设置/取消行数

1.12 搜索

1.13 如何将代码调整整齐

1.14 保存文件

1.15 退出Vim

2. 插入模式

3. 底行模式

4. Visual模式


  • Vim包括命令模式,插入模式和底行模式,Vim进入时默认为命令模式
  • 命令模式进入插入模式:输入"i"或者"a"或者"o"
  • 命令模式进入底行模式:输入":"
  • 插入模式返回命令模式:输入"Esc"

1. 命令模式

1.1 移动光标

1.2 跳转

(1)跳转到文件开头:gg

(2)跳转到文件末尾:G

(3)跳转到行首

        ① 0:光标会跳转到行首,即index=0处,即使0处为空

        ② ^ 或 Home 键:光标会跳转到当前文字出现的首位置,即会跳过空格

(4)跳转到行尾

        ① $ 或 End 键:光标跳转到行尾,若当前已换行(意思是一行显示不完),则跳转到换行的行尾

(5)跳转到指定行

        ① 数字gg:如跳转到16行,则执行 16gg 即可

        ② :数字:如跳转到16行,则执行 :16 即可

1.3 批量注释和反注释

(1)方法一:块选择模式

        ① 注释:Ctrl+v进入Visual模式,移动上下键选择需要注释的行,按 "I" (大写的i)进入插入模式,输入 "//" ,再按 Esc 即可

        ② 取消注释:Ctrl+v进入Visual模式,移动上下左右键选择需要取消注释的行,即要选中所有的 ''//" ,按下 "d" 即可

(2)方法二:命令

        ① 注释::起始行号,结束行号s#^#注释符#g,例如16-28需要注释的命令::16,28s#^#//#g

        ② 取消注释::起始行号,结束行号s#^注释符##g,例如16-28取消注释的命令::16,28s#^//##g

1.4 删除字母

        (1)x:删除单个字母

        (2)nx:删除n个字母,例如从光标位置连续删除10个字母,可以使用10x

1.5 删除整行或剪切

        (1)dd:删除单行

        (2)ndd:删除n行

        (3):n1,n2d:删除n1-n2行

        注意:这里的 dd 既是删除也是剪贴

1.6 从光标所在行删除到文件末尾

        (1)dG:从光标所在行删除到文件末尾,d是删除行,G是文件尾,连起来就是删除到文件末尾

1.7 复制

        (1)yy:复制单行

        (2)nyy:复制n行

1.8 粘贴

        (1)小写 p:粘贴到光标的下一行

        (2)大写 P:粘贴到光标的上一行

1.9 替换

        (1)小写 r:替换光标所在的字符

        (2)大写 R:从光标所在处开始替换字符,按Esc结束

1.10 撤销与反撤销

        (1)u:撤销

        (2)Ctrl + r:反撤销

1.11 设置/取消行数

        (1)set nu:显示行数

        (2)set nonu:取消显示行数

1.12 搜索

        (1)/:从光标所在处向下搜索

        (2)?:从光标所在处向上搜索

        例如:在命令模式直接输入/MyFunc,被搜索的MyFunc会高亮显示,n向下搜索,N向上搜索

        取消高亮:输入 :noh

1.13 如何将代码调整整齐

(1)方法一:自动排版

        在命令模式下输入 gg=G 即可

        注意:确保Vim开启了适当的缩进设置,可以在.vimrc文件中添加以下设置(该文件通常在用户的home目录下)

        set tabstop=4            //设置一个Tab键的宽度为4个空格set shiftwidth=4         //设置自动缩进的宽度为4个空格set expandtab            //将Tab键转换为空格

(2)方法二:手动排版

        在Visual模式下,选中要调整的代码,按下"="键后选中的代码会自动调整

1.14 保存文件

        (1)命令模式输入:w,表示保存文件

1.15 退出Vim

        (1):q:退出

        (2):wq:保存并退出

        (3):q!:不保存强制退出

2. 插入模式

        (1)小写i:在光标所在的字符前插入

        (2)大写I:在光标所在的行首插入

        (3)小写o:在光标下插入新行

        (4)大写O:在光标上插入新行

        (5)小写a:在光标所在的字符后插入

        (5)大写A:在光标所在的行尾插入

3. 底行模式

        命令模式下输入":"进入底行模式

4. Visual模式

        Visual模式用于选择文本块,然后执行各种命令去操作文本块

        (1)普通可视模式

                在命令模式下输入小写"v"可进入,再次按小写"v"可退出

                可以通过移动光标选择任意字符形成一个矩形区域,可选择单个字符或跨行多个字符

        (2)行可视模式

                在命令模式下输入大写"V"可进入,再次按大写"V"可退出

                以行为单位文本,选择是整行文本

        (3)块可视模式

                在命令模式下输入"Ctrl + v"可进入,再次输入"Ctrl + v"可退出

                以块的形式选择文本,可以用来选择矩形区域的文本

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

相关文章:

  • Flask ORM 查询详解:Model.query vs db.session.query vs db.session.execute
  • Java Socket 基础教程
  • 新手入门 Makefile:FPGA 项目实战教程(一)
  • pnpm常用命令;为什么使用pnpm?
  • 古中医学习笔记专题文章导航
  • 【STM32入门教程】stm32简介
  • 基于 NVIDIA 生态的 Dynamo 风格分布式 LLM 推理架构
  • Kotlin Data Classes 快速上手
  • SwiftUI 页面弹窗操作
  • Windows批处理脚本自动合并当前目录下由You-get下载的未合并的音视频文件
  • Polyak-Ruppert 平均
  • UCLAMP3311T.TCT TVS二极管阵列 Semtech升特半导体 集成电路IC
  • tp5集成elasticsearch笔记
  • 20. 了解过尾递归优化吗
  • ASCII与Unicode:编码世界的奥秘
  • TLS 终止在真实业务中的防护价值
  • 36 C++ STL模板库5-string
  • Python网络爬虫(二) - 解析静态网页
  • IPTV系统:开启视听与管理的全新篇章
  • CMake 如何查找 Python2和Python3
  • 利用 Python 爬虫按图搜索 1688 商品(拍立淘)实战指南
  • 17. 如何判断一个对象是不是数组
  • 肖臻《区块链技术与应用》第十一讲:比特币核心概念重温:一文读懂私钥、交易、挖矿与网络现状
  • Redis7学习——Redis的十大类型String、List、Hash、Set、Zset
  • 解决:Gazebo连接模型数据库失败
  • linux 内核 - 内存管理概念
  • Apifox精准定义复杂API参数结构(oneOf/anyOf/allOf)
  • aave v3 存款与借款利息的计算方式
  • 码上爬第七题【协程+参数加密+响应解密+格式化检测】
  • C#面试题及详细答案120道(11-20)-- 面向对象编程(OOP)