Vim忍者必备

图片[1]-Vim 高效操作终极指南:从入门到精通的武林秘籍

📖 一、Vim 核心理念

要精通Vim,首先要理解其核心语法:操作符 (Operator) + 动作 (Motion)

  • 操作符:定义要“做什么”,例如 d (删除), y (复制), c (修改)。
  • 动作:定义操作的“范围”,例如 w (一个单词), $ (到行尾), } (一个段落)。

组合起来,你就能创造出无限可能:dw (删除一个单词), y$ (复制到行尾), c} (修改整个段落)。


🚀 二、基础生存法则 (入门必会)

命令功能描述
模式切换 
i在光标进入插入模式 (Insert)
a在光标进入插入模式 (Append)
o在当前行下方新建一行并进入插入模式 (Open)
Esc从插入或可视模式返回到普通模式 (Normal Mode)
保存与退出 (命令行模式) 
:w保存文件
:q退出
:wq保存并退出
:q!强制退出 (不保存修改)
:x保存并退出 (仅在文件有修改时才写入)
ZZ(普通模式下) 保存并退出,等同于 :wq

🎯 三、光标移动 (Motion)

1. 基本移动

命令功能描述
h j k l左、下、上、右
w向前移动到下一个单词词首
b向后移动到上一个单词词首
0移动到行首 (第0列)
^移动到行首的第一个非空白字符
$移动到行尾
gg跳转到文件第一行
G跳转到文件最后一行
:nnG跳转到第 n

2. 翻页与屏幕移动

命令功能描述
Ctrl + f向下翻一页 (Forward)
Ctrl + b向上翻一页 (Backward)
Ctrl + d向下翻半页 (Down)
Ctrl + u向上翻半页 (Up)
H移动到屏幕顶部 (Head)
M移动到屏幕中部 (Middle)
L移动到屏幕底部 (Low)

✍️ 四、文本编辑 (常用操作)

1. 删除 / 剪切 (Delete / Cut)

命令功能描述
x删除光标下的字符 (等同于 dl)
X删除光标前的字符 (等同于 dh)
dd删除/剪切当前行
ndd删除/剪切从当前行开始的 n 行 (如 5dd)
dw删除一个单词
d$D从光标删除到行尾
d0从光标删除到行首
dG删除到文件末尾
dgg删除到文件开头

2. 复制 (Copy / Yank)

命令功能描述
yy复制当前行
nyy复制从当前行开始的 n 行 (如 5yy)
yw复制一个单词
y$复制到行尾
y0复制到行首
yG复制到文件末尾
ygg复制到文件开头

3. 粘贴 (Paste)

命令功能描述
p在光标粘贴 (如果复制的是行,则在当前行粘贴)
P在光标粘贴 (如果复制的是行,则在当前行粘贴)

4. 修改 (Change)

命令功能描述
ccS删除当前行并进入插入模式
cw修改一个单词 (删除单词后进入插入模式)
c$C修改至行尾 (删除至行尾后进入插入模式)
r替换光标下的单个字符 (Replace)
~切换光标下字符的大小写
J合并当前行与下一行
.重复上一个修改命令 (极其强大!)

5. 撤销与重做

命令功能描述
u撤销上一步操作 (Undo)
Ctrl + r重做 (Redo)

👁️ 五、可视化模式 (Visual Mode)

进入可视化模式后,可以移动光标来选择文本块,然后执行操作符(如d, y, c)。

命令模式功能描述
v字符选择按字符为单位选择文本
V选择按行为单位选择文本
Ctrl + v选择进行矩形块选择,可实现列编辑

列编辑实用技巧 (Ctrl+v)

  1. Ctrl + v 进入块选择模式。
  2. 使用 j, kG 选择需要编辑的列。
  3. I (大写I) 进入行首插入模式,输入要添加的内容。
  4. Esc,你输入的内容会奇迹般地应用到所有选中的行。
  5. 同样,选中后按 <> 可以实现整块的左右缩进。

🔍 六、查找与替换 (命令行模式)

1. 查找

命令功能描述
/pattern从上到下查找 pattern
?pattern从下到上查找 pattern
n跳转到下一个匹配项
N跳转到上一个匹配项
:set hlsearch设置搜索结果高亮 (可写入~/.vimrc永久生效)
:nohlsearch:noh取消当前搜索的高亮

2. 替换

语法: :[范围]s/查找内容/替换内容/[标志]

  • 范围:
    • %: 全文
    • n,m: 从第n行到第m行
  • 标志:
    • g: (global) 替换行内所有匹配项,不加则只替换第一个。
    • c: (confirm) 每次替换前进行确认。
    • i: (ignorecase) 忽略大小写。
命令功能描述
:%s/old/new/g全文将 old 替换为 new
:1,$s/old/new/gc全文替换,每次替换前提示确认
:%s/^\s\+//g删除所有行首的空白
:%s/\s\+$//g删除所有行尾的空白
:%s/^M//g删除 ^M 字符 (输入 ^M 需按 Ctrl+v 再按 Ctrl+m)

🪟 七、窗口与多文件管理

1. 多文件/窗口

命令功能描述
vim file1 file2同时打开多个文件
:sp file:new file水平分割窗口,打开新文件
:vsp file:vnew file垂直分割窗口,打开新文件
Ctrl + w w在不同窗口间循环切换
Ctrl + w + h/j/k/l切换到左/下/上/右侧的窗口
:close:q关闭当前窗口
:only只保留当前窗口,关闭其他所有窗口

2. 标签页 (Tabs)

命令功能描述
vim -p file1 file2以标签页形式打开多个文件
:tabnew file在新标签页中打开文件
gt:tabn切换到下一个标签页
gT:tabp切换到上一个标签页
ntabn(n为数字) 跳转到第 n 个标签页
:tabc关闭当前标签页
:tabo只保留当前标签页,关闭其他

🛠️ 八、高级技巧与设置

命令功能描述
文件信息与格式 
Ctrl + g显示当前文件名、路径及文件状态
:set nu / :set nonu显示/隐藏行号
:set paste / :set nopaste进入/退出粘贴模式 (防止自动缩进搞乱格式)
:set ai / :set noai启用/禁用自动缩进
剪贴板交互 
:reg查看所有寄存器内容
"+y(可视化模式下) 复制选中内容到系统剪贴板
"+p粘贴系统剪贴板的内容
行操作 
:m n将当前行移动到第 n 行之后
:13m14将第 13 行移动到第 14 行之后
g/pattern/d删除所有包含 pattern 的行
g!/pattern/dv/pattern/d删除所有包含 pattern 的行
文件加解密 
vim -x file创建或编辑一个加密文件
:X为当前文件设置密码
启动时定位 
vim +n filename打开文件并直接跳转到第 n
vim + filename打开文件并直接跳转到最后一行
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享