Vim 编辑器使用指南

目录

1. Vim 基础概念

Vim(Vi Improved)是一个功能强大的文本编辑器,基于模式操作。理解不同模式是掌握Vim的关键。

1.1 Vim 的四种主要模式

  1. 普通模式(Normal Mode) - 默认模式,用于导航和执行命令
  2. 插入模式(Insert Mode) - 用于输入文本
  3. 命令行模式(Command-line Mode) - 用于执行Ex命令
  4. 可视化模式(Visual Mode) - 用于选择文本

2. 模式切换

2.1 进入不同模式

启动Vim后默认处于普通模式

普通模式 → 插入模式:
i    - 在光标前插入
I    - 在行首插入
a    - 在光标后插入
A    - 在行尾插入
o    - 在下方新建行并插入
O    - 在上方新建行并插入
s    - 删除光标下字符并插入
S    - 删除整行并插入

普通模式 → 命令行模式:
:    - 进入命令行模式
/    - 向前搜索
?    - 向后搜索

普通模式 → 可视化模式:
v    - 字符可视化模式
V    - 行可视化模式
Ctrl+v - 块可视化模式

退出到普通模式:
Esc  - 从任何模式返回普通模式
Ctrl+[ - 同Esc键功能

2.2 模式指示

  • 普通模式:光标为块状,状态栏无特殊指示
  • 插入模式:光标为竖线,状态栏显示 -- INSERT --
  • 可视化模式:状态栏显示 -- VISUAL --
  • 命令行模式:底部出现命令行提示符

3. 普通模式快捷键

3.1 光标移动

基本移动

h    - 左移一个字符
j    - 下移一行
k    - 上移一行
l    - 右移一个字符

w    - 移动到下一个单词开头
W    - 移动到下一个空白分隔的单词开头
b    - 移动到上一个单词开头
B    - 移动到上一个空白分隔的单词开头
e    - 移动到当前单词结尾
E    - 移动到当前空白分隔单词结尾

行内移动

0    - 移动到行首
^    - 移动到行首第一个非空字符
$    - 移动到行尾
g_   - 移动到行尾最后一个非空字符

页面移动

gg   - 移动到文件开头
G    - 移动到文件结尾
数字G - 移动到指定行号
Ctrl+f - 向下翻页
Ctrl+b - 向上翻页
Ctrl+d - 向下翻半页
Ctrl+u - 向上翻半页
H    - 移动到屏幕顶部
M    - 移动到屏幕中间
L    - 移动到屏幕底部

查找移动

f字符 - 向前查找字符并移动到该位置
F字符 - 向后查找字符并移动到该位置
t字符 - 向前查找字符并移动到该字符前
T字符 - 向后查找字符并移动到该字符后
;    - 重复上次f/F/t/T命令
,    - 反向重复上次f/F/t/T命令

3.2 文本编辑

删除操作

x    - 删除光标下的字符
X    - 删除光标前的字符
dd   - 删除整行
dw   - 删除一个单词
d$   - 删除到行尾
d^   - 删除到行首
D    - 删除到行尾(同d$)
数字dd - 删除多行

复制和粘贴

yy   - 复制整行
yw   - 复制一个单词
y$   - 复制到行尾
p    - 在光标后粘贴
P    - 在光标前粘贴
数字yy - 复制多行

撤销和重做

u    - 撤销上一次操作
Ctrl+r - 重做被撤销的操作
U    - 撤销对整行的修改
.    - 重复上一次操作

替换操作

r字符 - 替换光标下的字符
R    - 进入替换模式
s    - 删除字符并进入插入模式
S    - 删除整行并进入插入模式
c    - 删除并进入插入模式(需要配合移动命令)
cw   - 删除单词并进入插入模式
cc   - 删除整行并进入插入模式
C    - 删除到行尾并进入插入模式

3.3 数字前缀

大多数命令可以使用数字前缀来重复执行:

3dd  - 删除3行
5yy  - 复制5行
4j   - 向下移动4行
2w   - 向前移动2个单词

4. 插入模式快捷键

4.1 基本输入

正常输入文字即可

4.2 插入模式下的移动

Ctrl+h - 删除前一个字符(同退格键)
Ctrl+w - 删除前一个单词
Ctrl+u - 删除到行首

4.3 插入特殊字符

Ctrl+v + 字符 - 插入控制字符
Ctrl+k + 两字符 - 插入digraph字符

5. 命令行模式

5.1 文件操作命令

:w   - 保存文件
:w filename - 另存为
:q   - 退出
:q!  - 强制退出(不保存)
:wq  - 保存并退出
:x   - 保存并退出(同:wq)
ZZ   - 保存并退出(普通模式下)
ZQ   - 不保存退出(普通模式下)

5.2 编辑命令

:e filename - 打开文件
:r filename - 读取文件内容到当前位置
:!command   - 执行shell命令

5.3 行号和跳转

:set number   - 显示行号
:set nonumber - 隐藏行号
:数字         - 跳转到指定行

6. 可视化模式

6.1 选择文本

v    - 字符选择模式
V    - 行选择模式
Ctrl+v - 块选择模式

6.2 可视化模式下的操作

d    - 删除选中文本
y    - 复制选中文本
c    - 删除选中文本并进入插入模式
>    - 向右缩进
<    - 向左缩进
u    - 转换为小写
U    - 转换为大写

7. 搜索和替换

7.1 搜索

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

7.2 替换

:s/old/new/     - 替换当前行第一个匹配
:s/old/new/g    - 替换当前行所有匹配
:%s/old/new/g   - 替换全文所有匹配
:%s/old/new/gc  - 替换全文所有匹配(确认模式)
:1,10s/old/new/g - 替换第1-10行的匹配

8. 窗口和标签页操作

8.1 窗口分割

:sp filename  - 水平分割窗口
:vsp filename - 垂直分割窗口
Ctrl+w + h    - 移动到左边窗口
Ctrl+w + j    - 移动到下边窗口
Ctrl+w + k    - 移动到上边窗口
Ctrl+w + l    - 移动到右边窗口
Ctrl+w + w    - 切换到下一个窗口
Ctrl+w + c    - 关闭当前窗口
Ctrl+w + o    - 只保留当前窗口

8.2 标签页操作

:tabnew filename - 新建标签页
:tabc           - 关闭当前标签页
:tabo           - 关闭其他标签页
gt              - 下一个标签页
gT              - 上一个标签页
数字gt          - 跳转到指定标签页

9. 高级技巧

9.1 宏录制

q字母 - 开始录制宏到指定寄存器
q     - 停止录制
@字母 - 执行宏
@@    - 重复执行上次宏

9.2 寄存器操作

"字母yy - 复制到指定寄存器
"字母p  - 从指定寄存器粘贴
:reg    - 查看所有寄存器内容

9.3 标记和跳转

m字母 - 在当前位置设置标记
'字母 - 跳转到标记位置
''    - 跳转到上次位置
`.    - 跳转到最后修改位置

9.4 折叠操作

zf   - 创建折叠
zo   - 打开折叠
zc   - 关闭折叠
za   - 切换折叠状态
zR   - 打开所有折叠
zM   - 关闭所有折叠

9.5 缩进操作

>>   - 向右缩进当前行
<<   - 向左缩进当前行
=    - 自动缩进
gg=G - 自动缩进整个文件

10. 配置文件

10.1 基本配置 (~/.vimrc)

" 显示行号
set number

" 启用语法高亮
syntax on

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

" 搜索设置
set hlsearch
set incsearch
set ignorecase
set smartcase

" 其他有用设置
set autoindent
set smartindent
set ruler
set showcmd
set showmatch

11. 实用技巧总结

  1. 学习顺序建议

    • 先掌握基本的模式切换
    • 熟练掌握hjkl移动
    • 学会基本的编辑操作(i, a, o, dd, yy, p)
    • 逐步学习更高级的功能
  2. 提高效率的关键

    • 尽量在普通模式下操作
    • 使用数字前缀重复命令
    • 学会使用点号(.)重复操作
    • 掌握快速移动命令
  3. 常见问题解决

    • 如果不知道当前在什么模式,按Esc回到普通模式
    • 意外进入替换模式时按Esc退出
    • 搜索高亮太多时用:noh清除高亮
  4. 练习建议

    • 使用vimtutor进行基础练习
    • 强制自己不使用方向键,只用hjkl
    • 每天学习一两个新的快捷键
    • 在实际编程中应用所学技巧

记住:Vim的学习曲线较陡峭,但一旦掌握,将大大提高文本编辑效率!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值