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

第一章 vi文本编辑器

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

一次只能显示一行

全屏编辑器viemacs显示文件的一部分
vi命令的特点:
  • 字母区分大小写
  • 输入时不会显示在屏幕上
  • 不需要在命令后按Enter键
打开关闭文件
使用vi进行文本编辑的时候,是在内存里的文本副本上进行操作,也就是说是在缓冲区中进行操作,存储编辑的结果时,实际上是将缓冲区的内容写入文件中。
打开文件的命令是:
《学习vi和vim编辑器》读书笔记——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中如果出现空格

可以+/"youcan"

或者+/you\ can指定
只读模式
vi -R file
viewfile可以指定打开文件的位置

强制写入文件可以保存

:w!

:wq!
缓冲区
恢复删除
对于删除的行级别的数据,每次删除都会放在缓冲区中,最后一次删除的内容放在缓冲区1中,倒数第二次放在缓冲区2中。
"2p恢复缓冲区2中的数据
"1pu.u.u对于不确定删除的缓冲区编号,可以一直按u.来确认因为每按一次.缓冲区的编号会相应增加
命令缓冲区
命名缓冲区要使用"加小写字母的形式
"dyy将当前行粘贴到缓冲区d中
"dP将缓冲区d的内容放置在光标前
"dp将缓冲区d的内容放置在光标后
标记
mx将当前光标位置标记为x
'x将光标移动到x标记的所在行的行首
`x将光爆移动到x标记所在的位置
''回到上次标记所在行的行首
``回到上次标记所在位置
标记仅对当前会话有效

相关推荐