vim 操作

normal 模式下插入与删除

  • i:示在光标的位置插入,I:从该行最前面开始编辑
  • a:在光标后的位置插入,A:从从该行最后面开始编辑
  • o:在当前的下一行插入,
  • x:删除光标后的一个字符
  • dd:删除整行
  • dw:删除光标后面的单词
  • diw:删除光标所在的单词,但不包括单词旁边的空格
  • daw:删除光标所在的单词,包括单词旁边的空格
  • di+
  • u:撤销
  • ctrl+r:取消撤销

在编辑模式下,在我们本次编辑修改的部分,我们可以使用快捷键去修改字符

  • ctrl + h:删除光标前面的字符
  • ctrl + w:删除光标前面的单词
  • ctrl + u:删除光标前面的该行所有内容

光标移动

  • w:向前移动到下一个单词的第一个位置,3w等同于按下三次w,W:只使用空格作为分隔
  • e:向前跳动到下一个【单词的末尾】
  • b:向后移动到上一个【单词的开头】
  • ge:向后移动到上一个【单词的末尾】
  • %:找到当前光标 下或者之后 的第一个括号,并移动到它匹配的括号的位置 括号包括:([{}]) /**/ #if, #ifdef, #else, #elif, #endif
  • f+字符:移动至行内当前光标后面的第一个这个字符
  • t+字符:移动至行内当前光标后的的第一个这个字符的前一个位置
  • F+字符f+字符的反向
  • T+字符t+字符的反向
  • $ :移动至行的末尾
  • 0 :移动至行的开头
  • ^ :移动到第一个非空白字符
  • g_: 移动到最后一个非空白字符
  • Ctrl + b :向下移动一个屏幕
  • Ctrl + f :向上移动一个屏幕
  • Ctrl + u :向下移动半个屏幕
  • Ctrl + d :向上移动半个屏幕
  • Ctrl + w w:在不同窗口中切换光标

常用复制命令:

  • yy :复制游标所在行整行
  • 2yyy2y: 复制 2 行
  • y^:复制至行首,或y0
  • y$:复制至行尾
  • yw:复制一个word
  • y2w: 复制两个word
  • yG:复制至文件尾
  • y1G:复制至文件首
  • 选中文本进行复制:要选中内容进行复制,先在命令模式下按 v 进入 Visual Mode,然后用方向键 或 hjkl 选择文本,再按 y 进行复制。

常用剪切命令:

  • dd : 剪切游标所在行整行
  • d^ : 剪切至行首,或d0
  • d$ : 剪切至行尾
  • dw : 剪切一个word
  • dG : 剪切至文件尾
  • 选中文本进行剪切:要选中内容进行复制,先在命令模式下按 v 进入 Visual Mode,然后用 方向键 或 hjkl 选择文本,再按 d 进行剪切。

normal模式下快速修改 常用的有三个:

  • rreplace可以替换一个字符
  • ssubstitute删除当前字符并且进入插入模式
  • cchange可以配个文本对象快速修改一个单词,cw,ciw,caw只不过是在dw,diw,daw删除的基础上同时进入插入模式。

vim查找替换

查找

  • /:前向搜索,使用n/N跳转到下一个/上一个的匹陪对象,例如/time表示搜索time这个单词,按n表示下一个。
  • ?:反向搜索
  • */#:在normal模式下光标在一个单词上,按下*/#即可查找上一个/下一个同样的单词,要求每次出现的前后为空白字符或标点符号。
  • \命令 后边不要加空格 否则会报警 如果要空格加则使用 \{ }

替换

在normal模式下:s(substitute)命令用来查找和替换字符串。语法如下:

:作用范围s/查找内容/替换内容/替换标志

作用范围:

  • 空置 : 光标所在行
  • num1,num2 : 第num1 到第 num2

替换标志 :

  • c: confirm,每次替换前询问;
  • e: error, 不显示错误;
  • g: globle,不询问,作用范围内整行全部替换。如果不加g选项,则只替换每行的第一个匹配到的字符串;
  • i: ignore,忽略大小写。

正则表达式

Vim 查找替换及正则表达式的使用
Vim查找支持正则表达式,例如/vim$匹配行尾的vim

  • 需要查找特殊字符需要转义,例如/vim\$匹配vim$
  • s/查找内容 中使用 \(\) ,在两个括号中间中放元字符 ,在 /替换内容 使用 \1 , \2\n 等顺序代替之前的第n个元字符内容

将{…}替换为<…> 括号之间的内容不变 :

s/{(.*)}/<\1>/g

粘贴板

vim有12个寄存器,分别是0、1、2、…、9、a、“、+ 用:reg命令可以查看各个粘贴板里的内容

将vim的内容复制到某个粘贴板,需要退出编辑模式,进入normal模式后,按 "Nnyy 完成复制。注意第一个引号 " 不可少,其中N为寄存器),n为你想要复制的行数,例如要把当前以下11行内容复制到粘贴板a,则只需按 "a11yy 就可以了,在需要粘贴的文件按 “ap 即可,其他寄存器类似。

+号(或*号)粘贴板是 系统粘贴板,用 "+y 将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制到vim中,需要在命令模式下按 "+p;

normal模式下:可视模式:
"+nyy"+y
"+p"+p

插入空格

两个quad空格a\qquad{}b a b a\qquad{}b ab​ 两个m的宽度
quad空格a \quad b a b a\quad{}b ab​ 一个m的宽度
大空格a\ b ​ a   b a\ b a b1/3m宽度
中等空格a;b ​ a    b a\;b ab2/7m宽度
小空格a,b a   b ​ a\,b​ ab1/6m宽度
没有空格ab a b ab ab
紧贴a!b a  ⁣ b a\!b ab​ 缩进1/6m宽度

标记跳转

  • ' + ' 回跳刚才的出发点
  • m(a...z) 给当前行标记
  • 'a 跳转到标记a的行
  • :marks 查看当前所有标记
  • :delm! 删除所有标记

Visual模式按块选择

先按v,进入visual模式,横向选中列的个数(如选中两列),再按ctrl+v 进入列编辑模式,向下或向上移动光标,

切换标签页

vim切换tab标签快捷键
normal 模式

  • gt 向前切换
  • gT向后切换
  • ngt/ngT 直接切换到第n个标签页

命令模式

  • :tabnew [++opt选项] [+cmd] 文件 建立对指定文件新的tab
  • :tabc 关闭当前的tab
  • :tabo 关闭所有其他的tab
  • :tabs 查看所有打开的tab
  • :tabp 前一个
  • :tabn 后一个

NERDTree

  • vim 命令模式打开::NERDTree
  • vim 命令模式关闭::NERDToggle

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值