Linux vi/vim 编辑器教程

vivim 是 Linux 系统中最常用的文本编辑器之一。vimvi 的增强版,提供了更多功能,如语法高亮、代码自动补全等。


1. vi/vim 的基本模式

vi/vim 有三种主要模式:

  1. 普通模式(Normal Mode):
    • 默认模式,用于浏览和操作文本。
    • ESC 键可进入普通模式。
  2. 插入模式(Insert Mode):
    • 用于编辑文本。
    • iao 等进入插入模式,按 ESC 返回普通模式。
  3. 命令模式(Command Mode):
    • 用于执行保存、退出、搜索、替换等操作。
    • 在普通模式下按 : 进入命令模式。

2. vi/vim 的基本操作

2.1 打开文件
  • 打开文件: vim <文件名>
  • 如果文件不存在,将会创建新文件。
2.2 保存和退出
  • 保存并退出: :wq
  • 仅保存: :w
  • 仅退出(无修改时): :q
  • 强制退出(放弃修改): :q!
  • 保存并强制退出: :wq!
2.3 插入模式
  • 进入插入模式:
    • 在光标前插入:i
    • 在光标后插入:a
    • 在当前行末插入:A
    • 在下一行插入:o
    • 在上一行插入:O
2.4 移动光标
  • 字符移动:
    • 向左:h
    • 向右:l
    • 向上:k
    • 向下:j
  • 单词移动:
    • 到下一个单词开头:w
    • 到当前单词末尾:e
    • 到上一个单词开头:b
  • 行内移动:
    • 移动到行首:0
    • 移动到行尾:$
  • 跳转到指定行:
    • 输入行号后按 G,如 10G 跳到第 10 行。
    • 跳到文件开头:gg
    • 跳到文件末尾:G

3. 文本操作

3.1 删除
  • 删除当前字符:x
  • 删除当前行:dd
  • 删除从光标到行末:D
  • 删除指定行数:n dd(如删除 3 行:3dd
3.2 复制和粘贴
  • 复制当前行:yy
  • 复制指定行数:n yy(如复制 3 行:3yy
  • 粘贴到光标后:p
  • 粘贴到光标前:P
3.3 撤销和恢复
  • 撤销上一步操作:u
  • 恢复撤销的操作:Ctrl + r
3.4 替换
  • 替换当前字符:r<新字符>
  • 替换当前行:cc,进入插入模式后编辑。

4. 搜索和替换

4.1 搜索
  • 向下搜索:/<关键字>,按 n 查找下一个,N 查找上一个。
  • 向上搜索:?<关键字>,按 n 查找上一个,N 查找下一个。
4.2 替换
  • 替换当前行的第一个匹配项: :s/旧字符串/新字符串/
  • 替换当前行的所有匹配项: :s/旧字符串/新字符串/g
  • 替换整个文件的所有匹配项: :%s/旧字符串/新字符串/g
  • 替换时确认每个替换: :%s/旧字符串/新字符串/gc

5. 多文件编辑

5.1 打开多个文件
  • 同时打开多个文件: vim file1 file2 file3
  • 在文件间切换:
    • 下一个文件::n
    • 上一个文件::prev
    • 查看所有打开的文件::ls
    • 切换到指定文件::buffer <编号>
5.2 分屏编辑
  • 垂直分屏::vsplit <文件名>
  • 水平分屏::split <文件名>
  • 切换屏幕:
    • 向下切换:Ctrl + w + j
    • 向上切换:Ctrl + w + k
    • 向左切换:Ctrl + w + h
    • 向右切换:Ctrl + w + l

6. 配置 vim

6.1 配置文件
  • 全局配置文件:/etc/vimrc
  • 用户配置文件:~/.vimrc
6.2 常用配置

~/.vimrc 中添加以下内容:

" 显示行号
set number

" 开启语法高亮
syntax on

" 设置缩进
set tabstop=4
set shiftwidth=4
set expandtab

" 搜索时忽略大小写
set ignorecase

" 搜索时高亮匹配
set hlsearch

" 实时显示匹配结果
set incsearch

6.3 安装插件
  1. 安装插件管理器(如 vim-plug): curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  2. ~/.vimrc 中添加插件列表: call plug#begin('~/.vim/plugged') Plug 'preservim/nerdtree' " 文件树 Plug 'vim-airline/vim-airline' " 状态栏 call plug#end()
  3. 安装插件: 在 vim 中输入: :PlugInstall

7. 常用快捷键总结

功能快捷键
进入插入模式iao
保存文件:w
退出 vim:q
强制退出:q!
删除当前行dd
复制当前行yy
粘贴p
撤销操作u
搜索/关键字
替换:s/旧/新/g
显示行号:set number
关闭行号显示:set nonumber

8. 示例操作

  1. 编辑文件vim example.txt 输入 i 进入插入模式,编辑内容后按 ESC,输入 :wq 保存并退出。
  2. 查找并替换: 在文件中查找 hello 并替换为 world:%s/hello/world/g
  3. 分屏编辑: 打开两个文件进行分屏编辑: vim -O file1 file2
  4. 配置行号和语法高亮: 在 vim 中输入: :set number :syntax on

总结

vi/vim 是功能强大的文本编辑器,适合处理代码和配置文件。掌握基本操作后,可以通过插件和配置进一步增强其功能,满足不同需求。如需更详细的说明或具体操作指导,请随时告诉我!