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

vim文本编辑器常用命令和快捷键

1. vim简介

vi编辑器是所有Unix及Linux系统的任何版本下标准的编辑器,类似于windows系统下的notepad(记事本)编辑器。vim可以视为vi的升级版,它比较高级,更适用于coding,vim的重点是:光标的移动、模式切换、删除、查找替换、复制粘贴、撤销命令6个命令的使用。

vim中存在3种模式:

(1) 命令模式:该模式下不能对文件进行编辑,但可以输入快捷键进行一些操作(删除行、移动光标、粘贴等)——这是打开文件后默认进入的模式;

(2) 编辑模式(输入模式):该模式下可以对文档内容进行编辑;

(3) 末行模式:可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等)。

2. vim基本命令

快捷键

功能描述

i

在当前光标位置插入文本

x

删除当前光标所在位置的字符

:w

保存文件

:q

退出vim编辑器

:q!

强制退出vim编辑器,不保存文件

:wq

保存文件并退出vim编辑器

3.vim光标移动命令

快捷键

功能描述

h

将光标向左移动一个字符

j

将光标向下移动一行

k

将光标向上移动一行

l

将光标向右移动一个字符

w

将光标移动到下一个单词的开头

e

将光标移动到当前单词的末尾

b

将光标移动到上一个单词的开头

0

将光标移动到当前行的开头

$

将光标移动到当前行的末尾

G

将光标移动到文件的末尾

gg

将光标移动到文件的开头

4. vim文本编辑命令

快捷键

功能描述

dd

删除当前行

ndd

删除当前行(包括此行)后n行文本

dG

删除光标所在行一直到文件末尾的所有内容

yy

复制当前行

o

在光标所在行的下面插入新的一行,光标停在行首

O

在光标所在行的上面插入新的一行,光标停在行首

p

粘贴已复制或删除的文本

u

撤销上一次的操作

Ctrl + r

重做上一次的操作

r

替换当前光标所在位置的字符

c

删除从当前光标位置到指定位置的文本,并进入插入模式

v

进入可视模式,选择文本

:s/<old>/<new>/g

将当前行中的<old>替换成<new>

:%s/<old>/<new>/g

将整个文件中的<old>替换成<new>

5. vim插入模式命令

快捷键

功能描述

Esc

退出插入模式

Ctrl + A / Home

将光标移动到所在行的行首

Ctrl + E / End

将光标移动到所在行的行尾

Ctrl + U

删除从当前光标位置到行首的全部内容

Ctrl + K

删除从当前光标位置到行尾的全部内容

Ctrl + W

删除光标前的单词,如果光标在单词上,则会删除光标位置到行首的全部字母

Alt + D

由光标位置开始,往右删除单词

Ctrl + Y

粘贴Ctrl + W、Alt + D、Ctrl + U和Ctrl + K快捷键删除的文本

Ctrl + T

插入一个制表符

Ctrl + 左右键

在单词间跳转

Ctrl + P

向上一行移动

Ctrl + N

向下一行移动

Ctrl + Z

将正在运行的程序放到后台执行(类似于&)

Ctrl + L

清空终端

Ctrl + D

退出当前终端

Ctrl + R

history

6. vim其他命令

快捷键

功能描述

:set nu

显示行数

:set nonu

隐藏行数

:set hlsearch

高亮显示搜索结果

:set nohlsearch

取消高亮显示搜索结果

/ + 关键词

从上往下搜索(按n来搜索下一个匹配结果,N反向搜索)

? + 关键词

从下往上搜索(按n来搜索下一个匹配结果,N反向搜索)

/<pattern>

向下搜索<pattern>

/ + 上下键

搜索历史

7. vim注释多行命令

(1) 将光标放到想要注释的行开头

(2) Ctrl+v进入列模式

(3) 用鼠标或键盘↑↓键移动光标覆盖想要注释的多行

(4) Shift+i,输入#

(5) 按下Esc即可

8. vim注释多行命令

(1) 将光标放到想要删除注释的行开头

(2) Ctrl + v进入列模式

(3) 用鼠标或键盘↑↓键移动光标覆盖想要删除注释的多行

(4) 按下x或d即可


http://www.kler.cn/a/456364.html

相关文章:

  • 使用ArcGIS/ArcGIS pro绘制六边形/三角形/菱形渔网图
  • SpringBoot对静态资源的映射规则
  • fpga系列 HDL:ModelSim显示模拟波形以及十进制格式数值
  • LVGL——基础对象篇
  • Circular Spanning Tree(树的性质)
  • 修改网络ip地址方法有哪些?常用的有这四种
  • Modern C++ std::atomic简介
  • neo4j无法导入csv文件
  • 渗透测试入门DVWA 教程1:环境搭建
  • 【WRF模拟】最高/最低日气温偏高/偏低的参数调整
  • 【Android】application@label 属性属性冲突报错
  • 潇洒郎:部署Dify, 安装Ollama,Ollama下载模型,Dify配置模型
  • JavaScript甘特图 dhtmlx-gantt
  • 面试场景题系列:设计URL短链
  • 深度学习中的参数初始化
  • Anaconda 安装与虚拟环境创建完整指南
  • jetbrains HTTPS 请求与响应流量分析报告【二】
  • C语言实践中的补充知识 Ⅶ
  • 在国产电脑上运行PDFSAM软件使用pdf分割合并交替混合处理pdf文档
  • 基于 Vant UI + Redisson BitSet 实现签到日历
  • springBoot发布https服务及调用
  • 77、将adaface的mtcnn模型npy文件转成atlas310p模型,并进行推理
  • 【Linux网络编程】第十五弹---传输层深度解析:端口号划分、UDP协议特性与TCP协议全面剖析(含连接管理、流量控制、拥塞控制等)
  • ShenNiusModularity项目源码学习(6:访问控制)
  • 设计一个基于Spring Boot开发的电商网站,部署在阿里云上
  • 【C/C++】C语言编程规范