Vim文本编辑器的使用


vim是从 vi 发展出来的一个文本编辑器 。代码补完、编译及错误跳转等方便编程的功能特别丰富。

Vim有三种基本工作模式:

  • 命令模式
  • 文本输入模式
  • 末行模式

命令模式(vi的入口)
任何模式,只要按一下ESC键,即可使Vi进入命令模式;我们在shell环境下输入启动Vi命令,进入编辑器时,也是处于该模式下。在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。

文本输入模式(编辑文字)
在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键ESC即可。

末行模式(vi的出口)
在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在屏幕的最后一行显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。

1 打开和新建文件

在终端中输入 vi 文件名 即可
vi 文件名如果文件已经存在,会直接打开该文件;如果文件不存在,会新建一个文件。

打开文件并且定位行

vi 文件名 +行数

提示:如果只带上 + 而不指定行号,会直接定位到文件末尾

2 保存并退出(末行模式)

(1)末行模式常用命令:
w 保存
q 退出,如果没有保存,不允许退出
q! 强行退出,不保存退出
wq 保存并退出
x 保存并退出

(2)末行命令扩展
:e. 会打开内置的文件浏览器,浏览要当前目录下的文件
:n 文件名 新建文件
:w 文件名 另存为,但是仍然编辑当前文件,并不会切换文件

注意:
切换文件之前,必须保证当前这个文件已经被保存!

3 进入插入模式

i: 插入光标前一个字符
I: 插入行首
a: 插入光标后一个字符
A: 插入行未
o: 向下新开一行,插入行首
O: 向上新开一行,插入行首

4 进入命令模式

ESC:从插入模式或末行模式进入命令模式.

5 在命令模式下移动光标

(1)方向移动
h: 左移
j: 下移
k: 上移
l: 右移

(2) 行内移动
w: 向后一次移动一个字
b: 向前一次移动一个字
0:行首
^: 行首(第一个不是空白字符的位置)
$: 行尾

(3) 行数移动
gg 文件顶部
G 文件末尾
数字gg 移动到数字对应行数
数字G 移动到数字对应行数
:数字 移动到数字对应行数
{: 按段移动,上移(vi 中使用空行来区分段落)
}: 按段移动,下移

(4) 屏幕移动
Ctrl + b 向上翻页
Ctrl + f 向下翻页
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
H 屏幕顶部
M屏幕中间
L 屏幕底部

(5) 括号切换
% 括号匹配及切换 ,在括号之间来回切换

6 可视模式

v: 按字符移动,选中文本
V: 按行移动. 选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动.
Ctrl + v 可视块模式,垂直方向选中文本。

注意:

  • 可视模式下,可以和 移动命令连用,例如:ggVG 能够选中所有内容。
  • 按 ESC 可以放弃选中,返回到 命令模式
7 标记

mx 添加标记 x
'x 直接定位到标记 x 所在位置

注意:

  • 标记名称可以是 a~z 或者 A~Z 之间的任意 一个 字母。
  • 添加了标记的行如果被删除,标记同时被删除。
  • 如果在其他行添加了相同名称的标记,之前添加的标记也会被替换掉。
8 删除命令

x: 删除光标后一个字符,或者选中的文字
X: 删除光标前一个字符,相当于 Backspace
dd: 删除光标所在行
D: 删除至行尾
d(移动命令): 删除移动命令对应的内容

示例:
dw # 从光标位置删除到单词末尾
d0 # 从光标位置删除到一行的起始位置
d} # 从光标位置删除到段落结尾
ndd # 从光标位置向下连续删除n行
d代码行G # 从光标所在行删除到指定代码行
d'a # 从光标所在行删除到标记a之间的所有代码

注意:
如果使用可视模式已经选中了一段文本,那么无论使用d还是 x,都可以删除选中文本。

9 撤销命令

u: 撤销上次命令
Ctr-r: 恢复撤销的命令

10 缩排和重复执行

>> 向右增加缩进
<< 向左减少缩进
. 重复上次命令

注意:
在 可视模式 下,缩排命令只需要使用 一个 > 或者 <

11 复制粘贴

vi 中提供有一个 被复制文本的缓冲区复制 命令会将选中的文字保存在缓冲区,删除命令删除的文字也会被保存在缓冲区。

yy: 复制当前行,nyy 复制 n 行
p: 在光标所在位置向下新开辟一行,粘贴
y(移动命令) 复制

12 替换操作

使用替换命令可以不用进入 编辑模式,来完成对文件的轻量级修改。

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

注意:
替换完成后,按下 ESC 可以回到 命令模式。

13 查找命令

/’字符串’: 字符串查找
n: 下一个
N:上一个

14 单词快速匹配

在开发中,通过单词快速匹配,可以快速看到这个单词在其他什么位置使用过。

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

15 替换命令:

:%s/旧文本/新文本/g:格式比较固定

1) 全局替换
:%s/abc/123/g 末行模式下,将当前文件中的所有abc替换成123

2)局部替换
:1, 10s/abc/123/g末行模式下,将第一行至第10行之间的abc替换成123

3) 可视区域替换
先选中要替换文字的范围:s/旧文本/新文本/g

4)确认替换
:%s/旧文本/新文本/gc 如果把末尾的 g 改成 gc 在替换的时候,会有提示!推荐使用!

  • y 替换
  • n 不替换
  • a 替换所有
  • q退出替换
  • l 最后一个,并把光标移动到行首
  • ^E 向下滚屏
  • ^Y 向上滚屏
16 vim里执行 shell 下命令

末行模式里输入!,后面跟命令
查找 vi 的运行文件
$ which vi $ ls -l /usr/bin/vi $ ls -l /etc/alternatives/vi $ ls -l /usr/bin/vim.basic

17 异常处理

如果 vi 异常退出,在磁盘上可能会保存有交换文件。下次再使用 vi 编辑该文件时,按下字母 d 删除交换文件即可。

18 常用技巧

(1)编辑命令和数字连用
在开发中,可能会遇到连续输入 N 个同样的字符的情形。

例如:********** 连续 10 个星号
要实现这个效果可以在命令模式下:
1.输入 10,表示要重复 10 次
2.输入 i 进入 编辑模式
3.输入 * 也就是重复的文字
4.按下 ESC 返回到 命令模式,返回之后 vi 就会把第 2、3 两步的操作重复 10 次

注意:
正常开发时,在 进入编辑模式之前,不要按数字.

(2)利用可视块给多行代码增加注释
在开发中,可能会遇到一次性给多行代码增加注释的情况,在 java中,要给代码增加注释,可以在代码前增加一个 //

要实现这个效果可以在命令模式下:
1.移动到要添加注释的 第 1 行代码,按 ^ 来到行首
2.按 CTRL + v 进入 可视块 模式
3.使用 j 向下连续选中要添加的代码行
4.输入 I 进入 编辑模式,并在行首插入.
注意:一定要使用 I,可视模式下只能用I进入编辑模式
5.输入// 也就是注释符号
6.按下 ESC 返回到 命令模式,返回之后 vi 会在之前选中的每一行代码 前 插入 //

19 分屏命令

使用 分屏命令,可以 同时编辑和查看多个文件。图形界面下好用。
:sp [文件名] 横向增加分屏
:vsp [文件名] 纵向增加分屏

1) 切换分屏窗口
切换分屏窗口都是基于 CTRL + W 这个快捷键的
w 切换到下一个窗口
r互换窗口
c 关闭当前窗口,但是不能关闭最后一个窗口
q 退出当前窗口,如果是最后一个窗口,则关闭 vi
o 关闭其他窗口

2) 调整窗口大小
+ 增加窗口高度
- 减少窗口高度
> 增加窗口宽
< 减少窗口宽度
= 等分窗口大小

调整窗口宽高的命令可以和数字连用,例如:5 CTRL + W + 连续 5 次增加高度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值