[Vim] Vim: 不止编辑器

Grok生成(2025年10月28日23:48:23)
DeepSeek修订(2025年10月29日21:36:27)

Vim 编辑器使用指南

1. 模式说明

普通模式

  • 默认启动模式
  • 用于移动光标、复制、删除等操作
  • 按 Esc 键从其他模式返回

插入模式

  • 用于输入文本
  • 按 i 键进入
  • 按 Esc 键返回普通模式

可视模式

  • 用于选择文本
  • 按 v 键进入字符选择
  • 按 V 键进入行选择
  • 按 Ctrl+v 键进入块选择
  • 按 Esc 键返回普通模式

命令模式

  • 用于执行命令
  • 按 : 键进入
  • 按 Enter 键执行命令

2. 基础操作

启动 Vim

vim filename.txt

保存与退出

:w                  # 保存文件
:q                  # 退出
:wq                 # 保存并退出
:q!                 # 强制退出不保存

插入文本

i                   # 在光标前插入
a                   # 在光标后插入
o                   # 在下一行插入
O                   # 在上一行插入
I                   # 在行首插入
A                   # 在行尾插入

3. 光标移动

基本移动

h                   # 左移
j                   # 下移
k                   # 上移
l                   # 右移

单词移动

w                   # 移动到下一个单词开头
b                   # 移动到上一个单词开头
e                   # 移动到单词结尾

行内移动

0                   # 移动到行首
$                   # 移动到行尾
^                   # 移动到行首非空字符

文件移动

gg                  # 移动到文件开头
G                   # 移动到文件结尾
:50                 # 移动到第50行

屏幕滚动

Ctrl+u              # 向上翻半屏
Ctrl+d              # 向下翻半屏
Ctrl+f              # 向下翻整屏
Ctrl+b              # 向上翻整屏

4. 编辑操作

删除操作

x                   # 删除光标处字符
dw                  # 删除到单词末尾
dd                  # 删除整行
d$                  # 删除到行尾
D                   # 删除到行尾

修改操作

cw                  # 修改单词
cc                  # 修改整行
c$                  # 修改到行尾
r                   # 替换单个字符
R                   # 进入替换模式

复制粘贴

yy                  # 复制整行
yw                  # 复制单词
p                   # 在光标后粘贴
P                   # 在光标前粘贴

撤销重做

u                   # 撤销
Ctrl+r              # 重做

5. 分屏操作

创建分屏

:vs filename        # 垂直分屏
:sp filename        # 水平分屏

窗口切换

Ctrl+w w            # 循环切换窗口
Ctrl+w h            # 切换到左窗口
Ctrl+w j            # 切换到下窗口
Ctrl+w k            # 切换到上窗口
Ctrl+w l            # 切换到右窗口

调整大小

Ctrl+w +            # 增加窗口高度
Ctrl+w -            # 减少窗口高度
Ctrl+w >            # 增加窗口宽度
Ctrl+w <            # 减少窗口宽度
Ctrl+w =            # 等分窗口大小

关闭分屏

:q                  # 关闭当前窗口
Ctrl+w q            # 关闭当前窗口

6. 外部命令

执行命令

:!ls                # 执行 ls 命令
:!git status        # 执行 git status

读取命令输出

:r!date             # 插入当前时间
:r!ls               # 插入目录列表

过滤文本

:!sort              # 对选中文本排序
:!grep pattern      # 对选中文本搜索

7. 宏录制

录制宏

qa                  # 开始录制到寄存器 a
操作序列            # 执行要录制的操作
q                   # 结束录制

使用宏

@a                  # 执行寄存器 a 中的宏
10@a                # 执行 10 次
@@                  # 重复上次执行的宏

8. 搜索替换

搜索

/pattern            # 向前搜索
?pattern            # 向后搜索
n                   # 下一个匹配项
N                   # 上一个匹配项
*                   # 搜索光标下的单词

替换

:%s/old/new/g       # 全局替换
:10,20s/old/new/g   # 在 10-20 行替换
:%s/old/new/gc      # 替换前确认

9. 配置 Vim

创建配置文件

vim ~/.vimrc
" 基础配置
syntax on           " 启用语法高亮
set number          " 显示行号
set cursorline      " 高亮当前行
set showcmd         " 在状态栏显示输入的命令
set wildmenu        " 命令模式补全菜单

" 搜索设置
set hlsearch        " 高亮搜索结果
set incsearch       " 实时搜索(输入时即时显示匹配结果)
set ignorecase      " 搜索时忽略大小写
set smartcase       " 智能大小写(包含大写时区分大小写)

" 缩进设置
set tabstop=4       " Tab显示为4个空格宽度
set shiftwidth=4    " 自动缩进时为4个空格
set expandtab       " 将Tab转换为空格
set autoindent      " 自动缩进

" 编码设置
set encoding=utf-8   " Vim内部编码
set fileencoding=utf-8 " 文件保存编码

10. 插件管理

安装 vim-plug

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

配置插件

call plug#begin()
Plug 'preservim/nerdtree'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
call plug#end()

安装插件

:PlugInstall

11. 实用技巧

多文件编辑

:args *.txt         # 打开所有 txt 文件
:bn                 # 下一个文件
:bp                 # 上一个文件
:bd                 # 关闭当前文件

标记位置

ma                  # 标记位置为 a
`a                  # 跳转到标记 a
'.                  # 跳转到最后修改的行

自动补全

Ctrl+n              # 下一个补全项
Ctrl+p              # 上一个补全项

折叠代码

zf                  # 创建折叠
zo                  # 打开折叠
zc                  # 关闭折叠
zd                  # 删除折叠
posted on 2025-10-28 23:50  风惊庭前叶  阅读(12)  评论(0)    收藏  举报