Vim学习
至今还不理解是怎么发明出Vim这种东西的,首先就是经常使用windows的话就会觉Vim简直就是反人类的操作,但是它到现在还没有被淘汰,甚至于一直被应用在Linux或者Mac系统上,可见还是有它的独到之处,所以写一些随笔来记录Vim的一些常用命令,因为根本就是记不住,太多了,可能等我熟练用用以后会记住。
Vim进入之后就是最基础的normal
模式,在该模式下我们无法进行编辑操作;
然后就是插入模式,该模式下我们可以进行增删改的操作;
再然后就是命令模式,该模式下我们可以进行查询,保存等一系列的命令;
最后就是visual
可视化模式,该模式下我们可以进行块状文字选择等操作。
下面是我在CSDN上看到的一个相关的记录,我直接在上面做添加:传送门
# 快捷切换普通模式与插入模式 CTRL+c/[ 切换到普通模式 gi 快速跳转到最后一次编辑的地方并进入插入模式 # 代码补全 CTRL+n/p 补全单词 CTRL+xf 补全文件名 CTRL+xo 补全代码 # 插入模式 ## 增加 i 字符前插入 I 行前插入 a 字符后插入 A 行后插入 o 下一行插入 O 上一行插入 ## 删除 CTRL+h 删除上一个字符 CTRL+w 删除上一个单词 CTRL+u 删除当前行 ## 复制粘贴 CTRL+R+'+' 粘贴系统剪切板 CTRL+c/v 复制粘贴 # 命令模式 : 进入末行模式 !shell 在末行模式下加!和shell命令可以执行shell命令 [range] s[ubstitute]/{pattern}/{string}/[flags] 范围(10,20) s/要替换的字符(\<\>正则)/替换后的字符/(g/c/n)全局/确认/计次 s/s1/s2/ 替换光标后第一个匹配的s1 s/s1/s2/g 替换该行所有匹配的s1 % s/s1/s2/ 替换每一行第一个匹配的s1 % s/s1/s2/g 替换所有匹配的s1 sp/vs 横着/竖着分屏 q/qall 退出/全部退出 w/wall 保存/全部保存 ## 切换buffer ls 列举缓冲区 b n 跳转到第n个缓冲区 bpre/bnext/bfirst/blast 前一个/下一个/第一个/最后一个缓冲区 b buffer_name tab补全跳转 h window-resize 查看文档 tabnew {filename} 新建标签页 gt/T 切换到下一/上一标签页 # visual可视化模式 v: 字符选择,进入可视模式,然后通过y(复制),p(粘贴),d/x(删除)进行操作 V: 行选择 CTRL+v 文字间块状选择 # 普通模式 ## 移动 h/j/k/l 左/下/上/右 w/W 移到下一个word/WORD开头(二者区别为是否以空格作为分隔符) e/E 移到下一个word/WORD结尾 b/B 回到上一个word/WORD开头 0/^ 移动到行首第一个字符/非空白字符 $/g_ 移动到行尾/行尾非空白字符 ()/{} 在句子/段落间移动 gg/G 移动到文件的开头/结尾 CTRL+o 快速返回上一个位置 H/M/L 跳转到屏幕的开头/中间/结尾 CTRL+u/f 上/下翻页 zz 把当前行置为屏幕中间 CTRL+ws/wv 水平/垂直分割 CTRL+w+w/h/j/k/l 窗口间循环切换/左/下/上/右窗口(大写即调换位置) nG或者ngg代表第n行 ## 搜索 f{char} 快速移动到char字符上 ;/, 继续搜该行下一个/上一个 t{char} 移动到char的前一个字符 F{char} 反过来搜前面的字符 '/'/? 进行前向/反向搜索 n/N 跳转到下一个/上一个匹配 */"#" 当前单词的前向/后向匹配 ## 删除 x 删除一个字符 nx 删除n个字符 dd 删除当前行 d0 从行首删到光标前 d$ 从光标删到行尾 ndd 删除n行 diw 删除一个单词不包括空格 dw/daw 删除一个单词 dt{char} 删除到char的所有内容 [number]<command>[text object] ciw/s/p 删除单词/句子/段落(具体见图) ## 修改 r/R 替换一个字符/持续替换 (n)s/S 删除(n个字符)并进入插入模式/整行删除并进入插入模式 C 删除到整行第一个非空白字符前 caw 删除当前单词并进入插入模式 ct{char} 删除到char并进入插入模式 ## 撤销 u 撤销 CTRL+r 反撤销 ## 复制粘贴 yy 复制一行 yiw 复制一个单词 nyy 从光标所在行起复制n行 p 粘贴到光标所在下一行 P 粘贴到光标所在上一行 d 剪切 "{register} 指定寄存器 :red {register} 查看寄存器内容 "0 复制文本的同时拷到复制寄存器0 "+ 复制到系统剪切板 "% 当前文件名 ". 上次插入的文本 # 代码格式化 >>/<< 当前行右移/左移一个tab n>>/n<< 当前光标所在行向下n行右移/左移一个tab gg=G 一键格式化 # MAN手册 K 查看光标所在函数的man手册(若指定类型,需在K前加数字类型)
Vim的宏(macro):分为录制或者回放,使用q
来进行录制以及回放,q{register}
选择要保存的寄存器,把录制的命令保存其中,@{register}
回放寄存器中保存的一系列命令。
本文作者:信2005-2刘海涛
本文链接:https://www.cnblogs.com/lht020321/p/17990903
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步