Linux系统文件编辑神器--vim

简介

vim 是一个全屏幕纯文本编辑器,是 vi 编辑器的增强版;也是Linux系统默认的文本编辑器。与vi的区别是vim可以根据文件内容的开头信息判断该文件的内容而自动调用该程序的语法判断式。vim加入了许多额外的功能,例如支持正则表达式的查找架构,多文件编辑器,块复制等。可以利用别名让输入 vi 命令的时候,实际上执行 vim 编辑器。
CentOS 7中默认安装的是vi编辑器,由于vim编辑器的强大的语法判断功能能帮助我们高效地完成脚本地编写,一般都会安装vim编辑器。

[root@localhost ~]#yum -y install vim

vim键盘

在这里插入图片描述

vim工作模式

在这里插入图片描述

命令模式

主要使用快捷键的模式。命令模式可执行的操作:

  1. 移动光标所在位置
命令作用
h j k l 或方向键左、下、上、右移动光标
gg将光标移至文件头
G将光标移至文件尾
^将光标移至行首
$将光标移至行尾
:n将光标移至指定行行首
  1. 删除&剪切、复制、粘贴
命令作用
dd删除&剪切光标所在行
ndd从光标所在行开始往后删除&剪切n行
:n1,n2d删除&剪切指定的n1至n2行
dG删除&剪切从光标所在行至结尾的所有数据
yy复制光标所在行
nyy从光标开始往后复制n行
p在光标所在行后粘贴剪切或复制的行
P在光标所在行前粘贴剪切或复制的行
  1. 撤销与反撤销
命令作用
u撤销
ctrl+r反撤销
  1. 交互式替换
命令作用
r替换光标坐在位置的字符
R从光标所在处开始替换字符,按 ESC 结束
  1. 命令式替换
命令作用
:ns/old/new/g将第n行的所有old替换为new
:n1,n2s/old/new/g将n1行至n2行的所有old替换为new
😒/lod/new/g将全文的old替换为new
:1,10s/^/#/g注释 1 到 10 行(shell)
:1,10s/^#//g取消注释(shell)
:1,10s/^g1 到 10 行,行首加入//
:1,10s/^g取消 1 到 10 行行首的//
  1. 查找
命令作用
/字符串从光标所在位置往后查找指定字符串
?字符串从光标所在位置往前查找指定字符串
n查看下一个指定字符串
N查看上一个指定字符串
输入模式

主要用于文本编辑,和记事本类似,输入数据就好。命令模式进入输入模式的方式:

命令作用
a在光标所在字符后插入
A在光标所在行尾插入
i在光标所在字符前插入
I在光标所在行首插入
o在光标所在行前插入新行
O在光标所在行后插入新行

输入模式退出至命令模式:ESC键。

末行模式 (编辑模式)
命令作用
:w保存不退出
:w 新文件名把文件另存为新文件
:q不保存退出
:wq保存退出
:!强制
:q!强制不保存退出
:wq!强制保存退出
:set nu显示行号。
:set nonu不显示行号。默认不显示
:syntax on开启依据语法显示相关的颜色帮助。默认开启,用来帮助排错。
:syntax off关闭根据语法显示相关的颜色帮助
:set hlsearch将查找的字符串高亮显示。默认开启高亮显示
:set nohlsearch将查找的字符串正常显示。
:set ruler显示右下角的状态栏。默认显示。
:set noruler不显示右下角的状态栏。
:set showmode在左下角显示如“—INSERT–”之类的状态栏。默认显示。
:set noshowmode在左下角不显示如“—INSERT–”之类的状态栏。
:set list显示隐藏字符(Tab 键用“^I”表示,回车符用“$”表示)
:set nolist不显示隐藏字符(Tab 键用“^I”表示,回车符用“$”表示)默认不显示。

注:上表中命令列标注选项为推荐设置的选项,作用列标注的信息为vim默认选项,若要修改可通过修改配置文件来永久更改。

配置文件

由于Linux系统是运维团队对其进行维护,每个人的操作习惯不同,所以将个性化配置文件放置于用户的家目录下,仅对对应的用户生效。全局配置文件/etc/vimrc不做任何修改。

/etc/vimrc

该配置文件对Linux系统内所有用户都生效。一般不对其进行修改。

~/.vimrc

Linux系统中安装的vim编辑器,用户家目录下默认是没有该配置文件的。若想个性化设置可在用户家目录下创建~/.vimrc配置文件并修改。

  1. 可在配置文件里写入个性化的参数。如:显示行号、隐藏字符等。
  2. 在 vim 编辑中,有时候需要频繁输入某一个长字符串(比如邮箱),这时使用字符串替换,能增加输入效率。
  3. 每次写脚本时文本前面的脚本信息简介,也可以通过写入配置文件来实现只要创建以.sh为后缀名的文本时,自动生成脚本前的信息,提高效率。
  4. 自动补全引号、括号,在输入模式下输入引号或括号时自动补全,避免脚本报错。
  5. 还可以自定义快捷键来提高文本编辑效率。如:
    :map ^P I#< ESC> 按“ctrl+p”时,在行首加入注释(Linux系统配置文件中“<>”内无空格,文章有空格是为了能正常显示符号才加入的)
    :map ^B ^x 按“ctrl+b”时,删除行首第一个字母(删除注释)
    注意:^P和 ^B不能手工输入,需要执行 ctrl+V ,然后 ctrl+P来定义
    ……
配置示例:
[root@localhost]#vim ~/.vimrc
:set nu
#显示行号
:ab mymail linux@163.com
#字符串替换,输入模式下遇见mymail字符串时,自动识别为邮箱地址输入

autocmd BufNewFile *.sh exec ":call AddTitleForShell()"
function AddTitleForShell()
	call append(0,"#!/bin/bash")
	call append(1,"")
	call append(2,"#  Author : name")
	call append(3,"#  E-mail : name@163.com")
	call append(4,"#  File Name : ".expand("%:t"))
	call append(5,"#  Created Time : ".strftime("%Y-%m-%d %H:%M"))
	call append(6,"#  Description : ")
	call append(7,"")
	endfunction
#当以vim创建.sh文件时,自动在文件前面增加指定格式内容

inoremap ' ''<ESC>i
inoremap " ""<ESC>i
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {<CR>}<ESC>O
#自动补全括号/引号

:map ^P I#<ESC>
#定义快捷键ctrl+P在行首插入#
:map ^B ^x
#定义快捷键ctrl+B删除行首首字母

效果:

[root@localhost ~]#vim test.sh
#!/bin/bash

#  Author : name
#  E-mail : name@163.com
#  File Name : test.sh
#  Created Time : 2020-06-17 15:20
#  Description  :

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值