vim编辑器干货_2019.03.20-21_23:10-24:0_12:20-13:10_mage_Linux_log

本文围绕Linux系统下的vim编辑器展开,介绍了其基本概念,如vim是vi的扩展且具备语法着色特性。详细阐述了vim的工作模式、模式转换方法,还讲解了文件的打开、关闭操作,以及光标移动、翻屏、删除、粘贴、复制等编辑命令,同时提及高级设置和非法退出处理等内容。

vi 编辑器

vi:Visual Interface 可视化接口,遵循GPL协定的软件,体积小功能强大

vim:vi Improved vi的扩展

vim 的一个重要特性:语法着色
vim属于全屏编辑器,模式化编辑器,不同模式vim对键盘的理解不一样。

打开文件

# vim /path/to/somefile #打开文件
# vim +n /etc/inittab #打开是处于某一行(n)
# vim + /etc/inittab #处于文件最后一行,一个+,不跟数字
# vim +/PATTERN /etc/inittab #打开文件,定位至第一次被PATTERN匹配到的行

vim的工作模式

编辑模式(命令模式)
复制、粘贴、删除
输入模式
大多数敲键动作被当做文本输入动作,输入文本
末行模式(底线命令模式)
可以输入很多除了编辑命令外的文件管理命令

vim默认工作于编辑模式
vim工作模式的转换

编辑-->输入:
i :在当前光标做在字符前面转换为输入模式
a:在当前光标做在字符后面转换为输入模式
o:在当前光标所在行的下方,新建一行,并转换为输入模式
I:在当前光标做在行的行首转换为输入模式
A:在当前光标做在行的行尾转换为输入模式
O:在当前光标所在行的上方,新建一行,并转换为输入模式
输入-->编辑:
ESC
编辑-->末行:

末行-->编辑:
ESC,ESC

关闭文件
一,末行模式关闭文件

:q 退出,不保存内容
:wq 保存并退出
:q! 不保存退出
:w 保存
:w! 强制保存
:wq --> :x 保存退出

二,编辑模式关闭文件

ZZ 保存并退出

三,移动光标

1,逐字移动:
h:左
i:右
j:下
k:上
#h 向左移动#个字符

2,以单词为单位移动
w:移动到下一个单词词首
e:跳至当前或下一个词词尾
b:跳至当前或前一个单词词首
#w 移动#个单词

3,行内跳转
0 跳至行首 绝对行首,包括空白字符
^ 跳至行首(第一个非空白字符所在位置)
$ 跳至行尾 绝对行尾

4,行间跳转
#G 跳转至第#行
G 跳转至最后一行
末行模式下,直接给出行号回车即可

四,翻屏

Ctrl + f 向下翻一屏
Ctrl + b 向上翻一屏
Ctrl + d 向下翻半屏
Ctrl + u 向上翻半屏

五,删除单个字符

x 删除光标所在处的单个字符
#x 删除光标所在处及向后的共#个字符

六,删除命令:d

d命令和跳转命令配合使用
#dw,#de,#db
eg: 3dw 删除光标及后共3个单词

dd 删除当前光标所在行
#dd 删除光标及下面共#行

删除命令使用地址需在末行模式下:

StartADD,EndADDd
:. 点,表示当前行
:#,#d
:.,$d 删除当前行到末行
:.,$-3d 删除当前行至倒数第2行
:1,8d 删除1-8行

七,粘贴命令 p

p 小写p,如果删除的或者复制的为整行内容,则粘贴至光标所在行的下方;如果复制或删除的内容为非整行,则粘贴在光标所在字符的后面
P 大写P,如果删除的或者复制的为整行内容,则粘贴至光标所在行的上方;如果复制或删除的内容为非整行,则粘贴在光标所在字符的前面

八,复制命令 y

用法同d命令
yy
3yy
末行:
1,100yy

九,修改命令 c

change
先删除内容,再转换为输入模式
c 用法同d命令
c$ 删除光标所在位置至行末的内容后进入输入模式

十,替换命令 r

replace
r 只用于替换单个字符
6rf 将光标及后面共6个字符都替换为f

十一,撤销编辑操作 u

undo
u 撤销前一次操作
连续u可撤销此前连续操作,vim默认保存50此编辑历史
#u明确撤销最近#此编辑操作

十二,撤销最近一次撤销操作 Ctrl+r

restore
还原最近一次撤销操作

十三,重复前一次编辑操作 .

.点命令,重复前一次的编辑操作

十四,可视化模式

v 小写v,按字符选取光标划过的内容
V 大写V,按矩形块选取光标划过的内容

十五,查找

支持正则表达式
/PATTERN
向文件尾部查找
?PATTERN
向文件首部找
n 下一个匹配到的结果
N 上一个被匹配到的结果

十六,查找并替换

在末行模式下使用s命令完成
ADDR1,ADDR2s@PATTERN@string@gi
g全局
i忽略大小写
% 表示全文查找并替换
:.,$-1s/he/HE/g #将当期行到倒数第二行的所有he替换为HE.
回忆sed?

练习

将/etc/yum.repo.d/server.repo文件中的ftp://instructor.example.com/pub替换为http://172.16.0.1/yum
答:
%s/ftp:\/\/instructor.example.com/pub/http:\/\/172.16.0.1/yum/gi 或者
%s@ftp://instructor.example.com/pub@http://172.16.0.1/yum@gi

十七,编辑多个文件

如何打开多个文件?
vim file1 file2
默认打开第一个文件
在末行模式下:
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 第一个文件
:qa 退出全部文件

十八,分屏显示某个文件

Ctrl + w , s 先按下Ctrl + w,松开再按下s键,实现水平分割窗口
Ctrl + w , v 先按下Ctrl + w,松开再按下v键,实现垂直分割窗口
在窗口之间切换光标
Ctrl + w , ARROW 上下左右箭头键
:q退出某个分屏
:qa直接退出文件

十九,分屏显示多个文件

打开文件时-o选项
vim -o /etc/fstab /etc/passwd #小写o水平分屏
vim -O /etc/fstab /etc/passwd #大写o垂直分屏

二十,将文件一部分保存为另一个文件

:ADD1,ADD2w /another/file

二十一,将另外的文件填充到正在编辑的文件

:r /another/file

二十二,和shell交互

:! COMMAND
回车后继续执行当前编辑任务

二十三,高级话题

1,显示或取消行号 #只对当前vim进程有效
:set number
:set nu #显示
:set nonu #不显示 只对当前vim进程有效

2,忽略大小写
:set ignorecase
:set ic
:set noic

3,设定自动缩进
下一行与上一行缩进相同
:set autoindent
:set ai
:set noai

4,查找到的文本高亮显示
:set hlsearch
:set nohlsearch
默认高亮

5,语法高亮
:syntax on
:syntax off
默认开启着色

vim编辑配置文件

全局/etc/vimrc
当前用户~./.vimrc #没有可以自己创建

vimtutor 命令

linux自带,用于学习vim

vim非法退出处理

当非法退出vim时,在之前编辑的文件所在目录下会生成file.swp 文件,用于恢复数据
在确保数据恢复后即可手动删除file.swp文件

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值