理解vim工作的几个关键字
下面我们再来认识一下 vim ,理清下面的 vim 的几个名词,这样方便我们以后更好的去使用和进阶vim : 缓冲区(Buffer), 窗口 (Window ) , 标签(Tab) , 标记(Mark ), 寄存器(Register) , 插件(Plugin) , vim 脚本(VimScript)。
缓冲区(buffer)
什么是 vim 缓冲区 ?
在弄清楚 Buffer / Window / Tab之前看一下下面这张图:
我们用 vim 一次性打开多个文件 :
如:
vim test1 test2 test3
界面可以看到,只会显示 test1 文件,其他俩个呢? 其实都打开了,vim 把这三个文件都缓存起来了,只是显示出来的是第一个文件 test1 的内容而已,
vim 打开文件的时候就会创建缓冲区,打开几个就创建几个缓冲区,默认加载第一个缓冲区,显示第一个文件的内容。vim 的官方解释:缓冲区是一个文件的内容占用的那部分vim内存。
A buffer is an area of Vim’s memory used to hold text read from a file. In addition, an empty buffer with no associated file can be created to allow the entry of text.
怎么样使用缓冲区?
下面列出几个操作缓冲区的常用命令:
:ls
列出所有的缓冲区
:bn
切换下一个缓冲区,显示下一个文件的内容
:bp
切换上一个缓冲区,显示上一个文件的内容
:b number
这里的 number 是缓冲区的一个数字编号,当 :ls 显示缓冲区的时候都会显示出一个缓冲区的编号
:b fileName
这里的 fileName 是一个具体的文件名称,文件名称可以是正则表达式,也可以是文件名中的个别字母,一旦匹配就会加载该缓冲区,显示该文件。
窗口(window)
什么是 vim 窗口 ?
使用 vim 打开文件,呈现在你眼前的文件内容就是窗口,窗口是用来查看缓冲区的内容的。你可以用多个窗口查看同一个缓冲区,也可以用多个窗口查看不同的缓冲区。
怎么使用窗口 ?
可以在文章 精通 VIM ,此文就够了 中的分屏操作中看到一些详细操作。
标签 (Tab)
什么是 Tab ?
用过浏览器打开网页的我们都知道,打开网页的时候在浏览器的上方通常会有一个网页标签,这样方便我们快速切换不同的网页,vim 也有类似的概念,可以操考上图标记看到。
下面再来理清一下 Buffer / Window / Tab 三者之间的概念:
Buffer 是 vim 打开文件的时候创建的一个缓冲区,用来存储打开的文件 。 使用 vim 每打开一个文件就会创建一个 Buffer 。
窗口是用来展示 Buffer 的信息的,vim 之所以有 Buffer 的概念,大概就是窗口显示文件内容的时候,可以快速显示出来。
Tab 可以想象成浏览器中的标签页,不同之处是 vim 中的 一个Tab 可以有很多个窗口,每个窗口用来展示文件的内容信息。
我们通常可以根据我们的用途来创建 Tab ,比如:我在浏览一个项目,我可以创建两个 Tab , 一个 Tab 用来浏览前端代码, 一个 Tab 可以用来使用浏览后端代码。
下面列举一下关于 Tab 常见的几个命令如下:
:tabnew web
使用 :tabnew 创建一个名字叫 web 的 tab ,当然名字也可以没有,这样会创建一个没有名字的 tab
:tabc
关闭当前的 tab
:tabn
切换到下一个 tab
:tabp
切换到上一个 tab
:tabs
查看一共有几个 tab
gt
这个是一个快捷键在正常模式下按下键盘上的 g 和 t 就会自动切换 tab
1gt
这是上一个命令的拓展,按下数字键(1,2,3,4……)和 gt ,将切换到相应顺序的 tab, tab 的序号默认从 1 开始,上面的命令将会切换到第一个 tab 。
标记 (mark)
什么是 mark ?
我们通常在读一本很厚的书的时候,通常会加上一个书签,用来标记我们的进度,在 vim 当中也有一个类似的概念,我们也可以使用 vim 在我们的文件上打上一个标记,方便我们快速的跳到这个位置。
如何使用 mark ?
按下键盘上的 m , 紧跟着在按下键盘上的(a-zA-Z)当中的任何一个字母,这样一个标记 (mark)例如 ma, mA 这样一个名字叫做 a 或者 A 的标记就建立起来了。
例如 :
ma
意思在当前文件的光标所在的行建立了一个标记,以后我们可以快速定位到这个位置。
如何激活标记?
使用 ‘(单引号) 或者 ` (常规键盘靠近数字键 1 左边的按键,我这里就做撇号) ,紧接着按下当初标记的那个字母就会跳到当初标记的那个位置。
例如 :
`a 和 ‘a
‘a 和 `a有什么区别呢?
‘a (也就是单引号+a) 是跳转到当初标记的行首
`a (也就是撇号+a) 实跳转到当初标记的时候光标所在的位置
‘ 和 ` 的 区别总结
‘(单引号)通常用来跳转到标记的文本的行首
’ (撇号) 通常用来跳转到标记的光标的位置
ma 和 mA有什么区别?
如果要是在文件之间跳转要使用大写的标记才可以,例如现在在当前文件的某处打了一个标记 mA , 离开该文件切换到了另一个文件,此时使用 ‘A 就可以返回之前文件打标记的地方了。
结论:小写字母通常用来单个文件坐标记,大写字母通常是用来文件间坐标记。
:marks
列出所有的标记
:delmarks a
删除 a 标记 ,也可以一次删除多个标记,例如, :delmarks a b c d 这样就删除了 a , b , c , d 四个标记
:delmarks!
删除所有的标记(删除所有小写字母的标记)
总结:
m 是创建标记的关键字
a-zA-Z 是创建标记的名字,小写字母用来创建单个文件的标记,大些字母用来创建文件之间的标记。
` 撇号通常用来定位到之前光标所在的位置
‘ 单引号通常用来定位到标记所在的行
:marks 显示所有的标记
:delmarks 删除指定的标记
:delmarks! 删除所有标记(大些字母的标记除外)
寄存器(register)
什么是 vim 的寄存器?
顾名思义,一个存东西的机器, 在 精通 VIM ,此文就够了 文章中,我详细的列举了复制和黏贴的一些操作,你有没有想过使用 vim 复制东西的时候,它复制到哪里去了呢?
在使用不同操作系统的时候,我们经常会使用复制和黏贴的功能,当我们复制内容的时候,系统把内容放到了剪切板,当我们黏贴使用的时候就会快速的从剪切板里面获取内容。
vim 也有相似的逻辑,当我们使用 y 复制内容的时候,vim 默认把内容寄存到一个无名寄存器,当使用黏贴功能 p 的时候,就会默认从无名寄存器中取出内容。
vim 如何定义一个有名字的寄存器?
vim 默认使用的是无名寄存器,通常情况下我们使用是没有问题的,但是我就想把东西存到一个有名字的地方。
vim 通常使用 “(双引号)加上一个 a-z 的字母来给定义一个有名字的寄存器。
例如如下:
“ayy 表示的是复制当前行内容到 a 寄存器当中
“ap 表示的是从 a 寄存器当中取出内容
vim 如何查看所用寄存器寄存内容呢?
:reg
该命令会列出所有的寄存器
:reg a
会查看 a 寄存器里寄存的内容
如何使用自己命名的寄存器呢?
举例如下:
“ap 使用 p 黏贴命令就可以从指定的寄存器中取出内容了,该例就是从 a 寄存器中取出内容。
无名寄存器是怎么定义的?
“” 两个双引号就是一个无名寄存器,通常我们复制黏贴的时候都会自动启用这个寄存器。
总结:
关于寄存器的用处,这里不去过多的研究了,因为平时用的就少,有兴趣的可以使用 :help reg
查看一下寄存器的详细使用方法。
记住这个一个符号 “ (双引号)可以用来定义寄存器哟!
插件
什么是 vim 的插件?
vim 的插件就是解决用户需求的,比如你在 vim 中想拥有一些类似于 IDE 上的好用的功能,这样就需要插件来祝你一臂之力了。
vim 受很多人喜欢的原因之一可能就是 vim 有很多实用的插件,总有一款解决你的需求。
插件应该怎么用?
我们可以通过插件管理器,把插件绑定到 vim 这款编辑器上,然后我们就可以在使用 vim 的时候使用插件提供的功能了。现在流行的 vim 插件管理器很多,都很好用,也可以 google 查询选择一款最适合自己的插件管理器来安装,更新,卸载插件,推荐一个比较好用流行的插件 vim-plug ,该插件管理器简单易用,github 上面也有很详细的安装教程,这里就不再此过多叙述,如果你使用该插件管理器有什么问题可以下方留言,相信有很多好心人会帮到你。
如果你还不会使用插件,推荐我的一篇文章 精通 vim ,插件基础篇 ,相信可以带你走进 vim 插件的世界。
在哪里寻找 vim 插件呢?
\1. google 搜索,针对你的需求提炼一下关键字,找找看
\2. 推荐一个插件网址:VimOwesome这里拥有很多好用的插件
\3. GitHub ,去 github 上找找看,很多好用的插件这里都可以找的到
\4. 知乎上找一找,有很多人分享好用的插件。
假如你是一个 vim 插件迷,或者有十分好用的插件,欢迎你在留言区推荐。
vim 的脚本(VimScript)
什么是 VimScript ?
我们可以类比一下 javascript , VimScript 是vim 的脚本语言,一门专注做 vim 的编程语言,上面提到的插件很多都是使用 VimScript 去实现的。
推荐一些学习 Vimscript 脚本的资源:
如果你有好的资源欢迎你的推荐。
总结
真佩服你阅读到了这里 , 很高兴和你一起学习进步,点个关注吧。
标签:文件,插件,标记,vim,关键字,理解,寄存器,缓冲区 From: https://www.cnblogs.com/nevertoolate22/p/16848138.html