收集云服务器优惠信息
记录云服务器使用心得

Vi/Vim高级用法和使用技巧讲解 适用于Linux管理员

在前面的文章中,小编整理了基本Vi/VIm技能的提示和技巧,除了一些特定的原因之外,学习如何在Linux中有效使用文本编辑器是系统管理员或工程师的一项必备能力,并且是通过任何主要Linux认证体系(例如LFCS、LFCE、RHCSA和RHCE)所需的能力。

在本文中,小编将整理一些更强大的Vi/Vim使用技巧,如果你能掌握以下内容,那么使用Vi/Vim工具将会更加的驾轻就熟。废话不多说,一起来看看吧。

创建水平或垂直的Vim窗口

事实上,你可以启动具有多个水平或垂直分区的Vi/Vim,以在同一主窗口内编辑单独的文件。以下是使用两个水平窗口启动Vi/Vim,test1位于顶部,test2位于底部,如下所示:

vim -o test1 test2

在水平窗口中启动Vim编辑器

使用两个垂直窗口启动Vi/Vim,test3位于左侧,test4位于右侧,如下所示:

vim -O test3 test4

 

在垂直窗口中启动Vim编辑器
你可以使用通常的Vi/Vim移动操作(h:右、l:左、j:下、k:上)来在不同的窗口之间切换光标。

 

  • Ctrl+w k – 顶部
  • Ctrl+w j – 底部
  • Ctrl+w l – 向左
  • Ctrl+w h – 向右

在Vim中更改大写或小写

请注意,此技巧仅适用于Vim工具。在下面的示例中,X是一个整数。

  • 要将一系列字母更改为大写,请将光标置于第一个字母上,然后在ex模式下键入gUX,最后按键盘上的向右箭头。
  • 要更改X个单词数,请将光标置于单词的开头,然后在ex模式下键入gUXw。
  • 要将整行更改为大写,请将光标置于该行的任意位置并在ex模式下键入gUU。

例如,要将整个小写行转换为大写,那么应该将光标放在该行的任意位置并输入gUU:

在Vim编辑器中将字符串更改为大写

例如,要将2个大写单词转换为小写,应该将光标放在第一个单词的开头并输入gu2w:

在Vim编辑器中将字符串转换为小写

在Vim插入模式下删除文本

虽然你可以在ex模式中删除字符或多个单词(例如,dw删除一个单词),但你也可以在插入模式中进行如下操作:

  • Ctrl + h:删除光标当前所在处的前一个字符。
  • Ctrl + w:删除光标当前所在处的上一个单词。为了使其正常工作,光标必须放置在需要删除的单词后面的空白处。
  • Ctrl + u:删除从光标所在位置左边的字符开始的当前行。

在Vim中移动或复制现有行

虽然确实可以在ex模式中使用众所周知的dd、yy和p命令来删除、复制和粘贴行,但这些命令只在光标放置在要执行这些操作的位置时才起作用。

好消息是,使用copy和move命令,无论光标当前放置在何处,都可以执行相同的操作。

对于该示例,小编将对一首英文短诗进行操作。首先,我们将让Vim显示行号(在命令模式下输入:set nu,将这个主要作为额外提示),然后将使用:3copy5(同样在命令模式下)将第3行复制到第5行下方:

在Vim中移动复制现有行

现在,撤销最后一次的操作(Esc + u),然后输入:1move7将第7行替换为第1行。请注意第2到第7行是上移的,而原来的第1行现在占据了第7行的位置,如下图所示:

在Vim编辑器中移动行

在Vim中导航和计算模式匹配

本技巧是基于替代命令(上部文章中的第七个技巧),唯一的区别在于它不会删除任何内容,因为替换行为被n选项覆盖,从而得到指定模式出现次数的计数。

请确保不要漏掉任何正斜杠!

:%s/pattern//gn

例如,寻找“libero”单词,命令如下:

:%s/libero//gn

在Vim中按搜索模式计数匹配项

在ex模式下,按n键(小写 n)可移动到下一个模式匹配项。要移动到上一个实例,按N键。

在Vim中打开文件的指定行

默认情况下,当你启动Vi/Vim时,光标最初放置在编辑的最后一行。如果你想打开程序并让光标直接放在指定行上,可以使用以下技巧:

# vim filename +line_number

例如,打开forever.txt并将光标置于第6行,可以写为:

# vim forever.txt +6

接下来让我们稍微调整一下这个例子。假设我们想要在出现第三次模式匹配的行上打开文件,可以写为:

# vim filename +$(grep -in pattern filename | sed -n 3p | cut -d: -f1)

这里简单介绍下上面的命令做了什么:

  • grep -in pattern filename:显示文件名中出现模式的所有行,行号位于每个输出行的开头。
  • sed -n 3p: 会显示前面管道输出的第三行。
  • cut -d:-f1:返回上一个管道的第一个字段,冒号(:)是字段分隔符。
grep -in forever forever.txt
grep -in forever forever.txt | sed -n 3p
grep -in forever forever.txt | sed -n 3p | cut -d: -f1
在指定行打开Vim编辑器

这样前面命令的结果然后传递给Vi/Vim,以在指定的行打开程序。上面的示例返回值是5传递给了Vi/Vim。

定制Vim环境

如果你使用Vi/Vim编辑配置文件或编写代码,你可能希望在首次打开程序时显示行号,并设置自动缩进,这样当你按下回车键时,光标将自动放置在正确的位置。此外,你可能还想自定义一个制表符占据的空格数。

虽然你可以每次启动Vi/Vim时都这样做,但更容易的方法是在~/.vimrc中设置这些选项,这样它们将自动应用:

set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab

有关自定义Vi/Vim环境的更多选项,可以参考一些Vim资料文档。

使用Vimtutor获取一般Vim帮助

如果你需要提高一下你的Vi/Vim技能,可以从命令行启动vimtutor,它会显示完整的Vi/Vim帮助,你可以随时参考,而无需打开网页浏览器搜索如何在Vi/Vim工具中完成某个任务。

vimtutor

Vim编辑器帮助和选项

请注意,你可以导航或搜索Vimtutor的内容,就像在Vi/Vim中导航常规文件一样。

总结

上面分享了一些高级Vi/Vim提示和使用技巧,它们应该可以帮助你在使用命令行工具编辑文本时更加有效。当前,肯定还是有一些其它方法技巧的,这里就不一一列举了,可以自行找些资料看看。

众所周知,掌握Vi/Vim技巧有着重要的意义,特别是对于Linux管理员和开发人员来说具体以下功能作用:

  • 效率提升: 由于Vi/Vim的快捷键和命令丰富,可以快速完成各种编辑任务,节省大量时间。
  • 无需图形界面: 无需图形界面即可运行,适用于SSH远程连接等场景,方便在服务器上进行编辑操作。
  • 强大的编辑功能: 该工具提供了许多强大的编辑功能,如多级撤销、正则表达式搜索替换、宏录制等,适用于处理复杂的文本编辑任务。
  • 跨平台兼容性: 它是跨平台的编辑器,在各种操作系统上都可以运行,包括 Linux、Unix、macOS 等,具有良好的兼容性。
  • 开源自定义: 用户可以根据自己的需求定制配置文件(如 .vimrc),添加插件和主题,使编辑器更加适合个人习惯和工作流程。

总的来说,掌握Vi/Vim技巧可以帮助用户更高效地进行文本编辑和编程工作,提升工作效率和质量。如果你想更方便的使用命令行编辑器,那么了解上述内容百利而无一害。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《Vi/Vim高级用法和使用技巧讲解 适用于Linux管理员》
文章链接:https://www.ecscoupon.com/4951.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!