像adobe reader这样的pdf阅读器在窗口左侧有一个书签栏,其中列出了pdf文件的目录结构,以方便在pdf文件的章节目录中进行快速跳转。无论是pdf的阅读器还是其它的普通文本编辑器,通常都有一个历史文件列表,其中记录了最后若干次打开的文件,以方便用户快速的查看最近查看过的文件。类似的功能vim自然也有,这就是它的标记功能。
        vim的移动命令已经相当丰富和灵活,在标记功能的帮助下,你浏览文件的效率将得到极大的提高。
要查看标记的帮助,请输入:help mark
        标记的概念很简单,就是记录了一个位置在文件中的行和列的位置,然后无论光标当前在哪,都可以跳转到记录的这个位置。
        首先是要设置标记,移动光标到你要标记的位置,然后按下ma或者:mark a或者,取出可创建一个名称为a的标记,记录了当前光标所在位置(m是mark的简写),然后当光标移动到了文件的其它地方之后,通过命令`a即可跳转到标记的位置(`是单反引号,位于数字键1的左边和ESC键的下方),也可以通过'a命令跳转到标记位置所在的行首('是单引号),`a与'a的不同在于`a能跳转到标记的列位置,而'a只跳转到标记位置所在的行首。标记的名称可以是a-zA-Z这26个字母的大小写,这表示最多只能有52个标记。在你设置了标记之后,你又对文件进行了修改,比如增删了一些行,标记的行数仍然会保持正确,当然前提是标记所在的行没有被删除,这种情况下标记也就被删除了。
        删除标记a的命令是:delm a或者:delmark a,也可以一次性删除多个标记,:delm a b c表示同时删除a,b,c三个标记。
        要查看全部标记列表可以输入:marks,也可以通过:marks a b c查看三个标记的位置,注意这比设置标记的冒号命令要多一个复数s。
        字母标记是可以手工指定的标记,小写的字母标记仅在当前文件中有效,这意外着当前打开的多个文件可以拥有各自的a-z标记,如果关闭了当前正在编辑的文件,则此文件的这些标记就全部丢失了,而大写的字母标记则可以用在文件间进行跳转。无论是小写还是大写的字母标记,在vim退出后就都全部丢失了。利用:delm!或者:delmarks!可以清除当前文件中的全部小写字母标记,大写字母标记在文件间跳转都有效,它不局限于一个文件,所以清理文件内部标记的命令当然不能清除它。如果要想在退出vim时将这些标记保存下来以便下次打开这些文件时仍然可以使用,可以使用viminfo文件,详细请查看帮助:help viminfo。
        除了字母标记,还有0-9这十个数字标记,但数字标记是vim预置的标记,不能手工进行修改,0号标记记录了vim上次退出时的光标位置。而1-9则是最近编辑的九个文件的最后关闭时光标位置,也即是历史记录。
        左中括号标记[记录了最后一次修改或者复制的文本块的起始位置,而右中括号则记录了这个文本块的结束位置。这是个比较有用的标记,当你由命令模式进入插入模式输入了一段文本之后,想跳转到这段新文本的起始位置处,就可以使用`[或者'[,如果还想再跳转回来,则可以按`]或者'],如果是复制或者粘贴了一段文本块,这个办法仍然适用。
        尖括号标记是用于标记最后一次用visual-mode选择的文本块的起止位置,左括号标记开始位置,右括号标记结束位置,这样,你用visual-mode选择了一段文本后,用`<跳转到此文本块第一个字符,用`>则跳转到最后一个字符的位置。用'<和'>则分别跳转到起止位置所在的行的行首。这样,如果你在visual-mode下选择了一段文本,而后又退出了visual-mode,这时如果你想复制这段文本,就可以先用`<跳到文本开始位置,按下y再用`>跳到文本结束位置,来实现不需要再次选中的情况下进行复制。
        单引号标记`与'记录了最后一次用标记进行跳转之前的光标位置,这通常用于跳转到某处后重新回到原来的地方。
        双引号标记记录的是最后一次离开本文件时的光标位置,如果是第一次打开,则它位于第一行第一个字符处。
        ^标记记录了最后一次退出插入模式时光标的位置,以方便在插入文本后又执行了一些命令行命令的情况下,回到最后的插入点继续插入新文本。
        点号标记.记录的是文件最后一处修改的位置,如果使用了像替换这样一次性修改多个位置的操作,则这个标记将指向该操作所修改的最后一处文本的位置。
        有了以上这些标记,你可以方便的在文件内部自己定义的标记之间来回切换,也可以打开历史文件列表寻找最近编辑过的其它的文件,在执行了一系列操作之后,可以方便的回到最后一次插入文本的位置和文件最后一处修改的位置,诸如此类。但是因为标记的数量是有限的,文件内部最多可以定义26个自己的标记(小写字母),因为如果想用标记来实现文章开头所讲的类似pdf阅读器的书签功能,仍然是不现实的,比如《红楼梦》就有一百二十回,要想达到大纲书签的功能,就要用到下一节所讲的vim的又一非常有用的功能了,那就是vim的折行功能。

[倚天屠龙记] vim 标记相关推荐

  1. [倚天屠龙记] vim 开篇

    武林至尊,宝刀屠龙,号令天下,莫敢不从!倚天不出,谁与争锋? vim与emacs两大编辑器之间的圣战由来已久,似乎也看不见和平的希望.vim号称编辑器之神,而emacs则自封神之编辑器.vim以快捷高 ...

  2. [倚天屠龙记] vim 查找与替换(简单查找)

    [倚天屠龙记] vim 查找与替换(简单查找) {{{         搜索与替换是文本编辑器的最重要的功能之一,也是其能力的一个缩影.         接下来用几节的篇幅重点叙述vim的查找与替换功 ...

  3. [倚天屠龙记] vim 查找与替换(正则表达式)

    [倚天屠龙记] vim 查找与替换(正则表达式) {{{ 正则表达式是文本处理领域中的一个强大的工具,它可以让文本处理的能力呈指数级的提升,如果一款文本编辑器不支持正则表达式,那么它就算不上是一个现代 ...

  4. vim中寄存器(剪切板)使用和vim标记

    vim中寄存器使用和vim标记. - rainysia的专栏 - 博客频道 - CSDN.NET  http://blog.csdn.net/rainysia/article/details/7721 ...

  5. Vim标记-让你在Vim中飞来飞去

    m-标记 标记可以是0-9,a-z,当前文件内飞. 也可以是A-Z,在全局飞. 查看所有标记 可以在Vim命令行模式下用命令 :marks 获得所有Vim标记的列表. 参考 Vim位置标记mark详解 ...

  6. [倚天屠龙记] vim 折叠

    这一节讲述vim的一个非常实用的功能----折行功能,它可以将暂时不关心的连续若干行折叠成一行显示,在需要时再予以展开.下面是本文写作时的情形: 折叠的主要创建方式有手工创建.语法折叠.按缩进等级折叠 ...

  7. [倚天屠龙记] vim 复制与粘贴

    对于任何一款文本编辑器而言,复制与粘贴都是最基本的功能,vim在此方面自然不甘示弱.事实上,得益于其丰富的移动命令,vim的复制与粘贴是相当快捷而高效的. vim的复制命令是y和Y,它是yank的简写 ...

  8. 【无标题】人大金仓数据库下载使用

    1.下载地址:https://www.kingbase.com.cn/index/download/c_id/401.html 2.下载安装文件和授权文件 3.下载之后解压这两个文件,会看到一个Kin ...

  9. Vim位置标记mark详解

    转载自Vim教程网Vim位置标记mark详解-Vim入门教程(34) Vim的位置标记可以实现在文档中的快速跳转.可以通过命令 mark 或缩写形式 m 手动设置位置标记,Vim也会自动记录某些自身感 ...

最新文章

  1. winform利用CefSharp调用google浏览器内核ChromiumWebBrowser,与JS交互
  2. 设计模式(享元模式)
  3. 【Python-ML】SKlearn库网格搜索和交叉验证
  4. Fastjson 爆出远程代码执行高危漏洞,更新版本已修复
  5. [云炬python3玩转机器学习]5-10 更多关于线性回归的讨论
  6. boost::core模块实现分配器重新绑定的实例
  7. matlab aviobj,MATLAB AVI 视频读取处理
  8. pycharm创建一个Hello
  9. php开发uki引流脚本,UKI引流脚本
  10. NextArch Foundation 下一代架构基金会
  11. 27.Yii App应用
  12. Microsoft Research和Windows Azure合作伙伴对数据发现和共享的影响
  13. 糗事百科成人版段子爬虫实战
  14. html5自动淡入淡出图片,利用html5实现图片的淡入淡出效果
  15. 这两款好用的识别图片文字的软件app值得你们收藏
  16. 论文复现-1:Perturbation CheckLists for Evaluating NLG Evaluation Metrics
  17. HTML的相关标记和属性
  18. SpringCloud系列之版本选择
  19. 预防新型冠状病毒感染的肺炎口罩使用指南
  20. python中用来计算集合并集的是_Python集合(set)并集

热门文章

  1. 解决蓝牙耳机连笔记本后音质变差的问题(win10)
  2. Cocos2d-x 3.x 图形学渲染系列十三
  3. Maven Nexus 配置和使用
  4. c语言以正确定义字符变量ch1,【课外习题】二、 C语言程序设计的初步知识
  5. 计算文本文件中特定字符的数量(Python)
  6. Windows FTP 服务器实现只能上传不能下载或删除
  7. 2022流行的几个女士手表品牌推荐
  8. 【深度学习框架简单梳理】电影评论二分类问题
  9. 零基础学cad要多久_零基础学CAD,快捷键倒背如流值得一试,很有技巧,实用操作!...
  10. 单片机sleep函数的头文件_C语言中的sleep() 函数