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

相关推荐
☆璇2 小时前
【Linux】Ext系列文件系统(下)
linux·运维·服务器
crackpot·2 小时前
Linux 命令
linux·运维·服务器
所念皆为东辞2 小时前
服务器时间同步校准
linux·运维·服务器
JanelSirry4 小时前
VMware+RockyLinux+ikuai+docker+cri-docker+k8s 自用 实践笔记(一)
linux·docker·kubernetes
Misnice4 小时前
k8s 常用命令
linux·docker·kubernetes
goldenocean4 小时前
Ubuntu之旅-06 EMQX
linux·运维·ubuntu
JyHuai424 小时前
安全运维-Nginx
linux·运维·服务器
望获linux4 小时前
【实时Linux实战系列】实时安全 C++ 模式:无异常、预分配与自定义分配器
java·linux·服务器·开发语言·数据库·chrome·tomcat
IT成长日记5 小时前
【LVS入门宝典】LVS核心原理与实战:Real Server(后端服务器)高可用配置指南
linux·运维·服务器·负载均衡·lvs