Vim进阶

发布时间 2023-09-28 23:45:50作者: Egu0

https://www.bilibili.com/video/BV1NG4y1p74h

查看帮助文档:normal 模式下输入 :help 字符

插入模式下

ctrl + h删除上一个字符,相当于 backspace 删除键

ctrl + w 如果光标所在位置为空格,则删除本行中当前光标左边最近的一个单词

ctrl + u删除当前光标到行首的内容;如果光标在行首,则删除当前行与上一行之间的换行符

快速切换到 normal 模式和 insert 模式

insert 切换到 normal 模式

ctrl + [ 推荐

ctrl + c 不推荐,可以会切断运行

normal 切换到 insert 模式

gi 快速切换到 insert 模式并将光标移动到最后一次编辑的位置

快速移动光标

向后

  • w/W: 移动到下一个 word/WORD 开头;
  • e/E: 移动到下一个 word/WORD 开头;

向前

  • b/B: 移动到上一个 word/WORD 开头;

WORD 表示是以空白符分割的单词;word 表示是以非空白符分割的单词。

行内搜索移动

  • f + 字符:在当前行从前往后搜索,跳转到指定的字符上,使用 ; 或 , 分别向右或向左移动
  • F + 字符:在当前行从后往前搜索,跳转到指定的字符上,使用 ; 或 , 分别向左或向右移动
  • t + 字符:在当前行从前往后搜索,跳转到指定字符的前一个字符上,使用 ; 或 , 分别向右或向左移动
  • T + 字符:在当前行从后往前搜索,跳转到指定字符的前一个字符上,使用 ; 或 , 分别向左或向右移动

移动到行首或行尾

  • 0: 移动到行首第一个字符
  • ^: 移动到行首第一个非空白字符,可以使用 0w 代替。常用
  • $: 移动到行尾。常用
  • g_: 移动到行尾非空白字符

页面移动

  • gg 移动到文件开头
  • G 移动到文件结尾
  • H/M/L 移动到屏幕的开头、中间和结尾
  • ctrl + u upword,向上翻半页
  • ctrl + f forword,向下翻半页
  • zz 将当前光标所在的行放置在屏幕中间

快速操作

删除

在 normal 模式下进行删除

dd 删除光标所在行;数字 + dd 删除光标所在行及之后的数字 - 1个行

x 删除光标所在字符;数字 + x 删除光标所在字符及之后的数字 - 1个字符

dw 删除当前单词的一部分:当前光标到单词结尾的部分(左闭右闭),以及单词后的空格

daw 删除光标所在的单词以及后面的空格

diw 删除光标所在的单词,不会删除后面的空格

dt + 字符 删除当前光标到指定字符之间(左闭右开)的内容。dt 为 delte to 的意思

d$ 删除当前光标及之后位置上的内容

d0 删除当前光标之前的所有内容

在 visual 模式下进行删除

v 进入行内选择,配合 hl 左右选择后使用 dx 删除

V 进入多行选择模式,配合 jk 上下选择后使用 dx 删除

修改

replace

r + 字符 快速替换光标所在的字符。数字 + r + 字符 将当前光标位置及后边紧挨着的共数字个字符替换为指定的字符

R 进入 replace 模式

substitute

s 删除当前字符并进入 insert 模式;数字 + s 表示删除指定个数个字符后进入插入模式

S 删除当前行,进入 insert 模式,光标移动到行首

change

caw 删除光标所在单词及后边的空格,并进入插入模式

C删除当前行,进入 insert 模式,光标移动到行首。与 S 功能相同

ct + 字符 删除当前字符到指定字符之间的内容(左闭右开),进入 insert 模式

查询

/ + 字符串 向后搜索;? + 字符串 向上搜索

n/N 跳转到下一个或上一个匹配

* 向下搜索当前光标所在单词,并将光标跳转到其上;# 向上搜索当前光标所在单词,并将光标跳转到其上

normal 模式下配置

  • :set hls highlight selected
  • :set incsearch increase search,增量搜索,即动态显示搜索的结果