vim 常用基本
vim 基本操作
0. 基本操作
:w // 保存当前文件 :q // 退出vim :wq // 保存退出 :w! // 强制保存当前文件 :q! // 强制退出(可以忽略修改) :!cmd // 执行shell命令cmd :n1,n2 w!cmd // 将文件中第n1行至n2行的内容作为cmd输入并执行, 若不指定n1,n2, 则表示将整个文件内容作为cmd的输入 i // 在光标前进入插入模式 I // 在当前行行首进入插入模式 a // 在光标后进入插入模式 A // 在当前行行尾进入插入模式 o // 在当前行的下一行新开一行进入插入模式 O // 在当前行的上一行新开一行进入插入模式 r // 替换光标下的字符进入插入模式 s // 删除光标下字符并进入插入模式 S // 删除当前行并进入插入模式
1. 移动光标命令
nh // 向左移n个字符 nl // 向右移n个字符 nk // 向上移n行 +j // 向下移n行 // 不加n默认n为1 space // 右移一个字符 backspace // 左移一个字符 ctrl + e // 向上滚动一行 ctrl + y // 向下滚动一行 nw(W) // 向右移动n个单词至词首 nb(B) // 向左移动n个单词至词首 ne(E) // 向右移动n个单词至词尾 // 小写: 符号分隔的为一个单词 // 大写: 空格分隔的为一个单词 // 不加n默认n为1 // # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ) // 移动至句尾 ( // 移动至句首 { // 移动至段落开头 } // 移动至段落结尾 gg // 移动至文件第一行 G // 移动至文件最后一行 nG // 移动至第n行 n+ // 向下移n行 n- // 向上移n行 H // 移至屏幕顶行 M // 移至屏幕中间行 L // 移至屏幕底行 0 // 移至当前行首 $ // 移至当前行尾 ^ // 移至当前行第一个非空白字符 ctrl + f // 向下翻一页 ctrl + b // 向上翻一页 ctrl + d // 向下翻半页 ctrl + u // 向上翻半页 nzt // 将第n行移至屏幕顶部 nzz // 将第n行移至屏幕中间 nzb // 将第n行移至屏幕底部 // 不指定n时, 默认移动当前行 // # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
2. 搜索命令
/pattern // 从光标处向下搜索pattern ?pattern // 从光标处向上搜索pattern n // 在同方向重复上一次搜索命令 N // 在反方向重复上一次搜索命令 fc // 在光标位置向右搜索字符c Fc // 在光标位置向左搜索字符c ; // 同方向重复上次搜索字符命令
3. 替换命令
:s/p1/p2/g // 将当前行中所有p1均用p2替换 :n1,n2s/p1/p2/g // 将第n1行至第n2行中所有p1均用p2替换 :g/p1/s//p2/g // 将文件中所有p1均用p2替换 // 不加g时, 只替换匹配到行的第一个匹配项
4. 拷贝/删除
nyy // 从当前行开始向下复制n行 ndd // 将当前行及其以下共n行内容删除, 并将删除内容放到1号删除寄存器中. p // 粘贴(从光标位置) // 不加n表示复制(删除)一行(单词) // d(删除),y(复制)可以与移动命令组合使用 // 例如 ynw 复制光标位置向右n个单词. ynj 复制当前行至向下n行. dnk 删除当前行至向上n行 :n1,n2 co n3 // 将第n1行至第n2行的内容拷贝到第n3行下面 :n1,n2 m n3 // 将第n1行至第n2行的内容移动到第n3行下面 :n1,n2 d // 将第n1行至第n2行的内容删除
5. 参考
1. https://www.isplaying.cn/jiaocheng/vim-command-1.html