前言

vim的marks命令指的是标记文本文件或者文本文件的某一列,从而实现快速跳转。那么,这个命令的实际意义在于提升文本编辑的效率,毕竟,如果有大量的文本文件需要编辑,那么,在各个文件之间的跳转是十分有效率的一件事情。(说人话,这个命令是锦上添花的,不是雪中送炭的命令,会使用这个命令会极大的提高你的文本编辑效率,不会也没关系,仅仅是编辑文本的速度慢许多而已)。




文本间的跳转示例:

比如,我有这么三个文件,tomcat1.service,tomcat2.service,tomcat3.service,这三个文件的位置是在不同的地方,比如,一个在a目录下,一个在b目录下,一个在c目录下。这三个文件的内容如下:

tomcat1.service

[Unit]
Description=web server tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk"
PIDFile="/usr/local/tomcat1/bin/tomcat.pid"
ExecStart=/usr/local/tomcat1/bin/startup.sh
ExecReload=/bin/kill -s HUP
ExecStop=/bin/kill -s QUIT
PrivateTmp=true
[Install]
WantedBy=multi-user.target

tomcat2.service

[Unit]
Description=web server tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk"
PIDFile="/usr/local/tomcat2/bin/tomcat.pid"
ExecStart=/usr/local/tomcat2/bin/startup.sh
ExecReload=/bin/kill -s HUP
ExecStop=/bin/kill -s QUIT
PrivateTmp=true
[Install]
WantedBy=multi-user.target

tomcat3.service

[Unit]
Description=web server tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk"
PIDFile="/usr/local/tomcat3/bin/tomcat.pid"
ExecStart=/usr/local/tomcat3/bin/startup.sh
ExecReload=/bin/kill -s HUP
ExecStop=/bin/kill -s QUIT
PrivateTmp=true
[Install]
WantedBy=multi-user.target

那么,如果不会使用这个marks命令,我们通常编辑这几个文件就是这样的:

[root@hdp-1 ~]# vim tomcat1.service
[root@hdp-1 ~]# vim tomcat2.service
[root@hdp-1 ~]# vim tomcat3.service

也就是手动敲这几个命令,然后在这几个命令之间反复切换,调试文本内容,直到达到我们的文本编辑目的。

如果,我们会使用marks命令的话-----

[root@hdp-1 ~]# vim tomcat1.service

依此类推,tomcat2文件输入命令 makr W 然后回车,tomcat3文件输入命令 mark E 然后回车

此时,我们在打开tomcat1.service 这个文件,如果想要在去调整编辑tomcat3.service 这个文件,那么,此时我们按键盘的 `(也就是波浪线的英文状态)大写E 就可以跳转到tomcat3.service 啦,是不是我们使用mark命令标记每个需要经常编辑的文件后就可以快速的不用管这些文件是在哪个目录下,都可以有快捷方式快速的跳转到想编辑的文件啦???这样的操作会给你飞一般的体验哦(其实,`Q `W `E 就相当于我们自己给这三个文件定义了相应的快捷跳转键啦)。




marks命令详解:

以上是使用了一个例子来讲解文本文件之间的快速跳转的好处。

那么,我们应该考虑一下了,这个marks 记录这些跳转标识有多少时间呢?答案是会一直保持记录,即使重启服务器。所以,如果你在某个经常使用的服务器上,有一些经常需要编辑修改的文件,那么,请你在第一次打开这个文件的时候,在命令行模式下 输入  mark  自定义的一个大写字母  。然后,你可以不用记住这个文件的存放路径,你只需要任意打开一个文本文件,然后 拿起你高贵的左手,按下波浪键和自定义的那个大写字母(注意,此时必须是在normal模式下哦),就可以立刻马上的跳转到那个你日思夜想的文件啦。

Vim允许在打开的文件中放置自定义的标记。命令 mark a 表示用 a 标记当前的光标位置。

可以在文本中使用 26 个标记 (az后AZ)。这些标记是不可见的,只是一个由 Vim 记住的位置。

小写标记值在每个缓冲区(即Vim打开文件)局部可见,而大写标记则全局可见,说人话就是,大写的自定义字母可以作用所有文本文档。

标注 设置者 使用
a-z 用户 仅对当前的一个文件生效,也就意味着只可以在当前文件中跳转
A-Z 用户 全局标注,可以作用于不同文件。大写标注也称为「文件标注」。跳转时有可能会切换到另一个缓冲区
0-9 viminfo 0 代表 viminfo 最后一次被写入的位置。实际使用中,就代表 Vim 进程最后一次结束的位置。1 代表 Vim 进程倒数第二次结束的位置,以此类推

要跳到一个你定义的标记,可以使用命令 `{mark},这里 {mark} 是指定义标记的那个字母。所以,移到标记a的命令是:`a(注意,此时必须是normal模式哦,而不是命令模式)

Vim自带一些特殊的标记,包括:

命令 跳转至
'[ 与 `[ 上一次修改或复制的第一行或第一个字符
'] 与 `] 上一次修改或复制的最后一行或最后一个字符
'< 与 `< 上一次在可视模式下选取的第一行或第一个字符
'> 与 `> 上一次在可视模式下选取的最后一行或最后一个字符
'' 与 `' 上一次跳转之前的光标位置
'" 与 `" 上一次关闭当前缓冲区时的光标位置
'^ 与 `^ 上一次插入字符后的光标位置
'. 与 `. 上一次修改文本后的光标位置
'( 与 `( 当前句子的开头
') 与 `) 当前句子的结尾
'{ 与 `{ 当前段落的开头
'} 与 `} 当前段落的结尾

这里,比较有用的是最后四行,这个请牢记哦。也就是 `()  和  `{}

那么,如果我是在部署某个服务,这个服务有很多的文件需要修改,我忘记我自定义的那个大写字母是哪个了,怎么办?或者我仅仅只是跳转到某个文件的最后一次更改过的地方,怎么办?

这个就简单了,命令行模式下的 marks命令记录了一切你想知道的信息。比如:

自定义的AEPQW这些对应的哪些文件都写的很明白,连路径都写出来了。这下,聪明如你,应该可以知道我的passwd文件在哪里了吧???(O(∩_∩)O哈哈~)

打开的文件,最后光标定位在哪一行哪一列也不用我说了吧??(line表示行,col表示列)

Linux的vim不得不说,就是这么强大,就是这么能打!!!!!!!!!!!!!

vim的marks命令详解相关推荐

  1. ubuntu安装VIM教程与命令详解

    目录 1.VIM简介 2.ubuntu安装VIM 3.安装命令详解 3.1.sudo 3.2.apt-get && install 3.3.vim-gtk 4.VIM参数配置 1.VI ...

  2. Linux Vim搜索替换命令详解 :%s/foo/bar/g

    今天来分享几个非常好用的vim命令,学会后,工作效率翻倍! 1. 官方文档 官方文档:Search and replace The :substitute command searches for a ...

  3. Vim位置标记mark详解

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

  4. head和tail命令详解

    基础命令学习目录首页 原文链接:https://www.cnblogs.com/amosli/p/3496027.html 当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相 ...

  5. c linux time微秒_学习linux,看这篇1.5w多字的linux命令详解(6小时讲明白Linux)

    用心分享,共同成长 没有什么比每天进步一点点更重要了 本篇文章主要讲解了一些linux常用命令,主要讲解模式是,命令介绍.命令参数格式.命令参数.命令常用参数示例.由于linux命令较多,我还特意选了 ...

  6. nmcli命令详解_【高新课堂】第一百二十五期Liunx必备命令

    点击上方"蓝字"关注我们吧! Liunx系统启动默认为字符界面,一般不会启用图像界面,所以对命令行的熟练程度能更加高效.便捷的管理Liunx服务器. 这节课向读者介绍Liunx系统 ...

  7. linux kill命令信号,linux kill命令详解

    kill 命令的用途 kill 命令很容易让人产生误解,以为它仅仅就是用来杀死进程的.我们来看一下 man page 对它的解释:kill - send a signal to a process. ...

  8. 【Linux】4.Linux cat命令详解

    Linux cat命令详解 cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: 1.一次显示整个文件 cat filename 2.从键盘创建一个文件 ...

  9. git config设置用户名_一个神奇的工具,实现多人协作,git常用命令详解

    git是一款开源的分布式版本控制工具,在世界上所有分布式版本控制工具中,git是最快.最简单.最流行的. git的作者是Linux之父:Linus Benedict Torvalds,当初开发git仅 ...

最新文章

  1. Python 3.5将支持Async/Await异步编程
  2. Qt修炼手册4_信号与槽
  3. linux 提取ko文件,Linux获取so/ko文件版本号教程
  4. vmware克隆Centos6.4虚拟机网卡无法启动问题
  5. api arx autocad_AutoCAD ObjectARX(VC)开发基础与实例教程 此书是利用ObjectARX对AutoCAD二次开发的教程 - 下载 - 搜珍网...
  6. linux命令详解之df(6/19)
  7. VMWare云计算初探
  8. 蒙特卡洛树搜索_蒙特卡洛树搜索与Model-free DRL
  9. 项目管理:文档可测试化
  10. [Linux] PHP程序员玩转Linux系列-Nginx中的HTTPS
  11. C/C++ 取整函数
  12. Modelsim下载安装【Verilog】
  13. 营业执照在线生成_潍坊综合保税区发出全省首张覆盖四大市场主体类型的“微信秒批”营业执照...
  14. 没事干的时候可以看这些,超全超多…
  15. 判定平方数(Python)
  16. VLDB2017论文阅读-Cohort Query Processing
  17. 对抗拖延症最直接有效的方法
  18. 【免费领取】趣味测试小程序源码/内置超多趣味测评+可插入流量主广告位微信小程序源码
  19. 深度linux密码忘记,Deepin深度系统登录密码忘记重设
  20. 28BYJ-48步进电机介绍

热门文章

  1. C语言:偶数阶魔方阵的实现(四的倍数)
  2. 公司企业网站怎么做?
  3. 【模型训练】YOLOv7道路裂缝检测
  4. Minecraft 1.16.5模组开发(五十三) 多种生物类型(Variant)
  5. App数据重点分析的4个方面
  6. 将图片转换成svg格式
  7. RT-Thread 的自动初始化机制
  8. BUUCTF:[BSidesCF 2020]Had a bad day
  9. 案例解析 | 广东自由流收费稽核方案,AI稽核新模式
  10. 电池包预充RC电路仿真