侧边栏壁纸
博主头像
蜉蝣的博客博主等级

行动起来,活在当下

  • 累计撰写 39 篇文章
  • 累计创建 6 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Vim 常用操作

蜉蝣
2024-07-16 / 0 评论 / 0 点赞 / 25 阅读 / 5048 字

Vim 常用操作

Normal Mode(默认进入或【<Esc>】)

移动

左下上右

  • 单次移动:【h、j、k、l】或【方向键】
  • 移动n次:【n<移动>】,如【20j】表示下移20行

翻页

  • 向下一页:【<Ctrl>f】或【<Page Down>】
  • 向上一页:【<Ctrl>b】或【<Page Up>】
  • 向下半页:【<Ctrl>d】
  • 向上半页:【<Ctrl>u】

行内

  • 右移n个字符:【n<space>】
  • 行首:【0】或【<Home>】
  • 行尾:【$】或【<End>】
  • 行尾最后一个非空字符:【g_】

行间

  • 非空格下一行:【+】
  • 非空格上一行:【-】
  • 下移n行:【n<Enter>】
  • 文件首行:【gg】
  • 文件末行:【G】
  • 第n行:【nG】或【ngg】或【:n】
  • 当前屏幕首行:【H】
  • 当前屏幕中间行:【M】
  • 当前屏幕末行:【L】

词内与词间

  • 当前词尾:【e】
  • 当前词首:【b】
  • 下一个词首:【w】

复制、粘贴、删除

复制

  • 当前行:【yy】或【Y】
  • 向下n行:【nyy】
  • 当前行到首行:【ygg】或【y1G】
  • 当前行到末行:【yG】
  • 当前字符到行首:【y0】
  • 当前字符到行尾:【y$】
  • 全文:【ggyG】

粘贴

  • 贴在当前游标之后:【p】
  • 贴在当前游标之前:【P】

删除

  • 向后删除一个字符,相当于【<Del>】:【x】
  • 向前删除一个字符,相当于【<Backspace>】:【X】
  • 向后删除n个字符:【nx】
  • 向前删除n个字符:【nX】
  • 删除并复制当前行:【dd】
  • 删除并复制向下n行:【ndd】
  • 删除当前行到首行:【dgg】或【d1G】
  • 删除当前行到末行:【dG】
  • 向后删除当前行(含当前字符):【d$】或【D】
  • 向前删除当前行(不含当前字符):【d0】
  • 删除下一行并接在当前行尾:【J】
  • 全文:【ggdG】

撤销重做

  • 撤销上一动作:【u】
  • 重做上一动作:【<Ctrl>r】
  • 重复上一动作:【.】

查找

  • 向下查找word:【/\<word\>】
  • 向上查找word:【?\<word\>】
  • 特殊匹配规则:
    • 【\<word】、【word\>】:匹配词头、词尾
    • 【word\c】、【word\C】:不区分大小写(默认)、区分大小写
  • 查找下一个:查找状态下【n】
  • 查找上一个:查找状态下【N】

进入Insert Mode

  • 当前字符前:【i】
  • 行首第一个非空字符前:【I】
  • 当前字符后:【a】
  • 行尾字符后:【A】
  • 向下插入空行并移至空行首:【o】
  • 向上插入空行并移至空行首:【O】

进入Replace Mode

  • 替换当前字符,输入一个字符后自动返回命令模式:【r】
  • 替换多个字符:【R】

进入Command Mode

  • 进入:【:】

进入Visual Mode

  • 进入字符可视化模式:【v】
  • 进入行可视化模式:【V】
  • 进入块可视化模式:【ctrl + v】
  • 选中上一次选择的内容:【gv】

Visual Mode

模式选择

  • 【v】:以字符为单位选择
  • 【V】:以行为单位选择
  • 【ctrl + v】:以矩形块为单位选择

跳转

  • 跳转到块的对角:【o】
  • 跳转到同行对侧:【O】
  • 跳到块首并进入插入模式:【I】
  • 跳到块尾并进入插入模式:【A】

编辑

  • 删除所选块并进入插入模式:【c】

Command Mode

  • 保存:【w】
  • 退出:【q】
  • 保存并退出:【wq】或【ZZ】
  • 不保存/强制退出:【q!】或【ZQ】
  • 显示行号:【set nu】
  • 隐藏行号:【set nonu】
  • 另存为file,不退出:【w<file>】
  • 将file的内容插入到光标后:【r <file>】
  • 另存n1行到n2行的内容为file:【n1,n2 w <file>】
  • 暂时离开vim并查看执行command后的显示结果:【! <command>】

替换

  • 替换当前行中的所有word1为word2:【s/word1/word2/g】
  • 替换n1行到n2行中的所有word1为word2:【n1,n2s/word1/word2/g】
  • 全文替换所有word1为word2:【1,$s/word1/word2/g】或【%s/word1/word2/g】
  • 全文替换所有word1为word2,带确认:【1,$s/word1/word2/gc】或【%s/word1/word2/gc】

寄存器

Vim 的寄存器是一个用于暂存和管理文本的区域,允许你存储、检索和操作复制、删除、剪切、粘贴等内容。寄存器类似于剪贴板,但比普通剪贴板功能更强大,它支持多项内容存储,并且允许用户选择特定的寄存器来进行操作。

未命名寄存器("")

  • 存储最近一次的复制或删除
  • 粘贴时默认使用

数字寄存器("0 - "9)

  • "0:存储最近一次复制
  • "1 - "9:存储倒数第i次删除的内容

字母寄存器("a - "z,"A - "Z)

  • 显式存储复制或删除的内容,大写表示追加到相应小写寄存器中
  • 例:"ayy:将当前行复制到寄存器"a,"Cdw:将当前单词删除并追加到寄存器"c中

系统剪切板寄存器("*、"+)

  • 与系统剪切板进行交互的寄存器
0

评论区