vim使用指南

vim使用指南

移动光标

可以使用方向键,也可以使用hjkl四个按键

h← j↓ k↑ l→

模式

img

退出vim

  1. 保存修改并退出

    :wq

  2. 直接退出

    :q!

    :q

删除命令

在插入模式使用退格进行删除

在普通模式下输入x进行删除

按键 含义
d0 删除光标从当前位置(不包含)到该行行首的所有字符
d$ 删除从光标当前位置(包含)到该行行尾的所有字符
dd 删除光标所在行的所有字符
dgg 删除光标所在行(包含)到文件开头的所有字符
dG 删除光标所在行(包含)到文件末尾的所有字符

撤销和恢复命令

按键 含义
u 撤销最后一次修改
U 撤销对整行的修改
Ctrl + r 恢复撤销的内容

剪切命令

使用 p 命令可以将最后一次删除的内容粘贴到光标之后。(大写的 P 则是粘贴到光标之前)

拷贝命令

语法跟删除的 d 命令一样:y motion

拷贝完成之后同样使用 p 命令进行粘贴

替换命令

VIM 还提供了一个简单的替换命令:r 命令。r 用于替换光标所在的字符,做法是先将光标移动到需要替换的字符处,按一下 r 键,然后输入新的字符。注意,全程无需进入插入模式,也不会进入插入模式。

替换模式:

​ 对于需要替换多个字符,更好的方案是直接进入替换模式。按下大写的 R 键,屏幕左下角出现 — REPLACE — 字样,说明你已经处于替换模式。此时输入字符可以连续替换光标及其后边的内容。注意:退格键(Backspace)在替换模式中被解释为如果左边内容被替换过,则恢复到原来的样子;如果没有被替换过,则简单的向左移动。修改完毕后,按下 Esc 回到普通模式。

文件信息

快捷键 ctrl + g 可以解决你的需求

跳转

当你的光标在文件中随意徘徊时,突然想到目标就在第 333 行的位置,你应该怎么做?假设你当前光标位于文件第 1333 行,你的做法是在普通模式下按 1000 次 k 键?

在 VIM 有两种方式可以将光标跳转到指定的位置:

  • 行号 + G
  • :行号

比如将光标跳转到第 333 行的位置,你就输入数字 333,再输入大写字母 G 即可见证奇迹;或者输入冒号(:)进入命令行模式,再输入数字 333,最后回车,也可以跳转到目的地。

定位括号

VIM 有个按键可以帮你快速定位到另一半括号,别说我没告诉你,就是 % 键。将光标移动到 (),[],{},中的任何一半括号上,按下 % 键,便可看到此时光标已经跳转到另外一半的括号上了。

缩进

你可以按一下 v 进入可视模式(左下角出现 — VISUAL — 字样),然后通过 h、j、k、l 或 其他 motion 来移动你的光标,此时光标所到之处必被一道亮光所包围(表示被选中),选择好需要缩进的目标后,只需按一下 > 即可完成任务。

搜索

在普通模式下按下斜杠(/)也是进入命令行模式,此时该字符和光标均出现在屏幕的底部,这跟冒号(:)一样。

紧挨着斜杠(/)的是搜索目标,比如 /love,说明你找的是 love 这个字符串在光标后边第一次出现的位置,当然你也可以输入中文,比如 /你瞅啥

那如果要找下一个目标怎么办?这时你只需按 n 键即可定位到下一个符合的目标(向下查找),而按 N 键则返回上一个(向上查找)。

注意:第一个搜索到的目标不是文件中的第一个目标,而是从你的光标所在处开始找到的那个目标。所以你如果想要搜索文件中第一个匹配的目标,你应该先 gg 将光标移动到文件头,然后再使用搜索命令。

替换

通过搜索功能,我们将光标定位到目标位置,如果你确定这个目标是可恶的,需要被替换的,你可以输入 :s/old/new,这样即可将光标所在行的第一个 old 替换为 new;你如果输入的是 :s/old/new/g,则表示将光标所在行的所有 old 替换为 new。

但如果要替换整个文件的所有匹配字符串怎么办?总不能每一行来一下吧?
只要你能想到的,VIM 就有办法!输入 :%s/old/new/g表示替换整个文件中每个匹配的字符串。

执行shell命令

在输入冒号(:)进入命令行模式,输入感叹号(!),在其后便可以加上 shell 命令。此后 VIM 将临时跳转回 shell,并执行命令。再次按下 Enter 键回到 VIM。

文件另存为

一般的文本编辑工具都会有“另存为”的功能,用于将文件重新存放到一个新的文件中(旧文件保留不变)。VIM 也可以这么干,做法是输入 :w 新文件名

Author: pangzibo243
Link: https://litianbo243.github.io/2019/08/30/vim使用指南/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
支付宝打赏
微信打赏