跟着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的更多相关文章

  1. 跟我一起学习VIM

    跟我一起学习VIM - The Life Changing Editor   前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种惊叹 ...

  2. VIMTUTOR《VIM教程》

    =============================================================================== =      欢     迎     阅 ...

  3. 跟我一起学习VIM - The Life Changing Editor

    前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种惊叹的表情,原来编辑器可以这样强大,这算是对我多年来使用VIM的最大鼓舞吧.所以分 ...

  4. 新手学习 Vim 的五个技巧

    多年来,我一直想学 Vim.如今 Vim 是我最喜欢的 Linux 文本编辑器,也是开发者和系统管理者最喜爱的开源工具.我说的学习,指的是真正意义上的学习.想要精通确实很难,所以我只想要达到熟练的水平 ...

  5. 【转载】跟我一起学习VIM - vim插件

    目录 写在前面:Life Changing Editor 什么是VIM 为什么选VIM 为什么选其它 为什么犹豫选择它们 VIM >= SUM(现代编辑器) 如何学习VIM 一秒钟变记事本 VI ...

  6. vimtutor学习笔记

    简介 vimtutor是vim这款知名的文本编辑器的学习工具/指南.语法如下. vimtutor [-g] [language] gvimtutor -g选项和gvimtutor是启动GUI版本的指南 ...

  7. (转载)跟我一起学习VIM - The Life Changing Editor

    原文: http://ju.outofmemory.cn/entry/79671 前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种 ...

  8. ubuntu中启动VIM,以及学习VIM

    启动VIM:首先打开终端,然后输入vi回车,然后输入i或者a,进入. 学习VIM:首先打开终端,然后输入vimtutor回车,然后进入教程学习.

  9. 跟我一起学习VIM - vim插件合集

    2016-06-14 15:04 13333人阅读 评论(0) 收藏 举报 分类: Linux(104)  目录(?)[+]  前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教 ...

随机推荐

  1. win8.1下jdk的安装和环境变量的配置 eclipse的安装和汉化

    1.首先下载jdk安装包,安装的时候会有两个文件安装,一个是jdk一个是jre建议两个文件不要安装在一个目录下 2.安装jdk后面就是配置环境变量,path和classpath,path要在用户变量中 ...

  2. Linux设备上没有空间之复盘

    某天前端在调接口的时候,发现登录页面得验证码接口居然没有响应数据,显示的是500响应码.于是我一路排查,首先排查验证码接口所属的微服务是否正常,通过lsof -i:服务端口进行排查,发现该微服务进程存 ...

  3. Command3

    压缩和解压 gzip gunzip .gz 指定文件必须带后缀 gzip file filename.gz zip unzip .zip unzip filename.zip directory zi ...

  4. #2020征文-开发板# 用鸿蒙开发AI应用(二)系统篇

    目录: 前言 安装虚拟机 安装 Ubuntu 设置共享文件夹 前言上回说到,我们在一块 HarmonyOS HiSpark AI Camera 开发板,并将其硬件做了一下解读和组装.要在其上编译鸿蒙系 ...

  5. 开源:AspNetCore 应用程序热更新升级工具(全网第一份公开的解决方案)

    1:下载.开源.使用教程 下载地址:Github 下载 .其它下载 开源地址:https://github.com/cyq1162/AspNetCoreUpdater 使用教程: 解压AspNetCo ...

  6. Redis Cluster 集群节点维护 (三)

    Redis Cluster 集群节点维护: 集群运行很久之后,难免由于硬件故障,网络规划,业务增长,等原因对已有集群进行相应的调整,比如增加redis nodes 节点,减少节点,节点迁移,更换服务器 ...

  7. paramunittest参数化测试基础

    samples: import paramunittestimport unittest@paramunittest.parametrized( (10,20), (30,40), # (100,20 ...

  8. 洛谷P1972 [SDOI2009]HH的项链(树状数组)

    题目链接: https://www.luogu.org/problemnew/show/P1972 题目描述: HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后 ...

  9. LeetCode653. 两数之和 IV - 输入 BST

    题目 直接暴力 1 class Solution { 2 public: 3 vector<int>ans; 4 bool findTarget(TreeNode* root, int k ...

  10. CALL TRANSACTION 使用说明

    以调用事务VA03为例: 在程序中添加如下代码就可以实现  SET PARAMETER ID 'AUN' FIELD var. CALL TRANSACTION 'VA03' AND SKIP FIR ...