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

Linux----使用vim编辑器

1. Vim 的来源和定位

  • Vim = Vi IMproved,是对 UNIX 系统自带的 vi 编辑器的增强版。

  • 属于 文本编辑器,轻量、稳定,常用在 Linux/Unix 系统里编辑配置文件、代码等。
  • 特点:模式化操作(不同模式对应不同功能),高效、可扩展。

2. Vim 的三种基本模式

Vim 是一个 多模式编辑器,与普通编辑器(比如 nano、notepad)不同:

  1. 命令模式(Normal Mode)

    • 默认进入的模式。

    • 可以移动光标、删除、复制、粘贴、撤销等。

    • 比如:dd 删除一行,yy 复制一行,p 粘贴。

  2. 插入模式(Insert Mode)

    • 进行文本输入。

    • 进入方法:i(在光标前插入)、a(在光标后插入)、o(新起一行)。

    • 退出方法:按 Esc 回到命令模式。

  3. 底线命令模式(Command-Line Mode)

    • 用于输入以 : 开头的命令。

    • 进入方法:命令模式下按 :

    • 常用命令::w 保存,:q 退出,:wq 保存并退出,:q! 强制退出。

替换模式:shift+r可以切换成替换模式,比如:

我们输入shift+r,就会变成:

此时光标在那个字符上,输入一个字符就会替换该字符,可以尝试一下,比我说要理解的更好。

3. Vim 的文件操作(底线命令模式)

1. 打开文件

vim filename

2. 保存与退出

  • 保存文件:

    :w
    
  • 退出 Vim:

    :q
    
  • 保存并退出:

    :wq
    

    :x
    
  • 强制退出(不保存):

    :q!
    
  • 输入:

    :set nu
    

    → 在每行前显示行号。

  • 关闭行号:

    :set nonu
    
  • 输入:

    :15
    

    → 跳到第 15 行。

  • 快捷键:

    • gg → 文件开头

    • G → 文件结尾

  • 向后搜索:

    /关键字
    

    → 从光标位置往下查找。

  • 向前搜索:

    ?关键字
    

    → 从光标位置往上查找。

  • 配合:

    • n → 查找下一个

    • N → 查找上一个

4. 光标移动(命令模式)

  • shift+^:移动到当前行首

  • shift+$:移动到当前行尾

  • gg:定位光标到最开始行

  • shift+g:移动到最末尾行

  • n+shift+g:定位光标到任意行,输入2+shift+g:

5. 常用编辑操作(命令模式)

  • dd:剪切、删除当前行

  • n+dd:剪切、删除当前n行

  • yy:复制当前行

  • n+yy:复制当前n行

  • p:粘贴到光标所在下一行,接yy:

  • n+p:粘贴n重复行到光标所在下一行,接n+yy,2yy和3p:

  • u:撤销(undo)

  • Ctrl+r:重做(redo)

  • w,b光标在行内跨单词移动,举例w

  • shift+~大小写切换

  • (n)r对光标及光标之后的字符进行替换

  • (n)x对光标之后的字符进行删除

多文件操作

在底行模式下,输入vs  xxx.c,可以是不存在的文件,不存在就会给创建一个该名字的文件,我这里就没有code.c,也可以起到创建文件的作用。

执行这个命令就会产生两个文件:

通过操作光标的位置来实现对不同文件的控制,比如现在光标如上所示,执行ctrl+ww就会切换到另一个文件中:

这时我可以操作test.c中的内容,我可以用上面的指令复制字符,然后通过切换光标的位置换到code.c中进行粘贴:

其实和单文件操作没多大区别,就是要注意切换光标在不同的文件中的位置

6. 配置

1. 配置文件位置

  • 用户级配置
    ~/.vimrc → 当前用户生效。

  • 系统级配置
    /etc/vimrc → 所有用户生效。

2. 常见配置选项

显示相关

set number          " 显示行号
set relativenumber  " 相对行号
set cursorline      " 高亮当前行
syntax on           " 语法高亮

缩进与 Tab

set tabstop=4       " Tab 显示为 4 个空格
set shiftwidth=4    " 自动缩进时用 4 个空格
set expandtab       " Tab 转换为空格
set autoindent      " 自动缩进
set smartindent     " 智能缩进(适合写代码)

 搜索

set ignorecase      " 搜索时忽略大小写
set smartcase       " 如果输入包含大写字母,则区分大小写
set hlsearch        " 高亮搜索结果
set incsearch       " 输入时实时搜索

文件与安全

set fileencoding=utf-8  " 设置文件编码
set nobackup            " 不生成备份文件
set noswapfile          " 不生成 .swp 临时文件
set history=1000        " 历史命令条数

 体验优化

set wildmenu        " 命令补全菜单
set showmode        " 显示当前模式
set showcmd         " 显示命令
set mouse=a         " 启用鼠标

示例 ~/.vimrc

" 显示相关
set number
set relativenumber
set cursorline
syntax on" 缩进与 Tab
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent
set smartindent" 搜索优化
set ignorecase
set smartcase
set hlsearch
set incsearch" 文件与历史
set fileencoding=utf-8
set nobackup
set noswapfile
set history=1000" 使用体验
set wildmenu
set showmode
set showcmd
set mouse=a

“Vim 的配置通常写在 ~/.vimrc 文件中,比如 set number 显示行号,set tabstop=4 设置 Tab 宽度,set expandtab 把 Tab 转换为空格,set hlsearch 开启搜索高亮,set fileencoding=utf-8 统一编码。这样可以根据个人习惯定制高效的编辑环境。”

7. Vim 的特点

  • 高效(键盘操作,无需鼠标)。

  • 稳定(几乎所有 Unix/Linux 都自带 vi/vim)。

  • 可扩展(支持插件,如 NERDTree、vim-airline)。

  • 学习曲线陡峭,但掌握后非常高效。

“Vim 是一个模式化的文本编辑器,它有三种主要模式:命令模式、插入模式和底线命令模式。通过模式切换,用户可以实现高效的文本操作,比如复制、粘贴、搜索、撤销等。Vim 常用于 Linux/Unix 系统下编辑配置文件和代码,特点是轻量、高效、可扩展。”

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

相关文章:

  • [Spring_SpringBoot_Redis] Redis stater
  • 超细整理,保险寿险项目测试项目分析+面试(详细)
  • 濮阳网站设计公司wordpress的编辑器在哪个目录
  • 【Linux】如何通过uptime查看系统负载是否过高?
  • PostgreSQL 16 Administration Cookbook 读书笔记:第10章 Performance and Concurrency
  • Elasticsearch 7.15索引模板介绍
  • 做海外房产最好的网站济南企业网站建设
  • STM32学习-UART串口通信:物理层/协议层/UART基本架构/代码实战
  • [C++——lesson11.static关键字]
  • 小说网站开发流程具体app开发公司 上海
  • 【阿里DeepResearch】写作组件WebWeaver详解
  • 汽车面向服务架构(SOA)网络安全对策
  • 视频网站用php做做视频网站需要什么职位工作
  • Git 无法访问 GitHub(Recv failure: Connection was reset)问题解决教程
  • 佛山网站设计是学校网站建设项目需求报告
  • (8)ASP.NET Core2.2 中的MVC路由一
  • pytest中的assert断言
  • C++开源库使用:nlohmann/json
  • Appium笔记
  • 找人做彩票网站多少钱专业网站优化公司报价
  • 天津平台网站建设公司东莞市南城区
  • 【开题答辩全过程】以 Java医院就医平台系统为例,包含答辩的问题和答案
  • 11.路由器的接口及其相关知识(2025年9月25日)
  • C#调用基于python打包的税务申报期限解析器exe工具
  • 沧州市东光建设局 网站技术教程优化搜索引擎整站
  • Java线程安全:synchronized锁机制详解
  • 浅谈Linux内核的LRU算法作用和原理
  • 自己做网站 最好的软件下载win10一键优化
  • Vue3 + Ant Design Vue 实现表格无限滚动加载(自定义指令版)
  • Golang语言基础篇006_Golang流程控制