)
0、Foreword前言扩展阅读VIM高效率操作 - 朽木自雕XD - 博客园linux vim命令详解_linux中查看文件内容的命令-腾讯云开发者社区-腾讯云Vim 快速入门 - 知乎Vim常用的模式如下命令模式也是快捷键模式比如定位到指定行ngg拷贝yy插入模式命令模式下按i进入底行模式命令模式下按:进入替换模式命令模式下按r进入可视化模式 命令模式下按v进入查找模式命令模式下按/进入1、Cursor moving光标移动1.1 移动到行尾$字符1.2 移动到本行第一个字符0或者^1.3 以句子移动为单位移动到下一个句子)右边圆括号移动到上一个句子(左圆括号1.4 以段落移动为单位移动到下一个段落}右大括号移动到上一个段落{左大括号1.5 以单词移动为单位移动到下一个单词w移动到上一个单词b1.6 跳转到与当前单词相同的地方跳转到上一个*跳转到下一个#1.7 定位到当前行所包含的{},[],()位置%1.8 翻页1.8.1 向下翻页Ctrl ffis an acronymforward1.8.2 向上翻页Ctrl bbis an acronym:backward1.8.3 向下翻半页Ctrl dCharacter d is an acronym ofDown.1.8.4 向上翻半页Ctrl uCharactor u is an acronym ofUp.1.9 上下左右移动1.9.1 下移lower casej1.9.2 上移lower casek1.9.3 左移lower caseh1.9.4 右移lower casel1.10 显示行号在底行模式下输入命令set nu或者set number1.11 屏幕中快速移动1.11.1 移动光标到屏幕顶端H1.11.2 移动光标到屏幕中间M1.11.3 移动光标到屏幕底部L1.12 行定位1.12.1 第一行gg1.12.2 最后一行G1.12.3 任意一行nggnG:nNOTEn表示行号比如12,22,122...2、Substitution and seaching替换和查找2.0 区分大小写查找字符串底行模式输入命令如下/string\C或者先在底行模式输入set noignorecase或者set noic再输入要查找的字符串/string2.1 不区分大小写查找字符串2.1.1 搜索字符串进入底行模式输入命令如下/string\c或者先在底行模式中输入命令set ignorecase或者set ic再输入需要查找的字符串/string2.1.2 搜索下一处n2.1.3 搜索上一处N2.2 高亮显示查找到字符串在底行模式下输入命令set hlsearch取消高亮显示命令set nohlsearch2.3 字符串替换字符串替换命令在底行模式下进行。2.3.1 替换每一行的第一个字符串如果有%s/string/substitution%s/echo/Echo用Echo替换文件中所有行中的第一个echo。NOTE字符前面的特殊符号是%。底行中会显示替换内容的具体情况比如替换的个数已经替换的行数。“x substitutions on Y lines”2.2.2 替换所有字符串%s/string/substitution/g猜测g是global的缩写。2.3.3 替换当前行 所有字符串s/string/substitution/gNOTE选项/g是用来控制行。2.3.4 按顺序替换当前行 第一个字符串s/string/substitution2.4 查找当前单词的下一个出现的地方*2.5 查找当前单词的上一个出现的地方#2.6 当前行查找字符2.6.1 下一个字符fx2.6.2 上一个字符FxNOTE:x表示要查找的字符f/F表示方向2.7 移动到上次编辑文件的位置.NOTE:字符是在数字1左边按键上的符号.是英文格式的点符号2.8 制定书签2.8.1 设置书签mbooknamem1,m21和2为书签名字。2.8.2 移动到指定书签bookname1和23、Edit编辑3.1 插入操作3.1.1 当前行操作光标后插入a行尾插入A光标前插入i行首插入I3.1.2 不同行操作当前行的后面插一行o当前行的前面插一行 O3.2 删除操作NOTEvim的删除动作等同于剪切。3.2.1 删除整行删除一行dd3.2.2 删除一个单词删除一个词dw3.2.3 删除一个字符删除一个字符dl 或者x3.3 删除并插入操作删除字符并插入s删除整行并插入S3.4 复制3.4.1 复制行复制一行yy3.4.2 复制一个字符复制一个字符yl复制多个字符从cursor到第n个字符ynl3.4.3 复制一个字复制一个字 yw3.5 粘贴粘贴的内容是放在当前cursor后面。粘贴 p交互两个字符 xp交互两行ddp3.6 撤销和重做撤销u重做ctrl r重复.3.7 自动提示编辑模式下 ctrl n 或者 ctrl pNOTE该shortcut用于关键词补齐功能keyword completion补齐的提示词为该文档内的所有匹配的前缀单词。3.8 motion相关操作3.8.1 删除并进入插入模式c{motion}删除motion命令跨过的字符并且进入插入模式。{motion}表示具体的命令比如$, gg例如c$将会删除从光标位置到行尾的字符并且进入插入模式。例如ctx删除当前光标到下一个字符跨过的字符删除并进入插入模式不包括x字符例如cfx删除当前光标到下一个字符跨过的字符包括x字符NOTEx表示任意字符3.8.2 删除但不进入插入模式d{motion}删除motion命令跨过的字符但不进入插入模式。3.9 查看剪切板Clipboard底行模式下输入命令reg3.10 缩进3.10.1 粘贴时自动缩进粘贴方式]p3.10.2 缩进已选中内容3.10.3 反缩进已选内容3.11 代码查看3.11.1 定位到函数或变量的定义处命令gd实测如下变量命令gd跳转到变量定义处函数命令gd不会跳转到函数定义处跳转到声明处也不完全是3.11.2 在man中查找光标所在词命令K3.12 行合并合并两行J实测 将光标后一行追加到光标当前行的后面用空格隔开。3.13 文件操作3.13.1 重新打开文件重新打开文件且不保存修上一次修改e!3.13.2 打开新文件命令:e filename文件之间切换ctrl ^4、窗口操作4.1 分隔一个窗口:split水平分隔变成上下两个窗口:vsplit 垂直分隔变成左右两个窗口4.2 创建新窗口底行模式下输入:new水平方向vnew 垂直方向4.3 关闭窗口命令close4.4 新窗口打开文件:sf filename4.5 只保留当前窗口:only4.6 窗口切换切换到左边窗口ctrl w h切换到右边窗口ctrl w l切换到上边窗口ctrl w k切换到下边窗口ctrl w j切换到顶部窗口ctrl w t切换到底部窗口ctrl w b5 可视化操作5.1 进入可视化模式5.1.1 块可视化在命令模式下ctrl v5.1.2 字符可视化v5.1.3 行可视化V5.2 删除操作5.2.1 删除选定的块d5.2.2 删除选定的块并进入插入模式c