新手菜鸟的Linux学习笔记(2):初识vim

写在最前面的话

这系列文章是笔者在自学Linux过程中的学习笔记,目的是记录学习过程中的一些重点以便日后查看。由于笔者不需要考虑虚拟机等问题,Linux主要也是作为调用各种软件的平台来使用,所以笔记主要集中在Linux和vim的各种常用指令上;同时由于笔者略有编程基础,所以会省略一些基础知识,烦请谅解。

1. 简单认识vim

·vim是什么?

vim是vi的高级版本,而vi是所有UNIX-like系统都会内置的文本编辑器,很多软件的编辑接口都会主动调用。vim具有程序编辑的能力,可以主动地以字体颜色辨别语法的正确性,方便程序设计。同时vim因为程序简单,编程速度相当快。

因为vim基本上拥有vi的所有功能,同时还拥有一些vi没有的额外功能,所以下文中只介绍vim,就不对vi做额外介绍了。

·运行vim

[stu@localhost ~] $ vim file.txt
# 在$之后键入vim,并在vim后输入想创建的文件名即可。

无论是哪个Linux发行版本,这个命令都会让vim创建名为file.txt的空白文件。而如果这个文件已经存在,vim则会打开这个文件。

·vim的三种模式

基本上vim共分为3种模式,分别是一般命令模式编辑模式命令行模式

一般命令模式(command mode)
以vim打开一个文件后就直接进入一般命令模式了(这是默认模式,也简称为一般模式)。在这个模式下,用户可以查看文件内容、使用方向键移动光标,并对文件内容进行复制、粘贴、删除等操作。
一般命令模式,在最下一行可以看到文件的简略信息

编辑模式(insert mode)
在一般命令模式下,用户无法编辑文件内容。如果用户需要修改文件内容,则需要按下i进入编辑模式。进入编辑模式后,在页面的左下方会出现insert的字样,此时用户可以对文件内容进行编辑。

按下esc则可以退出编辑模式,回到一般命令模式。

编辑模式
命令行模式(command-line mode)
在一般模式中,输入/这三个符号中的任意一个,就可以进入到命令行模式。此时光标移动到界面最下方。在这个模式中,用户可以进行查找、批量替换、保存以及退出vim等操作。

按下esc则可以退出命令行模式,回到一般命令模式。

命令行模式,最下方输入了/exon
!!编辑模式与命令行模式之间不可相互切换。

2. vim的常用按键

笔者会总结一些常用的功能按键,如果想详细了解的话,可以去看《鸟哥的Linux私房菜》一书。

下列功能键中,若无额外注明,则默认“n”为数字

·光标移动

功能键功能
n + space键按下数字后再按空格键,可以令光标向右移动n个字符
0或home键移动到这一行的第一个字母处
$或end键移动到这一行的末尾
G移动到这个文件的最后一行
gg移动到这个文件的第一行
nG移动到这个文件的第n行
n + enter键光标向下移动n行

·查找与替换

功能键功能
/word在光标之下的文本中寻找一个为“word”的字符串
?word在光标之上的文本中寻找一个为“word”的字符串
n和N在多个寻找到的字符串之间上下切换
:n1,n2s/word1/word2/gn1和n2为数字,在第n1和第n2行之间寻找“word1”这个字符串,然后将找到的“word1”字符串替换为“word2”
:1,$s/word1/word2/g在第一行到最后一行之间寻找“word1”这个字符串,然后将找到的“word1”字符串替换为“word2”
:1,$s/word1/word2/gc在第一行到最后一行之间寻找“word1”这个字符串,然后将找到的“word1”字符串替换为“word2”,并且在替换之前询问用户是否需要替换

·删除、复制和粘贴

功能键功能
nx向后删除n个字符
dd删除(剪切)光标所在的一整行
ndd删除(剪切)光标所在的向下n行
d1G删除(剪切)光标所在到第一行的所有内容
dG删除(剪切)光标所在到最后一行的所有内容
d$删除(剪切)光标所在到这一行最后一个字符的所有内容
d0删除(剪切)光标所在到这一行第一个字符的所有内容
yy复制光标所在的那一行
nyy复制光标所在的向下n行(复制和删除的操作格式基本相同,如y1G是复制光秒所在到第一行的所有内容,故在此不赘述复制的相关操作)
p和Pp为将已复制的数据在光标下一行粘贴,P为将已复制的数据在光标上一行粘贴
u恢复前一个操作
ctrl + r重做上一个操作
.(小数点)重复前一个操作

·保存、退出

功能键功能
:w保存
:q退出
:q!不保存修改,强制退出
:wq保存并退出
:w [filename]另存新文件,文件名为filename
:r [filename]将filename这个文件中的内容导入光标所在行的后面
n1,n2 w [filename]将n1到n2行的内容保存为filename这个文件
:set nu设置行号
:set nonu取消行号

·录制回放

录制回放是vim的一个非常有用的功能,往往用于完成较为复杂的重复性操作(比如在每一行中插入、删除特定内容等)。录制回放需要四个步骤:

第一步: 用q{register}指令启动操作录制,录制结果保存到{register}制定的寄存器中,{register}是寄存器名,可以用a-z任意一个字母表示。此时窗口左下角会出现recoding的字样,表示开始录制;

第二步:输入命令,即要录制的操作;

第三步:键入q结束录制;

第四步:在需要的位置键入@{register}命令回放录制好的操作。在@前加数字可以指定操作重复的次数,即10@{register}代表重复10次录制好的操作。

例如,删除1-100行每行的前10个字母,可以依次使用下列命令实现:

gg                   # 光标移动到第一行
qa                   # 启动记录,使用寄存器a 
0                    # 光标移到行首
11<space>            # 光标向后移动到这一行的第11个字母
d0                   # 删除光标之前的10个字母
j                    # 光标移到下一行
q                    # 结束录制 
99@a                 # 使用寄存器a回放录制99次,对余下99行进行相同操作

3. vim的额外功能

vim还有一些vi不具有的额外功能,如可视区块、多文件编辑(这个还挺方便的)、多窗口功能等,不过笔者几乎没有用过这几个功能,所以在这里就不献丑了,想了解的话可以去看书。

参考

1.《鸟哥的Linux私房菜(第四版)》
2. mooc课程《Linux系统管理》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值