Java教程

Vim基础命令指南及速查

本文主要是介绍Vim基础命令指南及速查,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

  • 内容纲领
  • 查删改增
    • 0. 退出Vim
    • 1. 查
      • 以字符(char)为单位
      • 以单词(word)为单位
      • 以行(line)为单位
      • 以页(page)为单位
      • 括号域
      • 全局查找
    • 2. 删
      • 删除字符(char)
      • 删除单词(word)
      • 删除句子(sentence)
      • 删除行
      • 高阶匹配域(见章节:*组合指令)
    • 3. 改
      • 改变字符(char)
      • 其余操作与删除操作`d`一致
    • 4. 增
      • 复制粘贴既有文本
        • 查看模式
        • 可视化模式
      • 键入文本
  • 通用操作
    • undo和redo
    • 重复执行一次最近一次命令
    • 重复执行多次当前指令
  • *组合指令
    • 动词✚修饰符✚对象
      • 动词
      • 修饰符
      • 对象
      • 示例
  • *可视化模式(Visual Mode)
  • 扩展

内容纲领

本文主要面向初次或偶尔使用Vim进行文本编辑的朋友,内容以基础操作指令速查为主,旨在以较小篇幅覆盖尽可能多的基础和常见Vim操作

查删改增

0. 退出Vim

Vim默认通过查看模式(Normal Mode)打开目标文件

vim <filepath>

在查看模式下,你可以用过键入:进入Vim界面下方的命令面板

:<command>

并通过追加<command>Vim进行全局操作。

在退出Vim时,你需要根据以下几种不同情形选择适当的命令:

  • 仅查看,直接退出::x(exit)
  • 保存修改并退出:!wq:x!(write and quit)
  • 放弃修改并退出::q!

注:

  • :x相比,在没有任何内容修改的情况下使用:wq会更新目标文件的修改时间

1. 查

Vim查看模式(Normal mode)下,你可以通过不同尺度的光标移动指令快速浏览和查看目标文件内容。

以字符(char)为单位

  • h, l:以字符为单位向左、右移动光标位置
  • f<char>:(find)移动光标到下一个<char>出现的位置

以单词(word)为单位

  • w, b:以word为单位分别向下一个、上一个连续字符移动,并使得光标指示单词的首个字符位置
  • e:将光标移动到当前单词的末尾字符位置
  • *, #:将光标移动下一个、上一个出现当前单词的位置

以行(line)为单位

  • j, k:以为单位分别向下、上移动光标位置
  • 0, $:分别将光标移动到所在行的首个字符末尾字符
  • gg:直接移动光标到文本首行
  • G:直接移动光标到文本尾行
  • <number>G:移动光标到文本的第<number>

以页(page)为单位

  • ctrl + U, ctrl + D:以半页为单位分别向上、下移动光标位置
  • shift + H, shift + M, shift + L:在当前页(屏幕)内将光标移动到第一行、中间行、最后一行
  • zz:以当前光标位置为中间行显示周围页(屏幕)

括号域

  • %:移动光标到当前所在括号匹配域的括号位置

全局查找

  • :/:在全局命令面板中进入搜索模式(Search Mode)查找目标字符串,使用n, N下一个、上一个匹配项移动

2. 删

删除字符(char)

  • x:删除当前光标位置字符

删除单词(word)

  • diw:(delete inside word)删除光标所在单词

删除句子(sentence)

  • dis:(delete inside sentence)删除光标所在句子

删除行

dd:删除光标所在行

高阶匹配域(见章节:*组合指令)

  • df<char> or dt<char>:到当前行给定字符(包含/不包含目标字符)
  • d<移动指令>:删除移动路径范围字符
  • di<object>:删除给定匹配域字符

3. 改

改变字符(char)

  • s:(substitute)修改光标位置字符(进入插入模式)
  • r<target-char>:(replace)修改光标位置字符(保持查看模式)

其余操作与删除操作d一致

  • 2. 删章节中的d替换为c,也即在删除目标后进行自动切换为插入模式

4. 增

增加文本一般可以分为两种情况:

复制粘贴既有文本

在获得复制得到的文本buffer后,可通过在查看模式下键入p,粘贴buffer到光标位置。对于复制文本的情形,可根据实际情境选择不同方法实现:

查看模式

  • yyY复制当前行
  • y<移动指令>复制光标移动范围文本,如
    • 配合行移动:yj复制当前当前行及下一行
    • 配合字符移动:yl复制下一个字符
    • 配合指定行移动:ygg复制第一行到当前行等

可视化模式

  1. 在查看模式下键入v进入可视化模式,通过移动光标选中范围字符
  2. 键入y复制选中文本

键入文本

在查看模式下键入i(insert,光标位置插入)或a(append,光标位置后添加)进入插入模式

通用操作

undo和redo

  • u: undo
  • ctrl + r : redo

重复执行一次最近一次命令

  • .:在当前光标位置重复前一个执行指令

重复执行多次当前指令

  • <number><command>:连续<number>次执行<command>, 如:
    • 3j:光标向下移动三行
    • 3fc:光标移动到下文中第3次出现c的位置
    • 3ic:在光标位置进入插入模式,并连续插入3c
    • d3l:删除当前行及接下来的三行

*组合指令

动词✚修饰符✚对象

动词

  • c:(change)改
  • d:(delete)删

修饰符

  • i:(inside)在……内
  • t:(till)到……(不包括目标字符)
  • f:(find)到……(包括目标字符)

对象

  • w:(word)单词
  • s:(sentence)句子
  • t:(tag)标签
  • ([{·:对应括号内字符串
  • '":对应引号内字符串

示例

  • diw:删除当前单词
  • dis:删除当前句子
  • dt<char>:删除从光标位置开始,到目标<char>前的所有字符
  • 将以上指令中的d替换为c,则在删除基础上进入插入模式

*可视化模式(Visual Mode)

在查看模式(Normal Mode)下键入v进入可视化模式(Visul mode),并使用查看模式下的移动逻辑选取文本范围,选取文本被高亮显示。

在得到选取文本后,你可以在此基础上进行:

  • 删:使用d删除选中文本
  • 改:使用c修改选中文本(删除并进入插入模式)
  • 复制:使用y复制选中文本

扩展

  1. Interactive Vim tutorial
  2. 8 Vim Tricks That Will Take You From Beginner to Expert | by Tyler Lum | The Startup | Medium
这篇关于Vim基础命令指南及速查的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!