Vim是一款功能强大的文本编辑器,是Unix和Linux系统中最常用的编辑器之一,可以大大提高编辑效率。它是Vi编辑器的增强版,提供了更多的功能和快捷键,可以大大提高编辑效率。
虽然它的学习曲线比较陡峭,但一旦掌握了它的基本操作和快捷键,就可以在编辑文本时事半功倍。
以下是Vim的一些特点和功能:
-
模式:Vim有多种模式,包括普通模式、插入模式、可视模式等。在普通模式下,可以使用快捷键执行各种操作,如复制、剪切、粘贴、查找、替换等。在插入模式下,可以像普通文本编辑器一样输入文本。在可视模式下,可以选择文本块进行操作。
-
快捷键:Vim的快捷键非常丰富,可以大大提高编辑效率。例如,使用yy命令复制一行文本,使用dd命令剪切一行文本,使用p命令粘贴文本等。
-
插件:Vim支持各种插件,可以扩展其功能。例如,可以安装代码高亮插件、自动补全插件、文件管理插件等。
-
跨平台:Vim可以在多种操作系统上运行,包括Unix、Linux、Windows等。
-
自定义:Vim可以通过修改配置文件来自定义其行为。例如,可以修改快捷键、设置颜色方案、添加插件等。
移动
j,下k,上h,左l,右v,按v之后按方向键可以选中你要选中的文字gg,跳到第 1 行G,跳到最后一行16G或:16,跳到第 16 行$,到本行 行尾0,到本行 行头^,到本行的第一个非blank字符g_,到本行最后一个不是blank字符的位置。%,匹配括号移动,包括(,{,[(需要把光标先移到括号上)*,匹配光标当前所在的单词,移动光标到 下一个 匹配单词#,匹配光标当前所在的单词,移动光标到 上一个 匹配单词/pattern,搜索pattern的字符串(如果搜索出多个匹配,可按n键到下一个)fa,到下一个为a的字符处,你也可以fs到下一个为s的字符。3fa,在当前行查找第三个出现的a。t, 到逗号前的第一个字符。逗号可以变成其它字符。F和T,和f和t一样,只不过是相反方向。
插入
I,在当前 行首 插入A,在当前 行尾 插入i,在当前字符的 左边 插入a,在当前字符的 右边 插入o(小写),在当前行 下面 插入一个新行O(大写),在当前行 上面 插入一个新行
删除
x,删除 光标后 的 1 个字符2x,删除 光标后 的 2 个字符X,删除 光标前 的 1 个字符2X,删除 光标前 的 2 个字符dd,删除当前行cc,删除当前行后进入insert模式dw,删除当前光标下的单词/空格d$,删除光标至 行尾 所有字符dG,删除光标至 文件尾 所有字符ndd,从当前光标开始,删掉n行,比如3dddt",删除所有的内容,直到遇到双引号"echo > aa.txt,从 bash 角度清空文件内容,这个比较高效
复制
y,复制光标所选字符yw,复制光标后单词yy或y_或Y,复制当前行4yy,复制当前行及下面4行y$,复制光标位置至 行尾 的内容y^,复制光标位置至 第一个非空白字符 的内容y0,从当前位置复制到 行首yG,从当前行复制到文件结束y20G,从当前行复制到第20行y?bar,复制至上一个出现bar的位置
粘贴
p(小写),将粘贴板中内容复制到 光标之后P(大写),将粘贴板中内容复制到 光标之前:%s/YouMeek/Judasn/g,把文件中所有YouMeek替换为Judasn:%s/YouMeek/Judasn/,把文件中所有行中第一个YouMeek替换为Judasn:s/YouMeek/Judasn/,把光标当前行第一个YouMeek替换为Judasn:s/YouMeek/Judasn/g,把光标当前行所有YouMeek替换为Judasn:s#YouMeek/#Judasn/#,除了使用斜杠作为分隔符之外,还可以使用#作为分隔符,此时搜索部分中间出现的/不会作为分隔符,该命令表示:把光标当前行第一个YouMeek/替换为Judasn/:10,31s/YouMeek/Judasn/g,把第10行到31行之间所有YouMeek替换为Judasn
Vim 提供了 11 个剪贴板,分别是:0,1,2,3,4,5,6,7,8,9,a,",默认采用的是 ",也就是双引号。如果开启了系统剪贴板,则会另外多出两个:+和*。
使用:reg命令,可以查看各个粘贴板里的内容。
指定复制到某个剪切板的命令:"7y,表示使用 7 号剪切板。
指定黏贴某个剪切板内容:"7p,表示使用 7 号剪切板内容进行黏贴
如果想y/p直接和系统剪贴板打通,可以在~/.vimrc中加上以下配置:
set clipboard^=unnamed,unnamedplus
其他
guu,把当前行的字母全部转换成 小写gUU,把当前行的字母全部转换成 大写g~~,把当前行的字母是大写的转换成小写,是小写的转换成大写u,撤销Ctrl+r反撤销
文件操作
:e <path/to/file>,打开一个文件:saveas <path/to/file>,另存为<path/to/file>:w,存盘:x,ZZ或:wq,保存并退出 (:x表示仅在需要时保存,ZZ不需要输入冒号并回车):bn和:bp,你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文
件。(使用:n也可以到下一个文件)
块操作:
Ctrl+v然后移动光标选择块区域 进行操作以后按esc使得操作对于整个块区域生效J,把所有的行连接起来(变成一行)<或>,左右缩进=,自动给缩进