vi和vim基本命令

vi

vi是visual interface的简称,是linux最经典的编辑器
vi的核心设计思想:让程序员的手指始终保持在键盘的核心区域,就能完成所有的编辑操作
vi的特点:

  1. 没有图形界面的功能强大的编辑器
  2. 只能是编辑文本内容,不能对字体,段落进行排版
  3. 不支持鼠标操作
  4. 没有菜单
  5. 只有命令

基本操作:

打开和新建文件
vi 文件名

注意:如果文件存在,会直接打开文件,如果文件不存在,会先创建这个文件

打开文件并定位行

有时候我们知道文件的编程错误地址,就需要直接定位到指定的行上

vi 文件名 +行数
# 如果不写行数,只写+,则会自动定位到文件末尾
vi异常退出

如果vi异常退出,很可能在磁盘上保留交换文件
当你再次打开文件时,会显示警告信息,此时按下D删除交换文件,则之前的修改全部丢失

vi的三种基本模式
  1. 命令模式
    打开文件首先进入命令模式,是使用vi的入口
    在其他编辑器中使用鼠标等的操作,都是在命令模式下完成的
  2. 末行模式
    执行保存,退出等的操作
  3. 编辑模式
    正常的编辑文字

末行模式的命令

w         write           保存
q         quit            退出,如果没有保存,不允许修改
q!       quit            强行退出,不保存修改
wq        write&quit     保存并退出
x                        保存并退出
命令

行数移动

j		向下移动
k		向上移动
gg         go           文件顶部
G          go           文件末尾
数字gg                  移动到数字对应行数
数字G                   移动到数字对应行数
:数字                   移动到数字对应行数

屏幕移动

Ctrl+b          back           向上翻页
Ctrl+f         forword         向下翻页
H               Head           屏幕顶部
M               Middle         屏幕中间
L               Low            屏幕末尾

光标移动

w			word			向后移动一个单词
b			back			向前移动一个单词
0							行首
^							行首,第一个不是空白字符的位置
$							行尾

段落移动和括号切换
vi使用空行来区分段落
在程序开发过程中,通常一段功能相关的代码会写在一起—之间没有空行

{			上一段
}			下一段

在程序中,括号出现的频率比较高,并且成对出现

%			括号匹配并切换

标记
在开发时,某一块代码可能需要稍后处理
此时,使用m添加一个标记,这样可以在需要时快速的跳转回来
标记名称可以是a-z或者A-Z任意一个字母
添加标记的行如果被删除,则标记同样被删除
如果在其他行,添加了相同的标记,则之前的标记会被替代

m字母			mark			添加标记
‘字母							直接定位到标记的位置

选中文本

v			可视模式			从光标开始正常模式选择文本
V			可视行模式		选中光标经过的完整行
Ctrl+v		可视块模式		垂直方向选中文本
注意:此时可以与上面的移动命令连用
ggVG			可以选中所有文本
ggv}			可以直到选中段落末尾

撤销和恢复命令

u			undo			撤销命令
Ctrl+r		redo			恢复撤销的命令

删除命令

x			cut			删除光标所在字符,或者选中的文本
d(移动命令)	delete		删除移动命令对应的内容                   例:dw可以删除整个单词
dd			delete		删除光标所在行		数字dd可以删除多行
D			delete		删除至行尾

复制粘贴
vi中提供一个被复制文本的缓冲区

y(移动命令)			copy			复制
yy					copy			复制一行,可以nyy复制多行
p					paste			粘贴

剪切

在vi中,d,x删除操作就是剪切操作,只不过如果你不粘贴,表面上就是删除

替换
对文件进行小幅度的改变时,可以用到替换命令

r			replace			替换当前字符
R			replace			替换当前行光标后的字符

缩进

>>			向右增加缩进
<<			向左增加缩进
.			重复上次命令
注意:如果一次性需要给多行增加缩进,V>,执行后,自动回到命令模式

查找

/str			查找指定的内容
n	查找下一个
N	查找上一个


*			向后查找当前光标所在单词
#			向前查找当前光标所在单词

查找并替换

全局替换
:%s/旧文本/新文本/g


可视区域替换(只替换选中的区域)
:s/旧文本/新文本/g


确认替换
:%s/旧文本/新文本/gc

y		yes	替换
n		no	不替换
a		all	替换所有
q		quit	退出替换
l		last	最后一个,并把光标移动到行首
^E		向下滚屏
^Y		向上滚屏

插入命令

i			insert			在当前字符前插入字符
I			insert			在当前行首插入字符
a			append			在当前字符后插入字符
A			append			在当前行尾插入字符
o							在当前行后面插入一个空行
O							在当前行前面插入一个空行

案例总结

1. 重复输入hello world 10次
	命令模式下,先输入10,再按i进入编辑模式,输入hello world,按esc退出,vim会自动重复10次
2. 给多行代码添加注释
	命令模式下,先输入ctrl+v进入可视块模式,选中代码后,输入I进入编辑模式,输入#,esc退出,vim会自动在选中的代码前添加#

末行模式下命令总结

:e .			打开vim内置的文件管理器,查看当前路径下的文件
:n 文件名		新建文件
:w 文件名		另存为		(保存后,编辑的仍然是当前的文件,不会改为另存为的文件)
注意: 这个另存为之所以不切换文件,是为了让用户进行阶段性保存,且注意力仍然在开发的文件上

分屏命令

:sp	文件名			split			横向增加分屏
:vsp 文件名			vertical split	竖向增加分屏

Ctrl+w			切换窗口

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值