文章目录
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, #endiff+字符:移动至行内当前光标后面的第一个这个字符t+字符:移动至行内当前光标后的的第一个这个字符的前一个位置F+字符:f+字符的反向T+字符;t+字符的反向$:移动至行的末尾0:移动至行的开头^:移动到第一个非空白字符g_: 移动到最后一个非空白字符Ctrl + b:向下移动一个屏幕Ctrl + f:向上移动一个屏幕Ctrl + u:向下移动半个屏幕Ctrl + d:向上移动半个屏幕Ctrl + w w:在不同窗口中切换光标
常用复制命令:
yy:复制游标所在行整行2yy或y2y: 复制 2 行y^:复制至行首,或y0y$:复制至行尾yw:复制一个wordy2w: 复制两个wordyG:复制至文件尾y1G:复制至文件首- 选中文本进行复制:要选中内容进行复制,先在命令模式下按 v 进入 Visual Mode,然后用方向键 或 hjkl 选择文本,再按 y 进行复制。
常用剪切命令:
dd: 剪切游标所在行整行d^: 剪切至行首,或d0d$: 剪切至行尾dw: 剪切一个worddG: 剪切至文件尾- 选中文本进行剪切:要选中内容进行复制,先在命令模式下按 v 进入 Visual Mode,然后用 方向键 或 hjkl 选择文本,再按 d 进行剪切。
normal模式下快速修改 常用的有三个:
r:replace可以替换一个字符s:substitute删除当前字符并且进入插入模式c:change可以配个文本对象快速修改一个单词,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 b | 1/3m宽度 |
| 中等空格 | a;b | a b a\;b ab | 2/7m宽度 |
| 小空格 | a,b | a b a\,b ab | 1/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
本文详细介绍了Vim编辑器在normal模式下的插入、删除、光标移动、复制、剪切命令,以及查找替换、正则表达式使用,粘贴板管理,标记跳转,Visual模式下的块选择,标签页切换和NERDTree的使用方法,为Vim用户提供了一套全面的操作教程。

被折叠的 条评论
为什么被折叠?



