跟着Vimtutor学习Vim
跟着Vimtutor学习Vim
Lesson 1
1.1 移动光标
- 在Vim中移动光标,分别使用h、j、k、l键代表左、下、上、右方向。
1.2 退出VIM
:q! <ENTER> 退出Vim(丢弃内容)
上述命令可以退出VIM。
注:必须在Normal mode下使用。(可以按下键来确保进入了Normal mode)
1.3 文本编辑 - 删除
在Normal mode中,可以键入
x 删除光标指定字符
来删除单个字符。
1.4 文本编辑 - 插入
在Normal mode中,键入
i 插入文本到光标指定行
可以在指定位置插入文本,完成后键入即可回到nm中。
1.5 文本编辑 - APPENDING
在nm中,键入
A 追加文本到光标指定行
可以实现在选定的一行中的末尾进行追加(插入)文本操作。
注意是大写的A。
1.6 编辑一个文件
使用VIM创建/打开一个文件, filename为定义的文件名
vim filename <ENTER> 打开/创建文件
使用VIM保存一个文件,在编辑完成后进入nm,然后键入:
:wq <ENTER> 保存文件
Lesson 2
2.1 删除命令
进入nm,输入下面命令即可删除一个单词(word)(包括空格)
dw 删除光标后对应的单词
2.2 更多的删除命令
进入nm,下面命令可以删除光标后的指定行的文本
d$ 删除光标后指定行的文本
2.3 对于运算符及有关操作
在VIM中,许多命令都是一个operator加上一些motion完成的,如:

可以看出对于删除操作而言,d后面跟不同的motions会有不同的操作效果。其中:
w - 下一个词的词首,但不包括第一个首字母。
e - 当前词的词尾,包括最后一个字母。
$ - 最后一行,包括最后一个字母。
2.4 在Motion中用数字
对于motion可以插入数字,进而产生不同的效果。
2w 将光标向前移动两个词
3e 将光标向前移动三个词直到第三个词的末尾
0 将光标移动到指定行的头部
2.5 在删除中使用数字
通常的形式为:
d number motion
例如对于 d2w 其意义就是删除光标后的两个单词。
2.6 文本行上的操作
输入下面命令可以删除整行文本
dd 删除整行文本
当然也可以删除多行,只需要指明删除的行数即可。如2dd就代表删除光标所指的行及下一个,共两行。
2.7 撤回操作
在VIM中,u可以实现撤回上次的操作,U可以实现撤回整行修改的操作。
u 撤回上次操作
U 撤回整行的修改操作
CTRL-U 撤回“撤回的消息”
Lesson 3
3.1 Put操作
在VIM中,使用dd命令可以实现删除光标指定行的功能,但其所做的事情并不只是简单的将指定行删除,它在删除了行内容之后还将其放入了一个Vim寄存器中,因此我们可以使用如下命令将内容再Put(粘贴)到指定位置。
p Put命令,相当于粘贴功能
3.2 Replace操作
rx操作实现更改指定的单个字符为x。
rx r代表replace,x代表替换字符(同来替换光标指定字符)
3.3 更改操作
ce操作可以实现更改一个单词指定位置之后的所有字符。
ce 光标指定单词的位置,ce可以更改光标后所有字符
3.4 关于更改的更多操作
相比于删除操作,更改操作和其使用方法差不多,如下:
c [number] motion
c代表更改操作,number代表要更改的数量,motion即相关motion。
如:对于d2w,就是更改光标指定后面的两个单词。
d$,就是更改光标指定后的文本(一行)。
Lesson 4
4.1 光标位置和文件状态
CTRL-G 显示出文件位置和当前光标所在行
G 移动光标到文件底部位置
gg 移动光标到文件头部位置
[number] G 移动光标到指定行(number就是行数)
4.2 搜索命令
/ [target] /代表搜索,target代表需要搜索的内容
对于搜索来说,/是以当前位置向后进行检索,如果找不到就再从头开始找;而?与其相反,是向前检索。
为了方便检索,Vim还提供了下面两个快捷方式:
n 按既定方向搜索指定内容
N 按既定方向的反方向搜索指定内容
另外,CTRL-O可以回到上次光标的行位置,CTRL-I与其相反。
4.3 括号匹配搜索
% 寻找匹配的圆括号/花括号/中括号等
4.4 Substitute替换命令
:s/old/new <ENTER> s命令将old替换为new
:s/old/new/g <ENTER> 全局替换
上面的命令代表在指定行中,将old的值替换为new,但只能替换第一次出现的old。如想替换指定行所有的old,则需要在最后加一个/g代表代换globally。
:#,#s/old/new/g 表示在#到#行之间的文本进行替换
:%s/old/new/g 表示全文进行替换
:%s/old/new/gc 表示全文进行替换,但每次替换有请求
Lesson 5
5.1 在Vim中执行外部命令
:! [external-command] 在执行shell中的命令
例如:在Vim中键入 :!ls 可以实现得到当前目录的文件信息。
5.2 在Vim中写入文件
:w FILENAME 将内容写入名为FILENAME的文件中
:!rm FILENAME 使用外部命令删除名为FILENAME的文件
5.3 选择文本写入
v motion :w FILENAME 使用v选择文本然后写入文件中
在Vim中使用v选择相应文本,选择完成后键入:,之后会出现一个'<,'>'的字符出现在底部,之后键入w FILENAME即可完成操作。
5.4 检索并合并文件
:r FILENAME 将FILENAME文件内容读取并插入到光标所在位置后
此外, :r 还可以实现读取控制台的输出内容。如:
:r !ls 可以实现将当前路径下的文本信息(ls后的内容)插入到光标所在位置之后。
Lesson 6
6.1 Open命令
o o命令可以在光标指定行下创建新的一行
O O命令可以在光标指定行上创建新的一行
这两个命令其不同之处仅仅在于方向,相同之处在于都相当于另开一行,属于插入操作。
6.2 Append命令
a a命令指定在光标所在位置插入文本
与之前的 A 命令相似的是这两个都是相同的插入模式,只是插入的位置不同罢了。
6.3 Replace的不同方式
R R命令可以替换光标后面的内容
与之前的 r 命令相似的是两者都是对文本进行替换,不过 r 是对字符进行替换,此命令是替换任意字符。
注:Replace mode is like Insert mode, but every typed character deletes an existing character.
6.4 复制和粘贴
y y命令可以复制选定的文本
p p命令可以粘贴选定的文本
如果想要实现粘贴文本,则需要先使用 v 命令选定文本,之后使用y命令复制文本,再将光标移动到指定位置,使用 p 命令粘贴文本即可。
6.5 设置选项
:set ic 设置在搜索/替换时忽略大小写(Ignore case)
:set hls is 设置搜索时高亮显示
:set noic 设置不忽略大小写
-------------------------------------------------------
:nohlsearch 去除高亮显示
/[target] \c <ENTER> \c可以实现尽在本次搜索时忽略大小写
Lesson 7
7.1 Getting Help
Press the <F1> key 按下F1键
:help <ENTER> 输入help指令
以上两种方法可以实现弹出帮助。
CTRL-W 切换窗口
:q <ENTER> 退出指令
7.2 创建启动脚本
可以编辑Vim的一些特征。如下图

7.3 补全
CTRL-D 未输全命令时展示其所有形式
<TAB> 自动补全


跟着Vimtutor学习Vim的更多相关文章
- 跟我一起学习VIM
跟我一起学习VIM - The Life Changing Editor 前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种惊叹 ...
- VIMTUTOR《VIM教程》
=============================================================================== = 欢 迎 阅 ...
- 跟我一起学习VIM - The Life Changing Editor
前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种惊叹的表情,原来编辑器可以这样强大,这算是对我多年来使用VIM的最大鼓舞吧.所以分 ...
- 新手学习 Vim 的五个技巧
多年来,我一直想学 Vim.如今 Vim 是我最喜欢的 Linux 文本编辑器,也是开发者和系统管理者最喜爱的开源工具.我说的学习,指的是真正意义上的学习.想要精通确实很难,所以我只想要达到熟练的水平 ...
- 【转载】跟我一起学习VIM - vim插件
目录 写在前面:Life Changing Editor 什么是VIM 为什么选VIM 为什么选其它 为什么犹豫选择它们 VIM >= SUM(现代编辑器) 如何学习VIM 一秒钟变记事本 VI ...
- vimtutor学习笔记
简介 vimtutor是vim这款知名的文本编辑器的学习工具/指南.语法如下. vimtutor [-g] [language] gvimtutor -g选项和gvimtutor是启动GUI版本的指南 ...
- (转载)跟我一起学习VIM - The Life Changing Editor
原文: http://ju.outofmemory.cn/entry/79671 前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种 ...
- ubuntu中启动VIM,以及学习VIM
启动VIM:首先打开终端,然后输入vi回车,然后输入i或者a,进入. 学习VIM:首先打开终端,然后输入vimtutor回车,然后进入教程学习.
- 跟我一起学习VIM - vim插件合集
2016-06-14 15:04 13333人阅读 评论(0) 收藏 举报 分类: Linux(104) 目录(?)[+] 前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教 ...
随机推荐
- java中byte,byte[]和int之间的转换
1>byte类型转换为,直接隐式转换,适用于要求保持数值不变,例如要求进行数值计算 如 byte b=0x01; int i=b; 2>另一种是要求保持最低字节中各个位不变,3个高字节全部 ...
- springcloud学习(一)之Eureka
前言 微服务原则上是应该有多个服务提供者的实例的,在通常情况下服务提供者的数量和分布往往是动态变化的,这样在传统的单体应用中的那种硬编码服务url进行远程调用的方式就不足取.服务注册中心就是为了解决服 ...
- SSM框架整合模板
SSM框架整合--MAVEN依赖 spring方面(包含了springmvc): spring-webmvc:spring与mvc的整合依赖,主要包括spring的核心包和springmvc需要的包 ...
- java容器-Iterator
1介绍 java中的容器主要是Collection<E>的子类型,即都实现了Iterable<E>接口,即使是Map类型,也有entrySet方法可以获得该Map的所有元素组成 ...
- 如何使用蓝湖设计稿同时适配PC及移动端
如何使用蓝湖设计稿同时适配PC及移动端 项目需求: 一套代码同时适配PC及移动端 方案: pc端采用px布局,移动端采用rem布局,通过媒体查询(media query)切换 坑: 尝试过使用post ...
- 【剑指 Offer】05.替换空格
题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输入:s = "We are happy." 输出:"We%20a ...
- 通过写n本书的积累,我似乎找到了写好技术文章的方法(回复送我写的python股票电子书)
我写的书不算少,写的博文就更多了,但大多数书的销量也就一般,而我写的技术文章里,虽然也有点击过万的,但不少点击量也就只有三位数. 通过不断反思,也通过对比了一些畅销书和顶流文章,我似乎找到了一些原因, ...
- Spring Cloud微服务Sentinel+Apollo限流、熔断实战总结
在Spring Cloud微服务体系中,由于限流熔断组件Hystrix开源版本不在维护,因此国内不少有类似需求的公司已经将眼光转向阿里开源的Sentinel框架.而以下要介绍的正是作者最近两个月的真实 ...
- iconv函数报错 Detected an illegal character in input string
近日使用php代码导出文件为excel,一直乱码.导出修改编码都无效,最后发现,是需要修改php导出代码本身的编码.首先用记事本打开php代码,另存为,选择ANSI格式.然后打开iconv函数这个ph ...
- 【RAC】Oracle 10g RAC相关启停命令,维护命令
Oracle10g RAC关闭及启动步骤 情况1:需要关闭DB(所有实例),OS及Server. a.首先停止Oracle10g环境 $ lsnrctl stop (每个节点上停止监听,也可以用s ...