Linux —— vim 编辑器

一、什么是vim

vim是一个功能强大、高度可定制的文本编辑器。以下是对vim编辑器的具体介绍:

  1. 历史背景:vim最初由Bram Moolenaar在1991年开发,作为vi编辑器的增强版,增加了许多新的特性和改进。它继承了vi的基本编辑功能和键盘快捷键,同时引入了多级撤销、语法高亮、自动缩进等现代编辑器特性。

  2. 模式系统:vim拥有多种操作模式,包括普通模式(Normal mode)、插入模式(Insert mode)和可视模式(Visual mode)等。用户可以根据需要在不同模式间切换,以实现高效的文本编辑。例如,在普通模式下,用户可以浏览文件、执行命令;在插入模式下,用户可以输入文本;在可视模式下,用户可以进行文本选择和操作。

  3. 定制性 :vim支持高度定制化,用户可以通过修改.vimrc配置文件来调整编辑器的行为,如设置快捷键、更改配色方案、安装插件等。这使得vim能够适应不同用户的工作流程和喜好,成为一个灵活且强大的编辑工具。

  4. 跨平台性:vim支持多种操作系统,包括Windows、Mac和各种Linux发行版。无论使用哪种操作系统,用户都可以使用相同的Vim技巧进行文本编辑,实现跨平台的一致性和便利性。

二、vim之间的转换

三、命令模式

(一)、基本操作

  1. 移动光标

    • h:向左移动光标一个字符。
    • j:向下移动光标一行。
    • k:向上移动光标一行。
    • l:向右移动光标一个字符。
    • w:向后移动到下一个单词的开头。
    • b:向前移动到上一个单词的开头。
    • e:移动到当前单词的末尾。
    • 0:移动到行首。
    • $:移动到行尾。
  2. 删除文本

    • x:删除光标所在位置的字符。
    • dd:删除整行。
    • dw:删除从光标位置到下一个单词开头的所有字符。
    • D:删除从光标位置到行末的所有字符。
  3. 复制文本

    • yy:复制当前行。
    • yw:复制从光标位置到单词末尾的所有字符。
    • y$:复制从光标位置到行末的所有字符。
  4. 粘贴文本

    • p:在光标下方插入已复制或剪切的文本。
    • P:在光标上方插入已复制或剪切的文本。
  5. 替换文本

    • r:按需替换单个字符。
    • R:进入逐字符替换模式,按Esc退出。
  6. 撤销和重做

    • u:撤销最近的修改操作。
    • Ctrl + r:重做被撤销的操作。

(一)、高级操作

  1. 可视模式

    • v:按字符选择文本块。
    • V:按行选择文本块。
    • Ctrl + v:按块选择文本块。
  2. 命令行模式

    • ::进入命令行模式,用于执行各种命令。
  3. 宏录制

    • qa:开始录制宏。
    • q:结束录制宏。
    • @a:播放录制的宏。

四、编辑模式

(一)、进入和退出编辑模式

  1. 进入编辑模式:在命令模式下,可以通过按下i键进入编辑模式。此外,还可以使用a、o等键从不同位置开始插入文本。

  2. 退出编辑模式:按Esc键可以退出编辑模式,返回到命令模式。

五、末行模式

  1. 保存和退出

    • :w:保存文件。
    • :q:退出Vim。
    • :wq:保存并退出。
    • :q!:强制退出,放弃未保存的更改。
  2. 返回命令模式

    • 按Esc

六、案例1

1、使用vim创建anli1文件

2、输入内容,保存退出

3、进入anli1文件,设置编号

4、查看文件内容

按i进入编辑模式,编辑完按Esc进入然后按:进入末行模式,输入wq,回车,保存退出

进入anli1使用set nu查看序号

查看文件内容

相关推荐
眠修15 分钟前
Kuberrnetes 服务发布
linux·运维·服务器
即将头秃的程序媛3 小时前
centos 7.9安装tomcat,并实现开机自启
linux·运维·centos
fangeqin3 小时前
ubuntu源码安装python3.13遇到Could not build the ssl module!解决方法
linux·python·ubuntu·openssl
爱奥尼欧5 小时前
【Linux 系统】基础IO——Linux中对文件的理解
linux·服务器·microsoft
超喜欢下雨天5 小时前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2
清沫6 小时前
键盘效率提升指南(VSCode+Vim+SurfingKeys)
前端·vim·visual studio code
tan77º6 小时前
【Linux网络编程】网络基础
linux·服务器·网络
笑衬人心。6 小时前
Ubuntu 22.04 + MySQL 8 无密码登录问题与 root 密码重置指南
linux·mysql·ubuntu
chanalbert8 小时前
CentOS系统新手指导手册
linux·运维·centos
星宸追风8 小时前
Ubuntu更换Home目录所在硬盘的过程
linux·运维·ubuntu