vim的使用

1. 相关前置知识

常见的编辑器一般分类两大类

  • 记事本、word、vscode... 这些属于是所见即所得的
  • vim、nano、emacs... 这些是属于命令式的

练习vim达到熟练程度的时间会更长,但同时上限也会更高

Vim总共有三种模式

  • 普通模式(命令模式)
  • 编辑模式(插入模式)
  • 视图模式

普通模式 → 编辑模式

  • i(insert):光标前插入
  • a(append):光标后插入
  • I(shift + i):行首插入
  • A:行尾插入
  • o:从下面插入新行
  • shift + o:从上面插入新行

普通模式 → 视图模式

  • v
  • V:进入行选择模式(行优先)
  • Ctrl + v:进入块选择模式(列优先)

编辑/视图模式 → 普通模式

  • ESC

退出vim

  • :q:未修改内容退出
  • :q!:修改了内容,强制退出(不修改内容)
  • :wq:保存内容并退出

2. 命令模式

:以下命令中,当n为1时,可以省去[n],例如d1d,可直接dd。

1. 移动
  • 方向

    • h:←
    • j:↓
    • k:↑
    • l:→
  • 首尾

    • ^:行首
    • $:行尾
    • H(head):页首
    • L(last):页末
    • gg:开始
    • G:结尾
  • 翻页

    • Ctrl + f(forward):下一页
    • Ctrl + b(backward):上一页
    • Ctrl + d(down):下半页
    • Ctrl + u(up):上半页
  • 行跳转

    • n\]-:向上移动n行

    • :[n]:去到第n行

    • n\]G:去到第n行

    • n\]w(word):向后跳到第n个单词的开头

    • n\]e(end):向后跳到第n个单词的结尾

    • -:跳到上一行开头

    • +:跳到下一行开头

    • 0(数字零):跳到本行第1个位置

2. 剪切
  • 删除字符
    • n\]x:从光标处起,向后删除n个字符(包括光标处字符)

  • 删除单词
    • d[n]w:删除n个单词(删除后光标在下一个单词词首位置)
    • d[n]e:删除n个单词(删除后光标在被删除的单词词尾的位置)
  • 删除行
    • d[n]d:删除n行
    • d$:从光标处删除到行尾(包括光标处字符)
    • d^:从光标前删除到行首(不包括光标处字符)
    • dt[字符](delete to 字符):从光标处删除到某个字符的位置(不包括该字符)
  • 粘贴
    • p
3. 复制
  • 复制行
    • y[n]y:复制n行
    • :a,by:复制第a行~第b行
4. 查找
  • /pattern(正则表达式)
    • n:下一个匹配项
    • N:上一个匹配项
5. 替换
  • :s/pattern/替换项(默认只能替换光标所在行第一个匹配项)

    • :s/pattern/替换项/g(替换光标所在行所有匹配项)
    • :a,bs/pattern/替换项/g(替换第a行~第b行的所有匹配项)
    • :%s/pattern/替换项/g(全文替换)

    补充

    在大文件中,例如上千万行的文件中,全文替换替换可使用sed流编辑器来替换,速度更快。

6. 其他
  • u:撤销
  • Ctrl + r:取消撤销

3. 视图模式

1. 代码对齐
  1. 按下shift+v进入视图模式
  2. 选中需要代码对齐的行
  3. 按下等于号=
2. 多行注释
  1. 按下ctrl+v以block进入视图模式
  2. 按大写字母I,输入注释符//(此时只有第一行会被修改,不要慌)
  3. 按esc键就会全部注释掉了
3. 多行复制
  1. 按下shift+v进入视图模式
  2. 选中需要复制的行
  3. 按下y
4. 多行删除
  1. 进入需要的视图模式
  2. 选中删除的内容
  3. 按下d

4. 多窗口

1. 多窗口
  • :new [文件名]:水平多窗口
  • :vnew [文件名]:垂直多窗口
  • :sp [文件名](split):水平多窗口
  • :vsp [文件名]:垂直多窗口
  • ctrl+w,w:使光标在多个窗口来回切换
2. 多标签
  • :tabnew [文件名]:在新标签里打开
  • gt:跳到下一个标签
  • gT:跳到上一个标签

5. 其他

1. 锁定和解锁vim窗口
  • ctrl + s:锁定
  • ctrl + q:解除锁定
2. 对比两个文件的内容
  • vimdiff file1 file2
  • ]c:跳到下一个差异处
  • [c:跳到上一个差异处
  • :qa:全部退出
相关推荐
aesthetician4 分钟前
Node.js v25 重磅发布!革新与飞跃:深入探索 JavaScript 运行时的未来
javascript·node.js·vim
水月wwww5 小时前
操作系统——进程管理
linux·操作系统·vim·进程·进程调度
小蕾Java6 小时前
【VSCode】Visual Studio Code 2025安装包及安装教程 (附所有版本下载)
ide·vscode·编辑器
达子6667 小时前
用Vscode编译正点原子ESP32例程报错:ninja: error: loading ‘build.ninja‘: 系统找不到指定的文件
ide·vscode·编辑器
非凡ghost8 小时前
Typora(跨平台MarkDown编辑器) v1.12.2 中文绿色版
前端·windows·智能手机·编辑器·软件需求
小蕾Java10 小时前
【VSCode】Visual Studio Code 2024安装包及安装教程 (附所有版本下载)
ide·vscode·编辑器
初听于你12 小时前
深入了解—揭秘计算机底层奥秘
windows·tcp/ip·计算机网络·面试·架构·电脑·vim
tianyuanwo16 小时前
VSCode高效使用完全指南:提升开发效率的系统化实践
ide·vscode·编辑器
Xeon_CC1 天前
打开多个Unity编辑器时使用Visual Studio调试,弹出选择Unity实例窗口,但是没有实例
unity·编辑器·visual studio·调试·unity 调试
LXA08091 天前
VSCode 常用插件全面详解
ide·vscode·编辑器