《构建高可用Linux服务器 第3版》—— 3.1 Vim的基础用法及进阶心得

简介:

本节书摘来自华章出版社《构建高可用Linux服务器 第3版》一 书中的第3章,第3.1节,作者:余洪春 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.1 Vim的基础用法及进阶心得

vi作为开源系统的默认编辑器,现在为越来越多的人了解和熟悉,而Vim作为vi的升级版本,在功能上又有明显提高。由于它方便实用,现在越来越多的开发人员喜欢将其作为代码编辑工具。vi更符合UNIX传统,它通过管道机制和系统内的各种积木工具打交道,它讲究的是和系统内的工具程序协作来完成用户的任务。Vim是vi最受欢迎的变种之一,它除了继承了vi迅捷的编辑方式外,在功能方面也已经比原始的vi强大很多。它现在是CentOS 5.8及FreeBSD 8.1下首选的强大编辑器之一。Vim的基础功能如表3-1所示。

screenshot
screenshot
screenshot

另外,FreeBSD 8.1中默认的Vim并不太好用,推荐大家采用Vim模板的形式编辑当前用户的.vimrc文件,让Vim可以更方便地为我们工作,模板文件如下:

set nobackup

set noswapfile

set nohlsearch

set nonumber

set cindent

set autoindent

set shiftwidth=2

set tabstop=2

set softtabstop=2

set expandtab

set ruler

set mouse=v

syntax on
1.常用设定

下面是一些Vim中常用的设定及其具体含义:

set nobackup:不要备份文件,使用backup备份文件(原文件加后缀~)。

set noswapfile:不生成.swap文件。我在编辑文件之前总有个习惯,一般会将其原文件进行.bak备份,然后才很放心地在相关文件上进行修改。如果操作谨慎的朋友建议不要此项。

set number:显示行号。

set cindent:设定C风格缩进,可使用nocindent取消设置。

set autoindent:设定自动缩进,每行缩进与上一行相等,可使用noautoindent取消设置。

set shiftwidth=2:设定缩进为两个空格。

set tabstop=2:设定制表符为两个空格。

set softtabstop=2:设定软制表符为两个空格。

set expandtab:缩进和(软)制表符使用空格替代,可用noexpandtab取消设置。

set ruler:显示光标所在行列号。

set mouse=v:如果我们用set mouse=a启动所有模式,屏蔽了鼠标的右键功能,那么可以用此语法让其在Vim可视化模式下也能使用鼠标右键复制功能。

syntax on:启动语法高亮。

下面是其中涉及的名词术语的相关解释:

cindent

使用C语言的缩进方式,根据特殊字符如“{”、“}”、“:”和语句是否结束等信息自动调整缩进。在编辑C/C++等类型文件时自动设定。

softtabstop

软制表符宽度,设置为非零数值后使用Tab键和Backspace键时光标移动的格数等于该数值,但实际插入的字符仍受tabstop和expandtab控制。

我们在按照如上模板文件配置了Vim后应该会发现Vim比以前好用多了。我目前将其模板文件应用于线上FreeBSD、CentOS及Debian系统中。当然了,这些也只是Vim的基础配置,朋友们可以根据自身的习惯配置更个性化的Vim。

2.日常系统维护工作中的Vim使用心得

1)FreeBSD 8.1下的Vim与CentOS 5.8下的Vim是不一样的,建议优化各用户下的.vimrc文件。我现在的习惯做法就是随身带.vimrc配置模板,哪台机器上有我的账户,我就直接导入到那台机器的/home/andrewy的账户下,这样用起来就得心应手了。

2)以上用法仅仅满足System Administrator的基础工作,如果是开发人员,强烈建议继续深入研究Vim的高级语法及插件。特别是PHP或Java开发人员,用Vim的基本功能配合插件编辑程序代码会是件很轻松的事情。

3)如果习惯图形界面使用MS的朋友,可以下载一个gVim来学习及工作。

4)在加深Vim学习的同时,也建议加强对Sed的理解和学习,尽量用Vim+Sed的方式来完成日常中的编辑工作,例如Shell、Python和Perl脚本,以及和系统相关的配置文件。

5)尽量用h、j、k、l来进行左下上右操作,这远远比你用键盘的方向键更有效率,但这是大家很容易忽视的一个问题,有的UNIX机器不支持方向键。

6)Vim不仅仅是一个编辑器,你完全可以用它来查看服务器的配置文件.conf、.php、.jsp文件及.sh等程序文件。如果用得很熟练,也可以查看日志文件,注意最后不保存退出即可。

7)这里只介绍两个有用的插件taglist和ctags(事实上我也基本只用这两个)。用过Eclipse的人可能会对按住Ctrl键点击程序中的函数、变量等可自动跳转到其定义处的功能赞叹不已,其实,这个功能Vim也可以实现,用的就是ctags。Vim的插件功能非常强大,有兴趣的朋友可以深入了解一下。

8)我现在利用gVim辅助Excel等系统处理数据时,主要利用了正则替换、列模式等功能。比如把“2006-6-30”替换为“2006.6.30”或“2006.06.30”。

9)我现在用得较多的gVim主要用来编辑Shell文件和处理文本文档(比如我自己的电子文档),感觉效果非常理想。

10)C文件也是可以用Vim来编辑的,当然,用Vim和gVim来编辑Python、Java和PHP代码也是完全可行的。

相关文章
|
8月前
|
Linux 开发工具
LS-LINUX-001 Vim的使用方法
本文介绍了终端编辑器 Vim 的基础使用方法及 Linux 系统中 `systemctl` 命令的操作技巧。Vim 部分涵盖编辑模式与命令模式切换、常用编辑指令;`systemctl` 部分以 `dhcpcd` 服务为例,讲解了服务的启动、停止、重启、状态查询及开机自启设置等操作,适合初学者快速掌握系统管理技能。
196 13
|
9月前
|
安全 Linux 开发工具
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
676 3
|
5月前
|
人工智能 负载均衡 监控
使用 Go 和 Gin 实现高可用负载均衡代理服务器
本文基于Go语言和Gin框架,实现了一个企业级负载均衡代理服务器,支持动态路由、健康检查、会话保持等功能。具备高可用性与高性能,单节点支持100k+ QPS,延迟达亚毫秒级,并提供完整的压力测试方案与优化建议。
198 7
|
5月前
|
监控 Linux 应用服务中间件
linux查看日志文件tail -f用法
在 Linux 中,查看和监控日志文件是系统管理员和开发者常用的操作之一。tail 命令就是用来查看文件内容的,它默认显示文件的最后部分。tail -f 是 tail 命令的一个非常有用的选项,用于实时查看和跟踪日志文件的更新,尤其是在监控运行中的服务时非常有用。
772 0
|
6月前
|
NoSQL Linux 开发工具
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
本文介绍了yum 包管理工具、Vim 编辑器、gcc/g++ 编译器、gdb 调试器、编译原理及 Makefile 的使用,同时还配备了如何使用,以及图解。旨在帮助读者更好地理解和应用这些工具与技术。
362 0
|
安全 Linux 编译器
探索Linux内核的奥秘:从零构建操作系统####
本文旨在通过深入浅出的方式,带领读者踏上一段从零开始构建简化版Linux操作系统的旅程。我们将避开复杂的技术细节,以通俗易懂的语言,逐步揭开Linux内核的神秘面纱,探讨其工作原理、核心组件及如何通过实践加深理解。这既是一次对操作系统原理的深刻洞察,也是一场激发创新思维与实践能力的冒险。 ####
|
10月前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
813 32
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
1921 3
|
弹性计算 监控 容灾
阿里云ECS提供强大的云上灾备解决方案,通过高可用基础设施、多样的数据备份方式及异地灾备服务,帮助企业实现业务的持续稳定运行
在数字化时代,企业对信息技术的依赖加深,确保业务连续性至关重要。阿里云ECS提供强大的云上灾备解决方案,通过高可用基础设施、多样的数据备份方式及异地灾备服务,帮助企业实现业务的持续稳定运行。无论是小型企业还是大型企业,都能从中受益,确保在面对各种风险时保持业务稳定。
286 4
|
存储 运维 搜索推荐