【shell】vim使用总结

114 阅读3分钟

目录

  1. vim三种模式
  2. vim一般模式
  3. vim编辑模式
  4. vim命令模式
  5. 多文件编辑
  6. 异常处理
  7. 其他参考

1,vim三种模式

2.1 一般模式(Normal Mode)

  • 打开文档后的默认模式
  • 只能从一般模式切换到其他模式
  • 从其他模式按 Esc 返回一般模式

1.2 编辑模式(Insert Mode)

  • 从一般模式按 i、I、o、O、a、A、r、R 进入
  • 可直接编辑文本
  • 按 Esc 返回一般模式

1.3 命令模式(Command Mode)

  • 从一般模式按 :、/、? 进入
  • 可搜索、保存、退出等
  • 按 Esc 返回一般模式

2, vim一般模式

2.1 移动光标

基本移动

  • k / ↑:向上
  • j / ↓:向下
  • h / ←:向左
  • l / →:向右
  • 30k 或 30↑:向上移动 30 行

翻页

  • Ctrl + f:向下翻页
  • Ctrl + b:向上翻页
  • Ctrl + d:向下半页
  • Ctrl + u:向上半页

行内移动

  • +:下一行行首
  • -:上一行行首
  • 0 / Home:行首
  • $ / End:行尾
  • n + 空格:向后移动 n 个字符(如 20 + 空格)

屏幕位置

  • H:屏幕顶部
  • M:屏幕中间
  • L:屏幕底部

文档位置

  • G:文档最后一行
  • nG:跳转到第 n 行
  • gg:第一行
  • n + Enter:向下移动 n 行

2.2 搜索和替换

搜索

  • /word:向下搜索关键字
  • ?word:向上搜索
  • n:重复上一个搜索(同方向)
  • N:反向重复搜索

替换

  • :n1,n2s/word1/word2/g:将第 n1 到 n2 行的 word1 替换为 word2
  • :1,$s/word1/word2/gc:从第一行到最后一行替换 word1 为 word2,并确认
  • :%s/oldword/newword/g:全文替换

2.3 删除、复制和粘贴

删除

  • x:删除当前字符(相当于 Del)
  • X:删除前一个字符(相当于 Backspace)
  • nx:删除 n 个字符
  • dd:删除当前行
  • ndd:删除 n 行
  • d1G:删除从光标到第一行
  • dG:删除从光标到最后一行
  • d$:删除从光标到行尾
  • d0:删除从光标到行首

复制

  • yy:复制当前行
  • nyy:复制 n 行
  • y1G:复制从光标到第一行
  • yG:复制从光标到最后一行
  • y0:复制从光标到行首
  • y$:复制从光标到行尾

粘贴

  • p:在光标下一行/下一个字符后粘贴
  • P:在光标上一行/上一个字符前粘贴

其他操作

  • J:将下一行合并到当前行
  • u:撤销
  • Ctrl + r:重做
  • .:重复上一个动作

2.4 选择区块

选择模式

  • v:字符选择模式(移动光标选择)
  • V:行选择模式
  • Ctrl + v:块选择模式(矩形选择)

选择后操作

  • y:复制选中内容
  • d:删除选中内容
  • p:粘贴选中内容

3,vim编辑模式

进入编辑模式

从一般模式进入

  • i:在光标处插入
  • I:在行首(非空格处)插入
  • a:在光标下一个字符处插入
  • A:在行尾插入
  • o:在下一行插入新行
  • O:在上一行插入新行
  • r:替换一个字符
  • R:进入替换模式(替换多个字符)

退出编辑模式

  • Esc:返回一般模式

4,vim命令模式

4.1 文件操作

保存和退出

需从一般模式进入

  • :w:保存
  • :w!:强制保存
  • :q:退出
  • :q!:强制退出(不保存)
  • :wq:保存并退出
  • ZZ:保存并退出(有修改才保存)
  • :w [filename]:另存为
  • :r [filename]:读取文件内容插入到当前位置

部分保存

  • :n1,n2 w [filename]:将第 n1 到 n2 行保存到文件

系统命令

  • :! command:执行系统命令(如 :! ls)

5,多文件编辑

切换文件

  • :n:编辑下一个文件
  • :N:编辑上一个文件
  • :files:列出当前 vim 打开的所有文件

6,异常处理

非正常关闭后的处理

当 vim 非正常关闭后重新打开文件时,会出现暂存文件提示,选项如下:

  • Open Read-Only:只读模式打开,不修改原文件
  • Edit anyway:正常编辑,不加载临时文件
  • Recover:加载临时文件内容
  • Delete it:删除临时文件
  • Quit:退出
  • Abort:忽略并退出

7,其他参考

模式切换

  • 一般模式 ←→ 编辑模式:i/I/o/O/a/A/r/R(进入),Esc(退出)
  • 一般模式 → 命令模式:: / ?
  • 命令模式 → 一般模式:Esc

常用组合

  • gg=G:格式化整个文档
  • :%s/\s+$//g:删除行尾空格
  • :set paste:粘贴模式(避免自动缩进)
  • :set nopaste:取消粘贴模式

提示

  • 模式切换:记住 Esc 可返回一般模式
  • 数字前缀:大多数命令前可加数字(如 5dd 删除 5 行)
  • 撤销:u 可多次撤销
  • 搜索:使用 / 和 ? 搜索,n 和 N 跳转
  • 保存:编辑后记得 :w 或 :wq

网图参考

vim-cheat.png