摘要:学习整理注意后文中带尖括号的描述表示键盘按键,比如回车是指回车按键。输入文件名回车即可进入编辑器编辑该文件。按键回车进入替换模式可以连续替换多个字符。所有的命令都必须敲回车键结束。
前言
本文的初衷
从知道 vim 开始我就有心学习并尝试过几次,每次都是暂时的心血来潮,最终全部不了了之,就连最基本的 vimtutor 我都是学个两三节就半途而废,所以这次干脆写篇文章,利用几次学习把这篇文章完善起来。既方便自己坚持学习记录,又方便在之后使用中查看和复习。
如果正在看这篇文章的你已经是个老手,或者已经完整练过多次 vimtutor ,那么很遗憾本文并不会对你有更多的帮助。
安装Windows 安装 Git Bash
Linux 和 MacOS 无需安装
单词Vim 中的快键键都是有语义的,如果了解下面这些单词,相信你记住快捷键也不是什么难事。
quit
write/read
yank(复制)
paste
delete
change
find
word
forward/backward
up/down
insert/append
do/undo/redo
replace
vim 中的模式与模式切换Vim 有多种模式,分别是:
正常模式 (normal)
插入模式 (insert)
冒号模式 (或者叫命令模式 command)
可视模式 (visual)
启动 Vim (在终端输入 vim <回车>)后,并不能直接输入字符,vim 默认处于「正常模式」。
正常模式
「正常模式」一般用于浏览文件,也包括一些复制、粘贴、删除等操作。击键时一般的键/键组合会被当成功能键,而不会键入对应的字符。
在此模式下,可以通过键盘在文本中移动光标,移动范围从小到大是字符、单词、行、段落和屏幕。
提示:不论位于什么模式,按下
插入模式
「正常模式」下按i I a A键,会进入「插入模式」。
在「插入模式」下,击键时会写入相应的字符。
命令模式
「正常模式」下按 :(冒号)键,会进入「冒号模式」。
在「冒号模式」下可以执行一些输入并执行一些vim或插件提供的指令,就像在 shell 里一样。这些指令包括设置环境、文件操作、调用某个功能等等。
可视模式
「正常模式」下按 v V
在「可视模式」下,按方向键选择内容。
vimtutor 学习整理注意:
后文中带尖括号的描述表示键盘按键,比如 <回车> 是指回车按键。
在终端(我这里在 windows 下使用的 Gitbash)输入 vim <回车> 即可进入 Vim 编辑器;
输入 vimtutor <回车> 即可进入 vim 教程。
输入 vim 文件名 <回车> 即可进入 Vim 编辑器编辑该文件。
此时编辑器处于「正常模式」,也叫「normal 模式」。
我们稍后提到时再做介绍。
提示:按下
1.1 移动光标
h (左) j (下) k (上) l (右)
请随意按下字母了解如何移动光标。
1.2 Vim 的退出
提示:
1.3 文本编辑之删除
按 x 键删除一个字符
将光标移动至某个单词的起始处,按 dw 删除一个单词(英文)
按 dd 删除一整行
按 d$ 会从当前光标处删除至行末
提示: 输入 d 之后,字母 d 会出现在屏幕的右下角,等待接下来输入的命令,此时可以按
1.4 文本编辑之插入
按 i 键在光标所在处进入「插入模式」
此时左下角会出现「-- 插入 --」或者「-- INSERT --」的字样,表示当前处于「插入模式」。
按 I 键进入「插入模式」,同时光标会跳到所在行的行首。
此时可以输入内容,也可以选择按
提示:注意大小写,在 vim 中很多字母的大小写有着不同但相似的功能。
1.5 文本编辑之添加
输入 a 可以在光标后进入「插入模式」
输入 A 可以在光标所在行的行末进入「插入模式」
提示:a i I A 都会带您进入插入模式,惟一的区别在于字符插入的位置。
22.1 关于命令和对象
前文中我们学习的命令都是 d 和某个动作一起构成的。 比如 d 和 w 表示删除该单词;d 和 $ 表示删除至行末。
格式如下: d motion
d - 删除操作符
motion - 操作符的操作对象
介绍几个简单的动作:
w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。
e - 从当前光标当前位置直到单词末尾,包括最后一个字符。
$ - 从当前光标当前位置直到当前行末。
提示:在「正常模式」下仅按代表相应动作的键而不使用操作符,会看到光标的移动正如上面的动作列表所描述的一样。
2.2 使用计数指定动作
2w 使光标向前移动两个单词
3e 使光标移动到第三个单词的末尾
0 使光标移动到行首(^ 符号也可以做到这一点,只是按起来没有 0 方便)
提示:现在你一定也可以联想到 2h 就表示光标向前移动两个字符,3j 就表示光标向下移动三行等等;你可以任意组合来练习。
提示:输入数字时你会发现右下角也出现了相应的数字。
2.3 使用计数来删除更多
格式如下: d number motion
d2w 或者 2dw 删除两个单词
d2d 或者 2dd 删除两行
2.4 撤销类命令
u 撤销上一操作
U 撤销对整行的操作
3.1 置入类命令
p 粘贴
使用 dd 命令删除一整行内容,然后将光标移动到想要粘贴的位置 上方,输入 p 将该行粘贴置入
3.2 替换类命令
将光标移动到想要替换的字符前,输入 r 回车,接着输入想要的字符,就会把光标处的字符替换。
按 R 键回车进入「替换模式」可以连续替换多个字符。
提示:「替换模式」与「插入模式」相似,不过每个输入的字符都会删除一个已有的字符。
3.3 更改类命令
cw 改变文本直到一个单词的末尾
拆开来看 c 和 w ,c 表示修改,w 表示一个单词
注意:cw 命令会删除光标处至该单词末尾的字符,并直接进入「插入模式」。
提示:修改好内容后记得按
3.4 使用 c 更改更多
更改类操作符的工作方式跟删除类一致。操作格式是:
c [number] motion
c$ 表示从光标处开始删除至行末并进入「插入模式」。
44.1 定位及文件状态
windows 下的 Gitbash 在编辑器下方一直显示当前光标所在行的信息。
G 跳转到当前文件最后一行
gg 跳转到当前文件第一行
行号 G 跳转到指定行
4.2 搜索类命令
/ 要搜索的字符串 <回车> 光标会跳转到搜索的此字符串前
? 要搜索的字符串 <回车> 逆向查找
n 查看下一个搜索的匹配项
N 查看上一个搜索的匹配项
4.3 配对括号的查找
将光标移动到任意一个 ( { [ ] } ) 处,按下 % 光标会跳转到另一个对应的括号处
4.4 替换命令
下方几个命令中 old 代表替换前的词,new 表示替换后的词
:s/old/new <回车> 替换光标所在行的第一个匹配串
:s/old/new/g <回车> 替换全行的匹配串
:#,#s/old/new/g <回车> 其中两个 # 号分别表示替换操作的起始行和结尾行,表示替换只在这之间进行
:%s/old/new/g <回车> 替换整个文件中的每个匹配串
:%s/old/new/gc <回车> 替换整个文件中的每个匹配串之前会询问是否替换
55.1 在 Vim 内执行外部命令
:!外部命令 <回车> 执行外部命令
:!ls 列出所在目录的文件
提示:
所有的外部命令都可以以这种方式执行,包括带命令行参数的那些。
所有的 : 命令都必须敲 <回车> 键结束。
5.2 保存文件
我们知道了当前目录之后,也可以执行保存命令。
:w TEST 会将当前文件重名为 TEST 并保存到当前目录
:!rm TEST 删除文件
5.3 一个具有选择性的保存命令
v motion :w fileName
按下 v 键,进入「可视模式」,也叫「visual 模式」。
接着移动光标会发现会选中移动过的区域并高亮。
然后按 : 将会看到屏幕底部出现 :"<,">
接着输入 w TEST
此时整个命令为::"<,"> w TEST ,表示将选中内容保存为命为 TEST 的文件
5.4 提取和合并文件
:r TEST 将 TEST 文件的内容置入当前文件的当前光标处
提示:还可以读取外部命令的输出。例如, :r !ls 可以读取 ls 命令的输出,并把它放置在光标下面。
66.1 打开类命令
o 在当前光标所在行的下方新起一行,并进入「插入模式」
O 在当前光标所在行的上方新起一行,并进入「插入模式」
6.2 附加类命令
输入 e 可以使在光标英文内容中以单词为单位跳转
6.3 复制粘贴文本
使用操作符 y 复制文本,使用 p 粘贴文本
6.4 设置类命令的选项
输入 :set xxx 可以设置 xxx 选项。一些有用的选项如下:
"ic" "ignorecase" 查找时忽略字母大小写
"is" "incsearch" 查找短语时显示部分匹配
"hls" "hlsearch" 高亮显示所有的匹配短语
选项名可以用完整版本,也可以用缩略版本。
在选项前加上 no 可以关闭选项: :set noic
77.1 获取帮助信息
按下
连续输入两次
7.2 创建启动脚本
.vimrc 文件
7.3 补全功能
使用
使用
请确保 Vim 不是在以兼容模式运行: :set nocp
一些 vimtutor 里没提到的命令组合打开文件,键入 gg 将光标移动到文件的第一行,然后键入 dG 以删除其中的所有行或文本。
:1,$d 删除所有行或文本
结语vim 的使用就像编写程序一样,你总要在实践中去掌握它。好了,现在神器在手,就看能不能熟练使用了。
(完)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/25114.html
摘要:时间年月日星期六说明本文部分内容均来自慕课网。必填用于执行命令,当执行完毕后,将产生一个新的文件层。可选指定此镜像启动时默认执行命令。可选用于指定需要暴露的网络端口号。可选向镜像中挂载一个卷组。 时间:2017年09月16日星期六说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com 教学源码:无 学习源码:无 第一章:课程简介 1-1 课程介绍 Docke...
摘要:对于浏览器,的值可能是可以通过调用函数,判断用户代理是否为浏览器。处理表单处理表单的方式很方便,可以使用超全局变量获得数据。使得之中的特殊字符被正确的编码,从而不会被使用者在页面注入标签或者代码。 曾经简单的学习过PHP,看的是《PHP和MySQL Web开发》,还有万能的搜索引擎的帮助。这次准备系统的学习一下,参考资料是PHP Manual。 PHP能做什么 PHP主要用于服务端的脚...
摘要:转载请注明出处原文排版地址点击跳转转载请注明出处来源简单的理解就是用对其他主机上的容器进行操作这一篇文章是比较旧的实现方式,之后的版本引入了,更加的方便,参考笔记原理每个主机拉取一个镜像,启动运行容器,在中注册地址和所以不适用于生产环境因 转载请注明出处 http://www.paraller.com 原文排版地址 点击跳转 转载请注明出处 来源:parallers blog d...
摘要:介绍是一个基于的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于接口。是用开发的,并作为许可条款下的开放源码发布,是当前流行的企业级搜索引擎。本文从零开始,讲解如何使用搭建自己的全文搜索引擎。 介绍 ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch ...
阅读 2614·2023-04-25 15:22
阅读 2797·2021-10-11 10:58
阅读 959·2021-08-30 09:48
阅读 1777·2019-08-30 15:56
阅读 1697·2019-08-30 15:53
阅读 1046·2019-08-29 11:16
阅读 1022·2019-08-23 18:34
阅读 1604·2019-08-23 18:12