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 笔记


??Vim总共分为普通模式、插入模式(insert)、替换模式(replace)、可视模式(visual)、命令模式。Vim启动后即进入普通模式,在其它模式下,按 Esc可退回到普通模式。

普通模式

普通模式下命令可分为以下三类:

  • 光标命令
    指移动光标的命令。有以下特性:
    • 输入这些命令前,可以先输入一个数字,用来指定连续执行的次数。如:<command><command><command>等价于3<command>
    • 这些命令可以作为含参命令的参数,用来指定含参命令的作用范围。
  • 立即命令
    指按下命令键后,无需再输入参数,便立即做出反应的命令。有以下特性:
    • 同光标命令,在输入前可输入一个数字。
  • 含参命令
    指按下命令键后,需要再输入参数,才能做出反应的命令。有以下特性:
    • 同光标命令,在输入前可输入一个数字。
    • 后跟参数可为光标命令(记作<end_position>),记当前光标位置为<start_position>,则该命令作用范围是<start_position><end_position>
    • 后跟参数也可为该命令的重复,此时作用范围为光标所在的一行。

光标命令

字符级移动

命令含义
h向左移动
j向下移动
k向上移动
l向右移动

单词级移动

命令含义
wW移动至下一个单词的第一个字符处
bB移动至光标所在单词的第一个字符处;若已在此处,则移动至上一个单词的第一个字符处
eE移动至光标所在单词的最后一个字符处;若已在此处,则移动至下一个单词的最后一个字符处

WBE以不可见字符( \s)作为划分单词的依据;wbe以非单词字符( \W[\^0-9a-zA-Z_])作为划分单词的依据。

行级移动

命令含义
0移动至本行行首
$移动至本行行尾
^移动至本行第一个非空字符
+移动至下一行行首
-移动至上一行行首

文段级移动

命令含义
(移动至当前句子开头;若已在此处,则移动至上一句的开头
)移动至当前句子结尾;若已在此处,则移动至下一句的开头
{移动至当前段落开头;若已在此处,则移动至上一段的开头
}移动至当前段落结尾;若已在此处,则移动至下一段的结尾

屏幕级移动

命令含义
H移动至本屏首行行首
M移动至本屏中间一行的行首
L移动至本屏尾行行首

文件级移动

命令含义
gg移动至文件首行行首
G移动至文件尾行行首
4G移动至文件第四行行首

屏幕行移动

当某行的字符数过多,为适应屏幕宽度而回绕时,该行在屏幕上占据两行;实际上占据一行。

命令含义
gj移动至上一屏幕行
gk移动至下一屏幕行
g0移动至本屏幕行行首
g$移动至本屏幕行行尾
g^移动至本屏幕行第一个非空字符处

匹配移动

命令含义
*移动至与光标所在单词相匹配的下一个单词
#移动至与光标所在单词想匹配的上一个单词
%移动至另一个括号符(支持的括号符为 ( ) [ ] { } )

查找式移动

命令含义
/向后查找
?向前查找
n若有多项符合查找要求,按此键则移动至下一项
N若有多项符合查找要求,按此键则移动至上一项

拷贝、剪切和粘贴

下表中除yd外其余皆为立即命令

命令含义
y拷贝(含参命令)
Y拷贝当前行
d剪切(含参命令)
D从当前光标位置起剪切至行尾
x剪切光标处字符
X剪切光标前字符
p向后粘贴
P向前粘贴

??现对含参命令进行举例。根据含参命令的特性可知:yy等价于Yy$表示拷贝从光标位置至行尾的内容;y4e表示拷贝从光标位置开始至其后的第4个单词结尾的内容。
??Vim 支持将拷贝或剪切的内容存入一个变量(az)中,在需要的时候从某个变量中取出粘贴。使用变量时需先输入"声明变量,如:"aY表示拷贝当前行的内容放入变量a中;"bp表示向后粘贴变量b中的内容。

缩进

命令含义
>缩进(含参命令)
<反缩进(含参命令)

大小写转换

命令含义
gu转为小写(含参命令)
gU转为大写(含参命令)

合并

命令含义
J将当前行与下一行合并

撤销

命令含义
u撤销上一次操作
U撤销对当前行的所有操作

标记点

命令含义
m声明标记点
\` 跳转到标记点
'跳转到标记点的行首

??Vim支持26个局部标记点(az)和26个全局标记点(AZ),局部标记点仅限于当前文件内,全局标记点可跨文件跳转。如:ma表示将当前光标处声明为局部标记点a\`a表示跳转到标记点a处,'A表示跳转到全局标记点A处的行首(可能发生文件跳转)。

保存和退出

命令含义
ZZ不保存退出
ZQ保存退出

屏幕视图切换

命令含义
zt将光标所在行滚动至屏幕顶端
zz将光标所在行滚动至屏幕中间
zb将光标所在行滚动至屏幕底端
Ctrl + f向上翻页
Ctrl + b向下翻页
Ctrl + e向上滚动一行
Ctrl + y向下滚动一行

插入模式

下表中除c外其余皆为立即命令

命令含义
i在当前位置的左侧插入
a在当前位置的右侧插入
I在当前行行首插入
A在当前行行尾插入
o在当前行之下插入新一行
O在当前行之上插入新一行
s删除当前字符并插入
S删除当前行并插入
c删除并插入(含参命令)
C删除从光标开始至行尾的内容并插入

替换模式

命令含义
r替换当前字符
R进入替换模式

命令模式

保存和退出

命令含义
:w保存
:w!强制保存(应用于只读文件,且用户有修改权限)
:q退出
:q!强制退出(退出且不保存修改时)
:wq保存并退出
:wq!强制保存并退出(应用于只读文件,且用户有修改权限)

设置

命令含义
:set nu显示行号
:set nonu不显示行号

查找和替换

命令含义
/<regular_expression>查找(<regular_expression>为正则表达式,此时按n光标移动到下一匹配项;按N光标移动到上一匹配项)
:s/<regular_expression>/<string>将当前行第一个匹配项替换为<string>
:s/<regular_expression>/<string>/g将当前行所有匹配项替换
:%s/<regular_expression>/<string>将各行第一个匹配项替换
:%s/<regular_expression>/<string>/g将全文所有匹配项替换
  开发工具 最新文章
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-07-21 21:44:34  更:2022-07-21 21:45:15 
 
开发: 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:50:09-

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