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 系统下编辑配置文件和代码,特点是轻量、高效、可扩展。"

相关推荐
☆凡尘清心☆13 小时前
CentOS Stream 9 源码编译搭建 Zabbix7.0.29 完整部署方案(部署成功)
linux·运维·centos
予昊14 小时前
Linux 资源控制实战分析:用 LXC 亲手造一个 “迷你虚拟机“
linux·运维·服务器
allforgood14 小时前
管理网络安全
linux
灵晔君14 小时前
【Linux】进程控制(一)——进程创建、进程终止与进程等待
linux·c语言·算法
wsad053214 小时前
CentOS 10 上使用 Docker Compose 部署 Discuz X5.0 论坛完整教程
linux·docker·centos·discuz
张宇Joaquin14 小时前
openEuler编译和更换内核的方法
java·linux·服务器
小此方14 小时前
Re:Linux系统篇(五十六)线程篇 · 九:基于阻塞队列的生产者消费者模型与条件变量
linux·运维·服务器
迷途之人不知返15 小时前
自动化工程的构建
linux·自动化
Escalating_xu15 小时前
【Linux】库制作与链接原理:从静态库、动态库到 ELF、重定位、GOT 与 PLT
linux·运维·服务器
三言老师1 天前
秘诀-如何远程SSN访问家里的八台电脑(frp 实操方案)
linux·运维·ssh