目录

vim装逼要点

目录

最近给IDE装了vim插件(ideaVim),因为觉得写代码时候老是要去按上下左右,效率很低,更主要是low,不够装逼(

但不建议独立使用vim,因为要大量练习才行,和IDE配合使用,可以把重点放在光标移动上,其余功能让IDE来负责。低成本装逼

move

h j k l - ⬅️ ⬇️ ⬆️ ➡️

w/e - 跳转到下一个词 开头/末尾(按符号或空白分词)

  • 助记 word / end

W/E - 同上(按空白分词)

b/ge - 跳转到上一个词 开头/末尾(按符号或空白分词)

B/gE - 同上(按空白分词)

f<?>/t<?> - 跳转到光标位置后指定 字符上/字符前,不跨行

  • 比如 12345,使用f4后变为 12345,使用t4则为 12345
  • 助记 find / to,;可以重复执行

F<?>/T<?> - 跳转到光标位置前指定 字符上/字符前,不夸行

% - 当前行如果有括号,移动到它的另一半

gg/G - 跳转到文件 开头/结尾

<n>gg/<n>G - 跳转到指定行号

0/& - 移动到 行开头/末尾

^_/g_ - 移动到 行开头/末尾 第一个非空白字符

<Ctrl+b>/<Ctrl+f> - 向 上/下 滚一个屏幕

  • 助记 back front

<Ctrl+u>/<Ctrl+d> - 向 上/下 滚半个屏幕

  • 助记 up down

zz/zt/zb - 令光标行处于屏幕 中间/顶部/底部

  • 助记 zoom zoom/top/bottom

<Ctrl+o>/<Ctrl+i> - 光标跳转到jump list的 上一个位置/下一个位置

  • jump list里只记录跳转历史,简单移动光标不会被记录
  • :jump可以查看所有位置

m<a-zA-Z> - 如ma,标记当前光标位置,并起名为a

  • 小写的名字只在当前缓冲区可见,大写可以跨缓冲区
  • :marks查看所有标记位置,你也会看到其他非字母的标记

'<a-zA-Z>/ `<a-zA-Z> - 如'a回到a位置所在在行首/ `a回到a位置

  • 一个是单引号,一个是反引号,''永远返回上一个位置

zo/zc - 打开折叠/关闭折叠

zO/zC - 打开折叠/关闭折叠,递归

zM/zR - 关闭/打开 所有折叠

gd<Ctrl+]> - 跳转到定义,<Ctrl+t>返回(用的是tag stack)

编辑

dd/ <n>dd - 删除当前行 / 删除n行

df<?>/dt<?> - 向后删除光标位置到指定字符 / 删除到指定字符前,不跨行

dF<?>/dT<?> - 反向,向前删除,同上

d$/d^ - 从光标删除到 行尾/行开头,用其他位置符也行

yy/<n>yy - 复制当前行/复制n行

p/P - 粘贴到当前 行后/行前,<n>p就是重复做n次

"<reg>y/"<reg>p - 复制到指定寄存器/从指定寄存器粘贴

  • 命令模式:reg 可以看各个寄存器的内容
  • +寄存器通常与系统剪切板互通

di"/da" - 删除引号内的内容/连引号一起删,必须单行

  • 助记 delete in "" / delete all ""
  • 还有di(di{

x - 删除光标字符

r<?> - 用指定字符替换光标字符

入场

三连入场,神清气爽。从normal模式进入编辑模式

i/a - 在当前光标字符 前/后 插入

I/A - 在当前行 开头第一非空白字符前插入/结尾最后一个非空白字符后插入

o/O - 当前行 下面/上面 起新行

s - 删除当前字符并从该位置插入