Vim 的常用技巧及配置,高效运维之 Vim 模板




前言

  在编程世界中,编辑器的选择可以极大地影响开发者的编码效率。Vim,这款古老而强大的文本编辑器,以其独特的编辑模式和高度可定制性,赢得了无数程序员的青睐。本文旨在为Vim新手和有经验的用户汇总常用的方法和进阶配置,助你提升编辑效率


提示:以下是本篇文章正文内容,下面案例可供参考

一、Vim 使用技巧

  对于新手来说,Vim 可能看起来既复杂又难以驾驭,这主要是因为它拥有多种操作模式,并且需要依赖复杂的键盘快捷键,这些都可能让初学者感到困难。然而,一旦掌握了 Vim 的基础操作,你将不可避免地被它的强大和灵活性所吸引,同时你的工作效能也将迎来显著的提升,以下是 Vim 的多种常用快捷键,希望能够帮助到大家。
  Vim的设计理念之一是“双手不用离开键盘”,这一点在高效编辑技巧中体现得淋漓尽致。从快速移动光标到复杂文本操作,每一个动作都经过精心设计,以减少不必要的运动。

1、移动光标

  在启动Vim之后,你首先会进入普通模式,这是进行诸如光标移动、复制粘贴等基本编辑操作的地方。此时,你可以按照特定的键盘布局执行操作,如下:

      k
       ↑ \uparrow
   h ← \leftarrow     → \rightarrow l
       ↓ \downarrow
       j

  • h --向左移动光标 l --向右移动光标 // 这两个的操作是十分容易记住的
  • j --向上移动光标 k --向下移动光标 // 这里的技巧是可以想象j 的突起是朝下的,表示光标向下移动

2.、复制粘贴

yy(复制当前行)
p  (粘贴到当前行下面)
P  (粘贴到当前行上面)

3、可视域操作

v (指定选择的开始,使用方向键或hlkj导航键指定结束位置)
y (复制被选中部分文本)
p (粘贴)

4、删除操作

dd(删除当前行)
x  (删除光标后的字符)
s  (删除当前光标字符并编辑)
C (删除当前光标之后的字符并编辑, 本人用的较多,非常好用)

5、撤销

u  (撤销上一步操作)
R  (撤销上一步操作)
Crtl + r  (重放,即撤销撤销的撤销)

6、跳转

gg  (跳至文件首行)
G   (跳至文件末行)

7、末行模式

:w  (保存)
:q  (退出)
:e  (打开文件,后接文件路径)
:h  (帮助)
:w  (退出不保存)
:q  (退出并保存)
:ZZ  (快速保存退出)

:2,5s/old/new/g

// 匹配行数, 用 new字符替换2-5行范围内的 old字符替换, %s为匹配所有行, g为一行所有匹配项。

Tips: 所有的大写字母用 shift + 小写 操作起来会更方便。

二、Vim 常用配置

  要让Vim更贴合你的工作习惯,就需要通过.vimrc文件进行个性化设置。无论是调整视觉风格,还是优化编辑体验,这个小小的配置文件都有巨大的能量,常用配置项如下:

1、常用配置项

配置项作用
set ai / noai开启/关闭 自动缩进
set nu / nonu开关/关闭 行号显示 (number 缩写)
set ts = 4设置 Tab 缩进为 4 个字符
set sw = 2设置缩进 4 个字符 (与 ai不同, 末行模式下输入">>"生效), yaml 书写必备
set paste保留原格式复制
set cursorline开启当前行参考线
set cursorcolum开启高亮列显示,有助于 yaml 等文本编辑
set et将输入的 TAB 展开为空格字符,yaml 语法规则明确不支持 tab 制表符

2、全局配置项

  Vim 的全局配置项位于 /etc/vimrc , 其中的配置会影响全局用户,set 的配置项可以在 Vim 文本编辑中的末行模式下临时生效,想要永久生效则写入配置文件中。
  

3、特定后缀文件格式配置

  用户个人配置位于家目录下的隐藏文件 ~/.vimrc, 一般不存在需手动创建,其中的配置只对个人用户生效。Vim 还支持对特定后缀的文件单独生效新的配置 (在原来全局配置的基础上),如下示例:

set nu ai et ts=4 paste
autocmd FileType yaml setlocal ai nu et ts=2 sw=2
set cursorline cursorcolumn
  这段代码是Vim编辑器中的自动命令(autocmd),用于在打开或切换到yaml文件时自动设置一些选项。具体解释如下:

autocmd:       表示这是一个自动命令,用于在特定事件发生时自动执行一些操作。
FileType yaml:     表示这个自动命令仅在文件类型为 yaml 时生效。
setlocal:        表示这些设置仅对当前窗口有效,不会影响其他窗口。
et:          表示扩展制表符,即使用空格代替制表符进行缩进。

  触发的功能是当打开一个 yaml 时,自动执行后续命令,设置当前窗口配置为自动缩进、显示行号、转换 tab 制表符为空格、设置 tab 缩进为 2个字符,换行后每行缩进为 2个字符等,这对于 ansible 自动化的剧本编写很有帮助,可以提高 yaml 格式类文本的编辑效率。

三、Ansible 高效运维

  当进行 yaml 一系列剧本编写时,你是不是还是在手动的复制贴贴模板,其实还有高效的方法,Vim 除了基本的文本编辑功能,还提供了许多高级功能,如事件、宏录制、多窗口编辑等,其中的事件能更好的帮助我们编写模板。
  下面请看一组示例:

[root@test ~]# vim test.yml
---        
- name:    
  hosts:   
  remote_user: root
  become: yes
  
  vars:    
           
  roles:   
           
  tasks:   
    - name:
           
#   - block:
#          
#     rescue:
#          
#     always:
#          
#  handlers:
#    - name:

"/usr/share/vim/vimfiles/template.yml" 20L, 162C

  从中我们可以看出,当我新打开一个 yml 文件,它已经提前填充上了模板内容,这是如何做到的?



  其实通过添加 Vim 配置就能达到这样的效果,让我们打开 /etc/vimrc 配置文件,添加以下代码:

[root@test ~]# vim /etc/vimrc
 26   autocmd BufNewFile,BufReadPre /media/*,/run/media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp
 27   " start with spec file template
 28   autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec
 
      可以看到这里出现了一行 autocmd 自动命令事件,我们复制一行进行如下修改:
 29   autocmd BufNewFile *.yml,*.yaml 0r /usr/share/vim/vimfiles/template.yml

  其中 autocmd表示这是一个自动命令。
  BufNewFile *.yml,*.yaml表示当创建一个新文件,且扩展名为 .yml 或 .yaml 时,触发这个自动命令。
  0r /usr/share/vim/vimfiles/template.yml表示读取(read)并插入位于该 默认路径下的模板文件。其中,0r 表示在当前光标位置插入文件内容。

  通过以上配置可以配置多个不同文件后缀的模板,可以帮助我们进行更好的文本编写,如 Shell 脚本的个人信息头等,大家还能想到什么用法呢?欢迎评论区留言互相学习 (*^▽^*) ~



  • 31
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值