Vim

2020-12-02  本文已影响0人  TheAPICaller

Vim

Vim和Vi

在Linux发行版中, 直接把Vi做成Vim的软连接

Vi

Vi的特点

Vim

Vim = Vi Improved

打开和创建文件

在终端输入vi后面跟上文件名, 即可

vim 文件名

打开文件并且定位行

在日常工作中, 有可能会遇到打开一个文件,并定位到指定行的情况

vim 文件名 +行号

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

永久显示行号

vim ~/.vimrc 
set number 或者 set nu

异常处理

vim -r 显示交换文件
rm 文件

提示: 按下键盘时, 注意关闭输入法

三种工作模式

Vim 有三种工作模式

Touch Bar的Mac电脑上, 按Esc不方便, 可以使用CTRL + [ 替代

末行模式命令

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

常用命令

命令路线路

移动(基本)

命令 功能 手指
h 向左 食指
j 向下 食指
k 向上 中指
l 向右 无名指

行内移动

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

行数移动

命令 英文 功能
gg go 文件顶部
G go 文件末尾
数字gg go 移动到 数字 对应行数
数字G go 移动到 数字 对应行数
:数字 移动到 数字 对应行数

屏幕移动

命令 英文 功能
Ctrl + b back 向上翻页, 大小写都可以
Ctrl + f forward 向下翻页
H Head 屏幕顶部
M Middle 屏幕中间
L Low 屏幕底部

移动(程序)

段落移动

命令 功能
{ 上一级
} 下一级

括号切换

命令 功能
% 括号匹配及切换

标记

命令 英文
mx mark
``x`

选中文本(可视模式)

命令 模式 功能
v 进入可视模式 从光标位置开始按照正常模式选择文本
V 进入可视行模式 选中光标经过的完整行
Ctrl + v 进入可视块模模式 垂直方向选中文本

可视模式下, 可以和移动命令连用, 例如: ggVG能够选中所有内容

撤销和恢复撤销

命令 英文 功能
u undo 撤销上次命令
Ctrl + r redo 恢复撤销的命令

删除文本

命令 英文 功能
x cut 删除光标所在的字符, 或者选中文字
d+ (移动命令) delete 删除移动命令对应的内容
dd delete 删除光标所在行, 可以ndd 复制多行
D delete 删除至行尾

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

命令 功能
dw 从光标位置删除到单词末尾
d0 从光标位置删除到一行的起始位置
d} 从光标位置删除到段落结尾
ndd 从光标位置向下连续删除n行
d代码行G 从光标所在行, 删除到指定代码行之间的所有代码
d`a 从光标所在行, 删除到标记a 之间的所有代码

复制、粘贴

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

提示

注意

替换

命令 英文 功能 工作模式
r replace 替换当前字符 命令模式
R replace 替换当前光标后的字符 替换模式

缩排和重复执行

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

在程序中, 缩进 通常用来表示代码的归属关系

  • 前面空格越少, 代码的级别越高
  • 前面空格越多, 代码的级别越低

查找

常规查找

命令 功能
/ + 单词 查找单词

单词快速匹配

命令 功能
* 向后查找当前光标所在的单词
# 向前查找当前光标所在的单词

查找并替换

:%s///g

全局替换

可视区域替换

确认替换

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

插入命令

命令 英文 功能 常用
i insert 在当前字符前插入文本 常用
I insert 在行首插入文本 较常用
a append 在当前字符后添加文本
A append 在行末添加文本 较常用
o 在当前行后面插入一空行 常用
O 在当前行前面插入一空行 常用

演练1 编辑命令和数字连用

Python中有简单的方法, 但是其他语言中通常需要自己输入

要实现这样的效果可以在命令模式下

  1. 输入10, 表示要重复10次
  2. 输入i, 进入编辑模式
  3. 输入* 也就是重复的文字
  4. 按下ESC返回到 命令模式, 返回之后Vim会把2, 3两步的操作重复10

进入编辑模式之前, 不要按数字

演练2 利用可视块给多行代码增加注释

要实现这样的效果

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

分屏命令

属于Vim的高级命令, 可以同时编辑和查看多个文件

末行命令扩展

末行命令 主要是针对文件进行操作的: 保存, 退出, 保存&退出, 搜索&替换, 另存, 新建, 浏览文件

命令 英文 功能
:e. edit 会打开内置的文件浏览器, 浏览当前目录下的文件
:e 文件名 切换文件
:n 文件名 new 新建文件
:w 文件名 write 另存为, 但是仍然编辑当前文件, 并不会切换文件, 阶段性的备份

提示: 切换文件之前, 必须保证当前这个文件已经被保存

命令 英文 功能
:w write 保存
:q quit 退出, 如果没有保存, 不允许退出
:q! quit 强制退出, 不保存退出
:wq write & quit 保存并退出
:x 保存并退出
:%s///gc 确认搜索并替换

在实际开发中, 可以使用W 命令阶段性的备份代码

上一篇下一篇

猜你喜欢

热点阅读