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

【Linux第三章】vim

【Linux第三章】Vim

Vim简介

1.什么是vim

  Vim 是一款功能强大、高度可定制的文本编辑器 ,其名称 “Vim” 是 “Vi IMproved” 的缩写,意为 Vi 编辑器的改进版

2.vim的特点

  • 多模式操作:具有命令模式、插入模式和底行模式等。命令模式下可执行各种编辑命令;插入模式用于输入文本内容;底行模式可执行保存、退出、查找替换等操作。不同模式分工明确,熟练切换能高效编辑文本。
  • 强大的命令组合:Vim 强大的编辑能力很大程度源于普通模式命令,其设计理念是命令组合。例如,“dd” 删除当前行 ,“dj” 可删除当前行和下一行(“d” 是删除 ,“j” 代表移动到下一行) ,还可指定命令重复次数,如 “2dd” 与 “dj” 效果相同。
  • 高度可定制化:用户可通过.vimrc配置文件进行个性化设置,如自定义快捷键、设置界面显示效果等;也可使用 Vim 内置编程语言 Vim script 编写插件,扩展功能。网上有大量免费的 Vim 插件和扩展可供使用。
  • 丰富的功能支持
    • 多级撤销树:支持多级树状撤销和重做操作,方便回溯和恢复操作。
    • 语法高亮:能对 550 种以上文本文件进行语法高亮显示,便于查看和编辑代码等文本。
    • 自动缩进:针对 Shell、Lisp、C/C++、Perl、Java、Ruby、Python 等 40 种以上语言,提供自动缩排功能,使代码排版更规范。
    • 搜索与替换:具备强大的搜索和替换功能,可通过简单命令实现复杂的查找和替换操作,如使用 “/string” 向下搜索字符串 “string” ,“:n1,n2s/old/new/g” 从 n1 到 n2 行将 old 替换成 new 。
    • 多文件编辑:支持多缓冲编辑、多 tab 编辑 ,可同时打开和编辑多个文件,在不同文件间切换、操作便捷。还能进行远程文件编辑。
    • 代码相关支持:代码补全、编译及错误跳转等功能丰富,深受程序员喜爱 ,在编写代码时,可快速定位错误、进行代码补全等操作。

Vim的使用

1.vim下载与基础使用

# 在Ubuntu环境下
sudo apt update # 更新软件包列表
sudo apt install vim # 安装vim
vim -v # 出现下面图片则代表安装成功

image-20250509235829308

vim共有三种模式:命令模式、插入模式、底行模式

  • 插入模式
    • i:在光标处插入内容。
    • o:在光标下一行插入新行。
    • a:在光标后一位插入。
  • 模式转换:通过Esc键可以从插入模式回到命令模式,在命令模式下输入: 可进入底行模式。命令模式下输入aio等可进入插入模式。
  • 底行模式常用命令
    • w(!):保存文件,!用于强制保存(当文件系统认为是关键文件或未保存时)。
    • q(!):退出文件,!用于强制退出。
    • wq(!):保存并退出。
    • set nu/nonu:显示 / 隐藏行号。
    • !cmd:在不退出 Vim 的情况下执行外部命令,比如查看、编译、运行等操作。
    • /搜索关键字:搜索内容,n可跳转下一个匹配项。

2.命令模式操作

  • 光标移动: 由于最开始的键盘没有方向键,所以分别使用hjkl表示左、下、上、右移动。
    • w:以单词为单位,向后移动,支持跨行。
    • b:以单词为单位,向前移动,支持跨行。
    • gg:定位到代码的第一行。
    • n+shift+g | (G):定位到代码的任意一行 / 最后一行 。
    • shift+6(^):特定一行的开始。
    • shift+4($):特定一行的结尾。
  • 文本操作
    • n yy:复制当前行(n为行数)。
    • n p:粘贴内容到当前行之后。
    • n dd:剪切 / 删除当前行(n为行数)。
    • u:撤销上一步操作。
    • ctrl + r:恢复撤销操作。
    • shift + ~(esc 下面 ~=) :文本大小写互相转化 。
    • n + r:替换光标所在字符,或者多个字符 。
    • n + x:向后删除一个字符,或者 n 个字符,输入行内操作 。
    • n + shift+x:向前删除一个字符,或者 n 个字符,输入行内操作 。
    • shift+3(#):查找同名单次,n 同单次跳转 。

3.vim补充功能

  • 批量注释
    • ctrl + v 进入可视块模式,选中要注释的区域,shift + i 进入插入模式,输入// ,然后按Esc 键,即可批量添加注释。
    • 批量删除注释:ctrl + v 选中注释区域,d 即可删除注释。
  • 多文件操作:在 Vim 中输入vs ,可以进行多文件操作,光标在哪个区,就在编辑哪个文件 。例如vim test.c +2 可以在打开test.c文件后,将光标直接定位到第二行。

Pasted image 20241123204717

4.vim配置

  Vim 的配置文件是.vimrc ,可以在其中进行各种个性化设置,比如设置默认字体、颜色、快捷键等。

  Vim配置文件分为两种,一种是全局配置文件/etc/vim/.vimrc,一种是用户配置文件/home/user/.vimrc。一种对所有用户生效,一种仅对该用户生效。在对应路径使用vim .vimrc即可进入vim配置页面。

下面是一些常用vim配置

syntax on               " 启用语法高亮
set number              " 显示行号
set tabstop=2           " 设置Tab键宽度为2个空格
set autoindent          " 启用自动缩进(新行继承前一行的缩进)
set mouse=a             " 启用鼠标支持(a表示在所有模式下可用)
set cursorline          " 高亮显示当前行
set cindent             " C语言风格的智能缩进
set shiftwidth=4        " 设置自动缩进的宽度为4个空格
set sts=4               " 设置插入模式下Tab键转换的空格数为4
set ruler               " 在状态栏显示光标位置(行号和列号)
set showmode            " 在底部显示当前模式(如INSERT、VISUAL等)
set bg=dark             " 设置暗色背景主题(影响语法高亮配色)
set hlsearch            " 高亮显示搜索结果
set laststatus=2        " 始终显示状态栏(显示文件信息和状态)

  除此之外,vim也可以进行自动化一键配置,只需要下载他人的配置文件就可以让vim使用起来更加方便。下面贴一个链接,有兴趣可以自己下载。

https://github.com/chxuan/vimplus

image-20250510001204576

5.编译相关知识(gcc/g++)

  • 快速查看文件类型.cpp.cc.cxx 等常用于 C++ 文件。不过在 Linux 系统中,文件后缀名在某些情况下意义不大,但也只是系统认为后缀无意义,gcc/g++还是会关心后缀是什么的。
  • 编译流程:对于 C/C++ 程序,一般流程是源文件 -> 预处理 -> 编译 -> 汇编 -> 链接 -> 可执行程序 。

6.补充知识

  • Vim插件:Vim 有丰富的插件生态系统,如 NERDTree(文件树插件)、CtrlP(文件搜索插件)等,可以帮助我们更好的使用vim。
  • Vim高级功能:Vim具有宏录制、寄存器使用等一些更高级的功能,这也体现了vim的强大之处。

结尾👍

  以上便是Vim的全部内容,如果有疑问或者建议都可以私信笔者交流,大家互相学习,互相进步!🌹
Vim高级功能*:Vim具有宏录制、寄存器使用等一些更高级的功能,这也体现了vim的强大之处。

相关文章:

  • 达索PLM系统是什么?有什么用?
  • 亿级流量系统架构设计与实战(六)
  • 【MySQL】事务(重点)
  • 【计算机视觉】OpenCV实战项目:FunnyMirrors:基于OpenCV的实时哈哈镜效果实现技术解析
  • PyTorch API 9 - masked, nested, 稀疏, 存储
  • Linux 阻塞和非阻塞 I/O 简明指南
  • 复习javascript
  • Python_day21
  • 基于大模型的新型隐球菌脑膜炎智能诊疗全流程系统设计与实现的技术方案文档
  • 青少年编程与数学 02-019 Rust 编程基础 05课题、复合数据类型
  • 【从零实现JsonRpc框架#1】Json库介绍
  • Edububtu 系统详解
  • ASCLL码(T^T
  • 前端进化论·JavaScript 篇 · 数据类型
  • Python面向对象编程:初识类与对象
  • 数据库故障排查指南:从连接问题和性能优化
  • 逆向学习笔记(代码)
  • leetcode504.七进制数
  • Java基础 5.10
  • JavaSE核心知识点02面向对象编程02-05(方法)
  • 1至4月全国铁路完成固定资产投资1947亿元,同比增长5.3%
  • 巴称巴控克什米尔地区11人在印方夜间炮击中身亡
  • “拼好假”的年轻人,今年有哪些旅游新玩法?
  • 巴基斯坦外长:近期军事回应是自卫措施
  • 被取消总统候选人资格,金文洙:将采取政治法律措施讨回公道
  • 【社论】以法治力量促进民企长远健康发展