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]:去到第n行
    • nG:去到第n行
  • 列跳转

    • nw(word):向后跳到第n个单词的开头
    • nb(back):向前跳到第n个单词的开头
    • ne(end):向后跳到第n个单词的结尾
    • nge(go end):向前跳到第n个单词的结尾
    • -:跳到上一行开头
    • +:跳到下一行开头
    • 0(数字零):跳到本行第1个位置
2. 剪切
  • 删除字符
    • nx:从光标处起,向后删除n个字符(包括光标处字符)
    • nX:从光标向前删除n个字符(不包括光标处字符)
  • 删除单词
    • dnw:删除n个单词(删除后光标在下一个单词词首位置)
    • dne:删除n个单词(删除后光标在被删除的单词词尾的位置)
  • 删除行
    • dnd:删除n行
    • d$:从光标处删除到行尾(包括光标处字符)
    • d^:从光标前删除到行首(不包括光标处字符)
    • dt字符(delete to 字符):从光标处删除到某个字符的位置(不包括该字符)
  • 粘贴
    • p
3. 复制
  • 复制行
    • yny:复制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:全部退出
相关推荐
VidDown4 天前
VidDown 工具站:免费、本地优先的开发者工具箱
javascript·编辑器·音视频·视频编解码·视频
VidDown4 天前
显卡处理视频技术详解:从硬解码到 NVENC,GPU 如何让视频处理起飞?
javascript·编辑器·音视频·视频编解码·视频
夜猫逐梦4 天前
【UE基础】03.蓝图与编辑器工作流
编辑器·ue·蓝图·ue编辑器
VidDown4 天前
视频帧率技术详解:从 24fps 到 120fps,帧率如何影响你的观看体验?
网络·网络协议·编辑器·音视频·视频编解码·视频
爱就是恒久忍耐4 天前
VSCode里如何比较2个branch
ide·vscode·编辑器
bloglin999994 天前
vscode中可视化的合并分支,在“合并编辑器中解析”中“与基线进行比较”是什么意思
ide·vscode·编辑器
zyplayer-doc5 天前
企业知识库安全与权限管理完全指南:从加密到审计的六层防护
人工智能·安全·pdf·编辑器·创业创新
古德new5 天前
鸿蒙PC迁移:Photoflare Qt 图片编辑器鸿蒙PC适配全记录
qt·编辑器·harmonyos
春日见5 天前
vscode的AI编程插件推荐:
大数据·ide·vscode·算法·机器学习·编辑器·ai编程
jieshenai5 天前
VScode sys.path,并使CTRL+左键可访问源码
ide·vscode·编辑器