vim的基本使用

一. vi简介

1. 为什么要学习vi?

  • 在工作中,要对服务器上的文件进行简单的修改,可以使用ssh远程登录到服务器上,并且使用vi进行快速的编辑即可。
  • 在远程终端中,没有图形界面,要编辑文件,vi是最佳选择!
  • 所以,我们要学会使用一些vi常用的命令。

常见需要修改的文件内容包括:

  • 源程序
  • 配置文件,例如ssh的配置文件~/.ssh/config

2. vi和vim

vi

  • 在很多linux发行版中,直接把vi做成vim的软链接
  • vilinux中最经典的文本编辑器
  • vi的核心思想–>让程序员手指始终保持在键盘的核心区域就能完成所有的编辑操作

vi的特点

  • 没有图形界面的功能强大的编辑器
  • 只能是编辑文本内容,不能对字体、段落进行排版
  • 不支持鼠标操作
  • 没有菜单,只有命令
  • vi编辑器在系统管理、服务器管理编辑文件时,其功能永远不是图形界面的编辑器所能比拟的

vim

  • vimvi发展出来的一个文本编辑器,支持代码补全、编译及错误跳转等方便编程的功能特别丰富
  • 在程序员中被广泛使用,被称为编辑器之神

(二). vi的基本使用

一. vi的打开方式

  1. 打开和新建文件

vi 文件名

  • 在终端中输入vi在后面跟上文件名即可
  • 如果文件已经存在,会直接打开
  • 如果文件不存在,则会新建一个文件
# vi 文件名
vi a.py

2.打开文件并且定位行

  • 在开发时,如果知道某行代码有错,就可以快速定位

到文件末尾处:

# vi 文件名 +
vi a.py +

到文件第6行:

# vi 文件名 +6
vi a.py +6

二. vi的三种工作模式

vi有三种基本工作模式:命令模式末行模式编辑模式

  • 命令模式: 打开文件首先进入命令模式,是使用vi的入口,通过命令对文件进行常规的编辑操作:定位翻页粘贴删除等。
  • 末行模式: 执行保存退出等操作。
  • 编辑模式: 正常的编辑文字。

1. 末行模式

  • 在命令模式下,按下:键即可进入末行模式下,此时 vi 会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个:作为末行模式的说明符,等待用户输入命令。

  • 多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)

1.常用命令

命令描述
w保存
q退出,若没有保存,不允许退出
q!强制退出
wq保存并退出
x保存并退出

2.末行命令扩展

  • 在vi编辑环境下切换到其他文件的操作
命令描述
e .打开内置的文件浏览
n 文件名新建文件
w 文件名文件另存为
  • 切换文件之前必须保证当前这个文件已经被保存

  • w另存为仍然编辑的是当前文件,并不会马上切换文件

  • 在实际开发中,w命令可做阶段性的备份代码

2. 命令模式

  • 进入 vi 编辑器后的默认模式。任何时候,不管用户处于何种模式,按下Esc键即可进入命令模式。
  • 在命令模式下,我们可以输入 vi 命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释。若输入的字符是合法的 vi 命令,则 vi 在接受用户命令之后完成相应的动作。
1. 移动和选择
  1. 行数移动
命令描述
gg回到文件顶部
G去到文件底部
# 回到文件顶部
gg
# 去到文件底部
G
# 去到第五行
5gg
# 去到第五行
: 5

2.屏幕移动

命令描述
ctrl + b向上翻页
ctrl + f向下翻页
H屏幕顶部
M屏幕中间
L屏幕底部

# 向上翻页
ctrl + b
# 向下翻页
ctrl + f
# 屏幕顶部
H
# 屏幕中间
M
# 屏幕底部
L

3.段落移动

命令描述
[]、{}、()从当前段落直接移动到下一段落
%在一对 " () "间移动
  • vi中使用空行来区分段落
  • 在程序开发时,通常一段功能相关的代码会写在一起(之间没有空行)
  • 代码中,()[]{}使用频率很高,而且都是成对出现的

4.标记

命令描述
m添加一个标记
x标记名称: a ~ z
  • 使用m增加一个标记,这样下次就可以快速的挑战回来或者执行其他编辑操作

  • 在开发时,某一段代码可能需要稍后再处理,例如我们会而要编辑、查看其他位置的代码,这时可以使用标记

  • 标记名称可以是a~z

  • 如果在其他行添加了同名的标记,之前添加的标记被替换掉

  • 标记完后,使用'x定位到标记x的所在位置

# 在某行标记上a标记
ma
# 跳转到标记a的位置
'a

5.选中文本(可视模式)

vi中提供了三种可视模式: 可视模式(v)、可视行模式(V)、可视块模式( Ctrl+v )。

命令描述
v可视模式: 从光标位置开始按照正常模式选择文本
V可视行模式: 选中光标经过的完整行
Ctrl + v可视块模式 : 垂直方向选中文本
# 可视模式
v
# 可视行模式
V
# 可视块模式
Ctrl + v
  • 可视模式下,可以和移动命令连用,例如: ggVG选中所有内容
2. 撤销和恢复撤销
命令描述
u撤销之前一次错误的编辑操作
Ctrl + r恢复撤销的命令
# 撤销之前一次错误的编辑操作
u

# 恢复撤销的命令
Ctrl + r

删除文本

命令描述
x删除光标所在字符
d删除移动命令对应的内容
# 删除光标所在字符
x
# 或者删除选中文字
5x
# 从光标到单词末尾
dw
# 从光标到一行的起始位置
d0  
# 从光标删除到段落结尾
d}
# 从光标到连续后的5行
5dd
# 从光标所在行删除到指定代码行之间的所有代码
dG
# 从光标所在行删除到标记a之间的所有代码
d'a

3. 编辑模式

  • 在命令模式下输入相关的命令都可以进入到文本的编辑模式。
1. 复制、粘贴

vi中提供有一个被复制文本的缓冲区。

  • 复制命令会将选中的文字保存在缓冲区
  • 删除命令删除的文字会被保存在缓冲区
  • 在需要的位置,使用粘贴命令可以将缓冲区的文字插入到光标所在的位置
命令描述
y复制
p粘贴
# 复制1行
yy
# 复制5行
5yy
# 复制一段
y}
# 复制到末尾
yG
  • 复制完再p
  • dx本质上也是剪切操作,如果是d或者x后,也可以P
2. 替换
命令描述
r替换当前字符
R替换当前行光标后的字符
  • R命令可以进入到替换模式,按下ESC可以回到命令模式
  • 替换命令的作用就是不用进入编辑模式
3. 缩排命令和重复执行
命令描述
<<向左减少缩进
>>向右增加缩进
V< V>多行缩进
.重复上次命令
# 代码向右缩进(4各空格)
>>
# 重复上次命令
. 
多行缩进
V> <V
4. 查找替换

1.查找

/str 回车

/hello 回车
  • 找到指定内容后,n查找下一个,N查找上一个
  • *向后查找当前光标所在单词
  • #向前查找当前光标所在单词

2.查找并替换

: %s///g (vi中的末行模式下执行)

# 格式:
:%s///g

3.全局替换

  • 一次性替换文件中出现的旧内容

:%s/旧内容/新内容/g

:%s/world/python/g

4.范围替换

:s/旧/新/g

:s/world/python/g

5.确认替换(推荐使用)

全局:

:%s/旧/新/gc

:%s/world/python/gc

局部:

:s/旧/新/gc

:s/world/python/gc
5. 插入命令
命令描述
i当前字符前插入
a当前字符后插入
o当前行的下一行插入空行
I行首插入
A行尾插入
O当前行的上一行插入空行
6. 分屏命令
  • 使用分屏命令,可以同时编辑和查看多个文件
命令描述
w切换到另一个窗口
r互换窗口
c关闭当前窗口
q退出当前窗口
o关闭其他窗口
  • 分屏窗口都是基于ctrl + w,每次操作屏幕前都要按一下

1.横向分屏

:sp

2.纵向分屏

:vsp 文件名:vsp .

# 横向
:sp

#纵向
:vsp hello.py
:vsp .

vi使用的注意事项

1.在开发时,在进入编辑模式之前,尽量避免按数字

2.利用可视块给多行代码增加注释:

  1. 命令行模式: ctrl + v

  2. 大写I (编辑模式): 添加 #

  3. ESC回到命令模式

文件

命令描述
w切换到另一个窗口
r互换窗口
c关闭当前窗口
q退出当前窗口
o关闭其他窗口
  • 分屏窗口都是基于ctrl + w,每次操作屏幕前都要按一下

1.横向分屏

:sp

2.纵向分屏

:vsp 文件名:vsp .

# 横向
:sp

#纵向
:vsp hello.py
:vsp .

vi使用的注意事项

1.在开发时,在进入编辑模式之前,尽量避免按数字

2.利用可视块给多行代码增加注释:

  1. 命令行模式: ctrl + v

  2. 大写I (编辑模式): 添加 #

  3. ESC回到命令模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值