vim快捷键

vim

前言

之前在折腾OpenWrt路由器时,最长用到的编辑器就是vim了,前几天在自己低配thinkpad笔记本上安装了ArcLinux,但是跑vscode仍然热的仍然像个大火炉,于是便着使用vim来编写代码,发挥下余热。
知道开始写才发现之前掌握的hjkl之类命令远远不够,于是从酷客网上一遍联系一遍记录笔记,防止年老忘记,哈哈,
另外说一句:vim是世界上最牛的编辑器,逃。。。

快捷命令

在正常模式中的各种编辑快捷键

插入

  1. a 在光标后插入
  2. i 在光标前插入
  3. o在当前行后插入
  4. O 在当前行前插入
  5. cw 替换从光标开始位置到一个单词结尾的字符(无论是中文英文,都是替换到空格)

移动光标

0:ghjk :上下左右

  1. 0: 到行头
  2. ^: 到本行第一个不是blank字符的位置,(tab 空格 换行 回车等等)
  3. $: 到行尾

复制粘贴

  1. p:粘贴
  2. yy: 拷贝当前行

撤销重做

  1. u:撤销
  2. ctrl+r:重做

命令模式下的快捷键

打开

  1. e <path/to/file>: 打开一个文件

保存

  1. w:保存

另存为

  1. saveas <path/to/file>

保存并退出

  1. wq:保存并退出
  2. q!:保存不退出
    3: qa! :强行退出所有正在编辑的文件,就算别的文件又更改

改变文件

  1. bn:同时打开多个文件时用来切换
  2. n:切换到下一个文件

命令重复执行

  1. . :点可以重复上一步命令
  2. N <命令>:重复某个命令n次

例子:

2dd //删除两行 就是N,dd是删除命令,2dd就是重复执行两次删除命令也就是删除2行
3p //粘贴三次,
100idesu <ESC> //重复插入100次的desu
. //重复上一个命令
3. 重复执行3次上一个命令

光标移动

  1. N G: 到第几行,N是行数,G是大写
  2. gg : 到第一行
  3. G: 到最后一行
  4. 按单词移动
    1. w:到下一个单词的开够
    2. e:到下一个单词的结尾
      注意:
      当单词是默认(由字母下划线和数字组成)使用ew
      当单词是以blank符(空格、tab和)要使用大写的WE
  5. %::匹配括号移动,包括{``(``[,需要先把光标移动到括号上
  6. 和# : 匹配光标所在的单词,移动的上一个()或者下一个(#)

移动组合命令

 <start position> <command> <end position>

eg:

0y$

执行:jjk

  • 0 -> 先到行头
  • y -> 从这里开始拷贝
  • $ -> 拷贝本行到最后一个字符
ye

拷贝到本单词到最后一个字符。

y2/foo

拷贝两个foo之间的字符串
除了按y还有一些命令也会拷贝

  1. d 删除
  2. v 可视化选择,按v以后再按选择,最后可以按y或者d 复制或者删除
  3. gU 变成大写
  4. gu 变成小写
  5. 等等

超级实用命令

移动

  1. 0 到行头
  2. ^ 到本行的第一个非blank字符
  3. $ 到行尾
  4. g_到本行最后一个不是blank字符的位置
  5. fa 到本行下一个为a的字符处,a可以是其他字符,如fs到下一个为s的字母
  6. t, 到逗号钱的第一个字符,逗号可以变为其他字符
    7.3fa 在当前行查找第三个出现的a,其中3和a都是可变的,

删除

  1. dt" 删除所有内容直到遇到“,其中”可以为任意字符

区域选择

命令格式
<action>a<object>
<action>i<object>

  • action 可以使任意命令,如d删除,y拷贝,v可是模式下的选择
  • object 可能是: w一个单词,W一个以空格分隔的单词,s一个句子,p一个段落,也可以是特别的字符:“、’、)、}、】、
    这里没有理解

块操作

块操作类似vscode下摁下中间滚轮竖向选择并进行操作。
vim典型操作是:0 <CTRL+V> <CTRL+d> I -- [ESC]

  • 0 到行头
  • CTRL+V 开始块操作,注意在windows下使用CTRL+q
  • CTRL+D 向下移动,也可以使用hjkl移动光标
  • I – [ESC] I是插入,插入’–‘,按ESC让每一行生效

未实现

自动提示

  1. CTRL+n //自动补齐,连续按下n向下选择列表项
  2. CTRL+p //自动补齐,连续按下p向上选择列表项

宏录制

  1. qa 把操作记录存储在寄存器a,
  2. @a会replay被录制的宏
  3. @@是一个快捷键,用来replay最新录制的宏。
    eg:

在一个只有一行且这一行只有个“1”的文本中,依次输入
* qaYp<CTRL+a>q
* qa 开始录制,
* Yp 复制行
* CTRL+a 增加1
* q停止录制
* @a 在1下面写下2
* @@ 在2下面写下3
* 100@@ 会创建新的100行,并把数据增加到103

这种方式很方便,但是除了ctrl+a代表加1应该还有其他的快捷键

可视化选择

使用v选择代码,然后可以做以下几种操作:

  • J 把所有行变成一行
  • <或者>左右缩进
  • = 自动缩进
    这里的自动缩进没有实现

分屏

待补充

参考文献 https://coolshell.cn/articles/5426.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值