zoukankan      html  css  js  c++  java
  • 精通 vim 你应该理解的几个名词

    原文地址:精通 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 脚本的资源:

    Vimscript 前言_w3cschool

    Vimscript 英文脚本教程推荐

     

    如果你有好的资源欢迎你的推荐。

     

    总结

  • 相关阅读:
    ssh链接服务器并且拷贝文件
    php读取文件内容
    appendchild的两个正确用法以及ajax
    创业点滴
    随笔——支持IE8的一个ajax的标准写法。
    添加评论,查看评论等——在线留言板4
    删除留言和更新留言——在线留言板3
    git常用命令
    浏览器版本控制
    洛谷 P2296 【寻找道路】
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/14162615.html
Copyright © 2011-2022 走看看