IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> vim基本使用 -> 正文阅读

[开发工具]vim基本使用

01.vi和vim

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

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

在Linux 发行版中,直接把vi做成vim的软链接。

02.打开和新建文件

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

vi 文件名

如果文件已经存在,会直接打开该文件。
如果文件不存在,会新建一个文件。

打开文件并且定义行

vi 文件名 +行数

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

异常处理
如果vim异常退出,在磁盘上会保存有交换文件
如果再使用vi编辑该文件,会看到某些屏幕信息,按下字母d可以删除交换文件
(注意:要用英文)

03.三种基本工作模式

1.命令模式
打开文件首先进入命令模式,是使用vi的入口
通过命令对文件进行常规的编辑操作,例如:定位,翻页,复制,粘贴,删除…
在其他图形编辑器下,通过快捷键或者鼠标实现的操作,都在命令模式下实现
2.末行模式—执行保存,退出等操作
要退出vi返回到控制台,需要在末行模式下输入命令
末行模式是vi的出口
3.编辑模式—正常的编辑文字

vim

末行模式命令

命令英文功能
wwrite保存
qquit退出,如果没有保存,不允许退出
q!quit强制退出,不保存退出
wqwrite&quit保存并退出
x保存并退出

04.移动

(1)上,下,左,右

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

(2)行内移动

命令英文功能
wword向右移动一个单词
bback向前移动一个单词
0行首
^行首,第一个不是空白字符的位置
$行尾

(3)行数移动

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

(4)屏幕移动

命令英文功能
Ctrl + bback向上翻页
Ctrl +fforward向下翻页
HHead屏幕顶部
MMiddle屏幕中间
LLow屏幕底部

(1)段落移动

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

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

(2)括号切换

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

(3)标记

添加了标记的行如果被删除,标记同时被删除
如果在其他行添加了相同名称的标记,之前添加的标记也会被替换掉

命令英文功能
mxmark添加标记x,x是az或者AZ之间任意一个字母
'x直接定位到标记x所在位置

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

在vi中要选择文本,需要先使用Visual命令切换到可视模式
vi 中提供了三种可视模式,可以方便程序员选折 选中文本的方式
按ESC 可以放弃选中,返回命令模式

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

06.撤销和恢复撤销

命令英文功能
uundo撤销上次命令
CTRL + rredo恢复撤销的命令

07.删除文本

命令英文功能
xcut删除光标所在字符,或者选中文字
d(移动命令)delete删除移动命令对应的内容
dddelete删除光标所在行,可以ndd复制多行
Ddelete删除至行尾
  • dw # 从光标位置删除到单词末尾
  • d0 # 从光标位置删除到一行的起始位置
  • d} # 从光标位置删除到段落末尾
  • ndd # 从光标位置向下连续删除n行
  • d代码行G # 从光标所在行 删除到 指定代码行 之间的所有代码
  • d’a # 从光标所在行 删除到 标记a 之间的所有代码

08.复制,粘贴

命令英文功能
y(移动命令)copy复制
yycopy复制一行,可以nyy复制多行
ppaste粘贴

提示:
命令d,x类似于图形界面的剪切操作——CTRL+X
vi中的文本缓冲区同样只有一个,如果后续做过复制,剪切操作,之后缓冲区的内容会被替换。
注意:
vi 中的文本缓冲区和系统的剪贴板不是同一个
所以在其他软件中使用CTRL+C复制的内容,不能再vi中通过p命令粘贴
可以再编辑模式下使用鼠标右键粘贴

09.替换

替换命令的作用就是不用进入编辑模式,对文件进行轻量级的修改

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

10.缩排和重复执行

一次性在选中代码前增加4个空格,就叫做增加缩进
一次性在选中代码前删除4个空格,就叫做减少缩进

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

11.查找

常规查找

命令功能
/str查找str

查找到指定内容之后,使用Next查找下一个出现的位置:

n:查找下一个
N:查找上一个

单词快速匹配

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

12.查找并替换

:%s///g

(1)全局替换
一次性替换文件中的所有出现的旧文本

:%s/旧文本/新文本/g

(2)可视区域替换
先选中要替换文字的范围
命令格式如下:

:s/旧文本/新文本/g

(3)确认替换

:%s/旧文本/新文本/gc

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

13.插入命令

命令英文功能常用
iinsert在当前字符前插入文本常用
Iinsert在行首插入文本较常用
aappend在当前字符后添加文本
Aappend在行末添加文本较常用
o在当前行后面插入一空行常用
O在当前行前面插入一空行常用

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

提示:正常开发时,在进入编辑模式之前,不要按数字。

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

14.末行命令扩展

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

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

15.分屏命令

命令英文功能
:sp 文件名split横向增加分屏
:vsp 文件名vertical split纵向增加分屏

切换分屏窗口

命令英文功能
wwindow切换到下一个窗口
rreverse互换窗口
cclose关闭当前窗口,但是不能关闭最后一个窗口
qquit退出当前窗口,如果是最后一个窗口,则关闭 vi
oother关闭其他窗口
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:32:17  更:2022-09-04 01:36:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:59:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码