material/tool/vim/shortcutKeys.md
RongersLY 93cecd7544 BIG MERGE!!!
BIG ADD:
- docker
- archlinux

FIX:
- vim
- c_cpp
  - string hash
  - linux /dev/random
  - thread
  - STL
- linux
  - command
    - last

OTHERS:
- add antenna.md
- mirrors
- makefile.md
2025-04-04 17:35:35 +08:00

2.4 KiB

vim小技巧

. 重复上一个操作

目录

  • [录制宏](# 录制宏)
  • [打开终端](# 打开终端)
  • [快捷键](# 快捷键)
    • [移动](# 移动)
    • [插入](# 插入)
    • [修改](# 修改)
    • [删除](# 删除)
    • [复制](# 复制)
  • [基本补全](# 基本补全)
    • [补全菜单](# 补全菜单)
  • [vimrc](# ./.vimrc)

录制宏

使用 q[Key] 开始录制宏,再次点击q结束录制 @[Key] 调用宏 @@ 重复调用

打开终端

:term:vert term
从终端转到普通模式:<c-\>+<c-n>

快捷键

移动

  • 0 gm 行首行尾
  • ngg 移动到第n行
  • fc tc 搜索字符 ; , 可重复
  • c-u 上半屏
  • c-d 下半屏
  • Shift-[ 跳转到上一个空行
    •   移动到下一个与当前指针下相同单词的位置
      
  • 移动到上一个与当前指针下相同单词的位置

  • Ctrl + ] 跳转到标签,依赖于tags文件
  • ctags -R . 创建目录下的跳转文件
  • Vim 会记录跳转历史,使用 Ctrl + T 或 Ctrl + O 返回到上一个位置
  • gf 跳转到文件路径
  • c-o 后退一步
  • c-i 前进一步
  • [a-z] / [A-Z] 跳转到标记位置 大写全局,小写本文件,用m[a-z]设置标记
    • ` 上次跳转的位置
    • . 最后一次修改的位置

插入

  • I A 行首 行末 插入
  • n<< n>> 多行左右移动

修改

  • r R 替换光标下的字符
  • c-i-( 替换括号内的内容可以使用任何括号匹配

删除

  • x 删除光标下字符
  • J 与下一行合并
  • Shift-d 从当前字符删除到行末

复制

  • "x 使用寄存器x进行下一次复制 粘贴 删除 :reg 显示所有寄存器

可视模式

  • o 交换选择区域另一端和光标的位置
  • aw as ap ab aB 选择一个单词 句子 段落 () {}
  • vi{ 选中一整个大括号内
  • va{ 选中一整个大括号全部
  • ]f 在文件中若出现文件名,指针放在上面使用这个快捷键可直接打开

基本补全

  1. Ctrl+n - 普通关键字补全(向下浏览)
  • 在当前文件和包含文件中查找匹配项
  • 适用于变量名、函数名等
  1. Ctrl+p - 普通关键字补全(向上浏览)
  • 与 Ctrl+n 相同,只是方向相反
  1. Ctrl+x Ctrl+f - 文件名补全
  • 在输入路径时自动补全文件名
  1. Ctrl+x Ctrl+l - 整行补全
  • 补全整行代码(从当前文件中查找相似行)

补全菜单

  1. c-n``c-p 上下移动
  2. c-y 确认
  3. c-e 退出