Linux----使用vim编辑器
1. Vim 的来源和定位
Vim = Vi IMproved,是对 UNIX 系统自带的 vi 编辑器的增强版。
属于 文本编辑器,轻量、稳定,常用在 Linux/Unix 系统里编辑配置文件、代码等。
特点:模式化操作(不同模式对应不同功能),高效、可扩展。
2. Vim 的三种基本模式
Vim 是一个 多模式编辑器,与普通编辑器(比如 nano、notepad)不同:
命令模式(Normal Mode)
默认进入的模式。
可以移动光标、删除、复制、粘贴、撤销等。
比如:
dd
删除一行,yy
复制一行,p
粘贴。
插入模式(Insert Mode)
进行文本输入。
进入方法:
i
(在光标前插入)、a
(在光标后插入)、o
(新起一行)。退出方法:按
Esc
回到命令模式。
底线命令模式(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 系统下编辑配置文件和代码,特点是轻量、高效、可扩展。”