《学习vi和vim编辑器》读书笔记——vi基础篇

 

第一章 vi文本编辑器


Unix环境下的编辑器有多种,一般可以分为

行编辑器ed ex
一次只能显示一行
全屏编辑器vi emacs 
显示文件的一部分


vi命令的特点:
  • 字母区分大小写
  • 输入时不会显示在屏幕上
  • 不需要在命令后按Enter键

打开关闭文件
使用vi进行文本编辑的时候,是在内存里的文本副本上进行操作,也就是说是在缓冲区中进行操作,存储编辑的结果时,实际上是将缓冲区的内容写入文件中。

打开文件的命令是:

保存并离开文件
命令模式 ZZ 或者 :wq

结束不保存结果
:e! 恢复到上一次存储的文件内容
:q! 消除所有编辑结果,并退出vi

:w newfile 可将编辑的结果写入新的文件(就是另存为)


第二章 简单的文本编辑器


vi命令
刚进入vi之后,处于命令模式中,按i会进入插入模式,在插入模式中按Esc键会进入命令模式。

---------------------------------------
Windows环境下gVim的准备
(1)打开gVim,输入mkvimrc! ~/.vimrc  该命令会在用户目录下新建一个.vimrc的脚本文件,gvim每次启动的时候都会读取这个文件里的配置
(2)编辑~/.vimrc文件,加入一些脚本
set nobackup     不备份文件,避免自动产生a.txt~备份文件
syntax on              语法高亮
set number           显示行数
colo elflord            设置颜色
set guifont=Consolas:h15:cANSI  设置字体为Consolas,字体大小h15,为西欧cANSI字符
set nocompatible
set ai   自动缩进
set si   智能缩进
set nu  显示行数
set ts=4  一个tab=4个空格
set bs=indent,eol,start
set guioptions-=T  无工具条
set
 foldmethod=indent " 折叠方式为 依靠缩进
colorscheme murphy
---------------------------------------

单一的移动
h/Backspace左移一个字符
j/Enter下移一个字符
k上移一个字符
l右移一个字符

数值参数
在移动命令之前加上数字:例如4l 右移4个字符

在一行中移动
vi会以用户按Enter键作为一行的换行,而与显示行无关
:set wm=10 设置与右边界的距离是10个字符的时候就会换行
0移动到行首
$移动到行尾

按照文本块移动
w向后移动一个单词(标点、符号算作一个单词)
W向后移动一个单词(标点、符号不算作一个单词)
b向前移动一个单词(标点、符号算作一个单词)
B向前移动一个单词(标点、符号不算作一个单词)
G移动到文件的尾部
前加数字表示移动到指定行
同样支持前加数字

附加文本
a在光标之后插入文本
i在光标之前插入文本
更改文本
c + 光标移动命令:结束后需要按Esc键回到命令模式
cw从光标到这个单词末尾
c2b从光标往前2个单词
c$从光标到本行末尾(效果同C)
c0从光标到此行的开头
cc覆盖当前一正行



r用于修改单个字符
r+修改后的字符,完成后立即回到命令模式

替换文本
s替换一个字符
S替换一整行字符
R进入覆盖模式

更改大小写
~ 可以更改字符的大小写,加数字可以制定从光标开始的范围

删除文本
d删除命令
dw删除一个单词(单词之后的空格也会被删除)
de删除一个单词(单词之后的空格也不会被删除)
db向前删除一个单词
d$ 或者 D删除到一行的结尾
d0删除到一行的开头
dd删除一整行
x删除光标后面的一个字符
X删除光标前后的一个字符

恢复
u撤销上一个命令
U恢复一整行
p恢复最近几次的删除的内容
vi会将最近9次删除的整行数据放在9个缓冲区中(移动文本讲解)

移动文本
vi会将删除之后的文本放在缓冲区中,此时使用放置命令p,就实现了剪切-粘贴
删除的整行,会在光标所在行的下一行粘贴文本
删除的不是整行,会在光标所在位置的下一个字符开始粘贴

对调2个字符
xp x是删除一个字符,p是粘贴

复制文本
使用y拖拽、p放置
同样可以配合移动键使用
yw y$ yy
不同的是Y是复制一整行
拖拽命令和删除命令共享缓冲区

重复撤销命令
上一个命令会保存在一个缓冲区中
. 重复上一个命令

插入文本的其他方法
A行尾附加文本
I行首添加文本
o在下一行添加文本
O在上一行添加文本
s删除光标所在位置的一个字符后,进入插入模式
S删除一整行后,进入插入模式
R在光标坐在位置进入替换模式


合并
J合并当前行和下一行
3J合并3行


第三章 快速移动位置


根据屏幕移动
^F往前滚动一整屏
^B往后滚动一整屏
^D往下滚动半屏
^U往上滚动半屏

z命令调整屏幕位置
z Enter当前行作为屏幕顶端行 光标移动到屏幕顶端
z.当前行作为屏幕中间行 光标移动到屏幕中间
z-当前行作为屏幕底端行 光标移动到屏幕底端
z之前加数字表示处理的行号

屏幕重绘 ^L

H
移动到屏幕顶端
M移动到屏幕中间
L移动到屏幕底端
nH移动到屏幕顶端开始往下的第n行
nL移动到屏幕底端开始往上的第n行

行移动
Enter移动到下一行的第一个字符
+移动到i下一行的第一个字符
-移动到上一行的第一个字符



当前行移动
^移动到当前行第一个非空字符处
n|移动到当前行第n列

文本块移动
e移动到单词的结尾
E移动到单词的结尾(忽略标点符号)
(移动到句子开头
)移动到句子结尾
{移动到段的开头
}移动到段的结尾
[[移动到这一节的开头
]]移动到这一节的结尾

搜索
/向下搜索
?向上搜索
n与上一搜索相同方向,继续搜索
N与上一搜索相反方向继续搜索
/Enter往下继续搜索
?Enter往上继续搜索

通过搜索修改文本
搜索命令之前加上文本操作
d/sad 删除向下搜索到的第一个sad

一行之内的搜索
fx搜索本行中下一个出现x的地方
Fx搜索本行中上一个出现x的地方
;重复上一个搜索,方向相同
,重复上一个搜索,方向相反

行间跳转
G跳转到最后一行
nG跳转到第n行
^G查看当前所在行
:set nu设置行号
``回到上次跳转的光标位置
''回到上次所在行的首位置


第四章 越过基础的藩篱


打开文件选项
前进到特定文位置
vi +n file在第一行打开file
vi + file在最后i韩打开file
vi +/pattern file在第一个出现pattern的地方打开file
pattern中如果出现空格
可以 +/"you can"
或者+/you\ can指定

只读模式
vi -R file
view file可以指定打开文件的位置
强制写入文件可以保存
:w!
:wq!

缓冲区
恢复删除
对于删除的行级别的数据,每次删除都会放在缓冲区中,最后一次删除的内容放在缓冲区1中,倒数第二次放在缓冲区2中。
"2p恢复缓冲区2中的数据
"1pu.u.u对于不确定删除的缓冲区编号,可以一直按u.来确认
因为每按一次.缓冲区的编号会相应增加

命令缓冲区
命名缓冲区要使用"加小写字母的形式
"dyy将当前行粘贴到缓冲区d中
"dP将缓冲区d的内容放置在光标前
"dp将缓冲区d的内容放置在光标后

标记
mx将当前光标位置标记为x
'x将光标移动到x标记的所在行的行首
`x将光爆移动到x标记所在的位置
''回到上次标记所在行的行首
``回到上次标记所在位置
标记仅对当前会话有效




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
综合小区管理系统管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、车位管理、车位分配管理、出入管理、字典管理、房屋管理、物业费缴纳管理、公告管理、物业人员投诉管理、我的私信管理、物业人员管理、用户管理、管理员管理。用户的功能包括管理部门以及部门岗位信息,管理招聘信息,培训信息,薪资信息等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 综合小区管理系统管理系统可以提高综合小区管理系统信息管理问题的解决效率,优化综合小区管理系统信息处理流程,保证综合小区管理系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理综合小区管理系统信息,包括出入管理,报修管理,报修管理,物业费缴纳等,可以管理操作员。 出入管理界面,管理员在出入管理界面中可以对界面中显示,可以对招聘信息的招聘状态进行查看,可以添加新的招聘信息等。报修管理界面,管理员在报修管理界面中查看奖罚种类信息,奖罚描述信息,新增奖惩信息等。车位管理界面,管理员在车位管理界面中新增。公告管理界面,管理员在公告管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值