文本编辑器

为什么学 vi?
1)所有的 Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在;
2)很多个别软件的编辑接口都会主动呼叫 vi (例如未来会谈到crontab,visudo, edquota 等指令);
3)vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法癿正确性,方便程序设计;
4)因为程序简单,编辑速度相当快速。
vim的5种编辑模式
1)命令模式(其它模式→ESC)
2)输入模式(命令模式→a、i、o、A、I、O)
3)末行模式(命令模式→:)
4)可视化模式(命令模式→v)
5)查询模式(命令模式→?、/)

1.命令模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 插入模式:

新增 (append)
a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。
A: 从光标所在列最後面的地方开始新增资料。
插入 (insert)
i: 从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。
I :从光标所在列的第一个非空白字元前面开始插入资料。
开始 (open)
o :在光标所在列下新增一列并进入输入模式。
O: 在光标所在列上方新增一列并进入输入模式

3.末行模式:

在这里插入图片描述
在这里插入图片描述
3.1、打开文件
#vim /path/to/somefile
vim +# :打开文件,并定位于第#行
vim +:打开文件,定位至最后一行
vim +/PATTERN : 打开文件,定位至第一次被 PATTERN 匹配到的行的行首
默认处于编辑模式
3.2、关闭文件
3.2.1、末行模式关闭文件
:q 退出
:wq 保存并退出
:q! 不保存并退出
:w! 强行保存
:wq --> :x
3.2.2、编辑模式下退出
ZZ: 保存并退出、移动光标(编辑模式)
①逐字符移动:
h: 左
l: 右
j: 下
k: 上
#h: 移动#个字符;
②以单词为单位移动
w: 移至下一个单词的词首
e: 跳至当前或下一个单词的词尾
b: 跳至当前或前一个单词的词首
#w:
③行内跳转:
0: 绝对行首
^: 行首的第一个非空白字符
$: 绝对行尾
home
end
④行间跳转
#G:跳转至第#行;
G:最后一行
1G:跳转到第 1 行首===gg
末行模式下,直接给出行号即可
:5 直接定位到第 5 行首
⑤Ctrl+f: 向下翻一屏
Ctrl+b: 向上翻一屏
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
⑥x: 删除光标所在处的单个字符
#x: 删除光标所在处及向后的共#个字符
⑦删除命令: d
d 命令跟跳转命令组合使用;
#dw, #de, #db
dd: 删除当前光标所在行
#dd: 删除包括当前光标所在行在内的#行;

3.3末行模式下:
StartADD,EndADDd
.: 表示当前行
$: 最后一行
+#: 向下的#行
3.3.1粘贴命令 p
p: 如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果
复制或删除的内容为非整行,则粘贴至光标所在字符的后面;
P: 如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果
复制或删除的内容为非整行,则粘贴至光标所在字符的前面;
3.3.2、复制命令 y
用法同 d 命令
yy 复制 1 行
5yy 复制 5 行
3.3.3、修改:先删除内容,再转换为输入模式
c: 用法同 d 命令
3.3.4、替换:r
R: 替换模式
3.3.5、撤消编辑操作 u
u:撤消前一次的编辑操作
连续 u 命令可撤消此前的 n 次编辑操作
#u: 直接撤消最近#次编辑操作
撤消最近一次撤消操作:Ctrl+r

4、可视化模式

v: 按字符选取
该模式下通过光标移动选择文本,选取后按 y 可以把文本提取到缓冲区(即复制),c 可以剪切。之后可以使用 p 在光标后粘贴,P粘贴在光标前
V:按矩形选取
V 是行选取模式,以行为单位进行选取。Ctrl+v 是块选取模式,可以选取一块矩形区域中的文本。
4.1、vim 末行模式:
内建的命令行接口
4.1.1地址定界
:start_pos[,end_pos]
#:特定的第#行,例如 5 即第 5 行;
.:当前行;
KaTeX parse error: Expected 'EOF', got '#' at position 8: :最后一行; #̲,#:指定行范围,左侧为起始行…-1
1,$
%:全文
/pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行;
/first/,$
/pat1/,/pat2/:从光标所在处起始,第一次由 pat1 匹配到的行开始,至第一次由 pat2 匹配到的行结束之间的所有行;
可同编辑命令一同使用,实现编辑操作:
d
y
c
w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中;
r /PATH/FROM/SOMEFILE:将指定的文件中的文本读取并插入至指定位置;
4.1.2查找
/PATTERN:从当前光标所在处向文件尾部查找能够被当前模式匹
配到的所有字符串;
?PATTERN:从当前光标所在处向文件首部查找能够被当前模式匹
配到的所有字符串;
n:下一个,与命令方向相同;
N:上一个,与命令方向相反;
4.2、查找并替换
s:末行模式的命令;使用格式:
s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用正则表达式;
替换为的内容:不能使用下则表达式,但可以引用;
如果“要查找的内容”部分在模式中使用分组符号:在“替换为的内容”中使用后向引用;
直接引用查找模式匹配到的全部文本,要使用&符号;修饰符:
i:忽略大小写;
g:全局替换,意味着一行中如果匹配到多次,则均替换;
可把分隔符替换为其它非常用字符:
s@@@
s###
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值