一 写在开头
1.1 本文内容
本文内容为vim快速入门——vimtutor。

二 第一讲
2.1 移动光标(命令模式下)
上 - k
下 - j
左 - h
右 - l

2.2 进入和退出vim
进入vim - vim
退出并丢弃对文件的所有更改 - q!

2.3 删除
删除光标所在的字符 - x(小写)

2.4 插入模式
从命令模式进入插入模式 - i

2.5 添加文本
将光标移至所在行末尾字符的后一个位置并进入插入模式 - A

2.6 编辑文本
打开文件用于编辑 - vim filename
保存文件更改并退出 - wq

三 第二讲
3.1 从当前光标处删除至一个单词的末尾 - dw

3.2 从当前光标处删除至行末 - d$

3.3 命令和对象
许多改变文本的命令都由一个操作符和一个动作构成。
使用删除操作符 d 的删除命令的格式如下:

d motion

其中:
d - 删除操作符。
motion - 操作符的操作对象(在下面列出)。

一个简短的动作列表:
w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。
e - 从当前光标当前位置直到单词末尾,包括最后一个字符。
$ - 从当前光标当前位置直到当前行末。

因此输入 de 会从当前光标位置删除到单词末尾。

3.4 在动作前输入数字n会使命令重复执行n次
使光标向前移动两个单词 - 2w
使光标向前移动到第三个单词的末尾 - 3e
输入0(数字0)移动光标到行首 - 0

3.5 使用操作符时输入数字n使命令重复执行n次
d number(数字) motion
比如输入d2w以删除两个相邻的单词

3.6 删除当前光标所在的一整行 - dd

3.7 撤销修改
撤销最后执行的命令 - u(小写)
撤销对整行的修改 - U(大写)

四 第三讲
4.1 置入命令p
删除光标当前所在行并将该行保存至vim的寄存器中 - dd
将最后一次删除的内容置入光标之后的位置 - p

4.2 替换光标所在位置的字符 - 输入r和一个字符(输入的字符用于替换原字符)

4.3 更改文本直到一个单词的末尾 - ce

4.4 使用c命令更改更多
更改类操作符的工作方式跟删除类是一致的。操作格式是:
c [number] motion
动作参数(motion)也是一样的,比如 w 代表单词,$代表行末等等。

五 第四讲
5.1 定位及文件状态
显示当前编辑文件中当前光标所在行位置及文件状态信息 - ctrl + g(按住ctrl不变然后按g)
使光标直接跳转到文件最后一行 - G
使光标直接跳转到文件第一行 - gg
使光标直接跳转到文件制定行 - nG(n为行号)

5.2 搜索类命令
在当前文件中查找字符串 - /hello(hello为你要搜索的字符串)
要查找同上一次的字符串 - n
要向相反的方向查找上一次的字符串 - N
要想逆向查找字符 - ?hello(hello为你要搜索的字符串,即将/换成?)

5.3 查找配对的括号(包括)、]、}) - %(百分号)

5.4 替换命令
:s/thee/three - 该命令将会将光标所在行的第一个thee替换为three
:s/thee/three/g - 该命令将会将光标所在行的所有匹配的thee替换为three
:#,#s/thee/three/g - 该命令将会将行#(第一个#)和行#(第二个#)中所有匹配的thee替换为three
:%s/thee/three/g - 该命令会对整个文件中所有匹配的thee替换为three
:%s/thee/three/gc - 该命令会找到整个文件中所有匹配的thee,并对每个找到的thee提示是否进行替换为three的操作

六 第五讲
6.1 在vim中执行外部命令 - :!ls(ls为命令名)

6.2 将对文件的改动保存到文件中 - :w filename

6.3 选择性保存命令v
第一步:按v进入可视模式,选择要复制的内容
第二部:按:,屏幕底部出现:'<,'>,此时输入w filename即可将选中的内容复制到文件filename中去

6.4 向当前文件中插入另外的文件内容 - :r filename

七 第六讲
7.1 打开类命令
在光标当前行所在的下一行打开新一行并进入插入模式 - o(小写o)
在光标当前行所在的上一行打开新一行并进入插入模式 - O(大写O)

7.2
在光标之后插入文本 - a(小写a)
在光标所在行的行末尾插入文本 - A(大写A)

7.3 输入R可以连续替换多个字符

7.4 使用操作符y来复制文本,使用p来粘贴文本
注意:你还可以把y当做操作符使用,比如使用yw来复制一个单词

7.5 设置类命令的选项
:set ic - 搜索字符串时忽略大小写
:set noic - 禁用忽略大小写
:set hls - 高亮搜索结果(或者使用:set hlsearch)

八 第七讲

Vim使用技巧:vimtutor的更多相关文章

  1. Vim使用技巧汇总

    一 写在开头 1.1 本文内容 Vim使用技巧与学习资源汇总. 二 Vim学习资源 1. Vimtutor 2. Vim中文帮助(http://vimcdoc.sourceforge.net/doc/ ...

  2. vim 使用技巧记录

    vim 使用技巧记录 1.批量注释与取消注释 命令格式:起始行号,结束行号s#^#//#g 例如: 注释代码3到15行,"//"可以是其他的"" :3,15s# ...

  3. Vim 常用技巧:

    Vim 常用技巧: 将回车由默认的8个空格改为4个空格: 命令:set sw=4 修改tab为4空格: 命令:set ts=4 设置每一级的缩进长度: 命令:set shiftwidth=4 设置文件 ...

  4. 最好的vim教程莫过于vimtutor

    最好的vim教程莫过于vimtutor 直接运行vimtutor即可

  5. ###《VIM实用技巧》

    ###<VIM实用技巧> #@author: gr #@date: 2015-11-20 #@email: forgerui@gmail.com <VIM实用技巧>阅读笔记. ...

  6. 无插件Vim编程技巧

    无插件Vim编程技巧 http://bbs.byr.cn/#!article/buptAUTA/59钻风 2014-03-24 09:43:46 发表于:vim  相信大家看过<简明Vim教程& ...

  7. vim实用技巧总结

    1. 单个文件内实用mark来帮助跳转以及一些宏操作.(注意:mark不能用于多文件之间的跳转)mch 设置宏,保存到ch标记(不是ch寄存器)'ch 跳转到标记的行首`ch 跳转到标记的字符处另:为 ...

  8. 无插件VIM编程技巧(网摘)

    无插件VIM编程技巧 原文出处:[陈皓 coolshell] 相信大家看过<简明Vim教程>也玩了<Vim大冒险>的游戏了,相信大家对Vim都有一个好的入门了.我在这里把我日常 ...

  9. vim常用技巧

    # vim常用技巧 ## 行操作------------------------------ 行首 0- 行尾 $- 第一个非空字符 ^ ## 列编辑模式----------------------- ...

随机推荐

  1. qt 打包发布 获取dll

    发布前,获取所有qt dll包命令 生成的程序运行正常之后,找到项目的生成目录,比如 项目源码路径: C:\QtPros\hellomw\它的项目生成目录是C:\QtPros\build-hellom ...

  2. 5.5Python数据处理篇之Sympy系列(五)---解方程

    目录 目录 前言 (一)求解多元一次方程-solve() 1.说明: 2.源代码: 3.输出: (二)解线性方程组-linsolve() 1.说明: 2.源代码: 3.输出: (三)解非线性方程组-n ...

  3. ThinkPHP中使用聚合查询去重求和

    我使用的是TP5.1 首先去model类里面设置failed条件: 想要的效果: 数据库展示: 代码: eturn self::alias('gr') ->join('gs_staff gs', ...

  4. 研究好vif 和vshow

    另外从源头上处理的???,怎么自己排查出错误??必须 ??https://www.jb51.net/article/124116.htm

  5. 位(Bit)与字节(Byte)

    字 word 字节 byte 位 bit 字长是指字的长度 1字=2字节(1 word = 2 byte) 1字节=8位(1 byte = 8bit) 一个字的字长为16 一个字节的字长是8 bps ...

  6. CentOS 6.5 minimal 安装配置VMware tools

    1.登录到系统,切换到root账户 2.配置网络 minimal版本默认不启动网络,所以要自己配置. 配置过程很简单,编辑配置文件 vi /etc/sysconfig/network-script/i ...

  7. python3 time模块

    import time '''查看系统时间拿到的是一个数字(时间戳)从1970-01-01 00:00:00开始计算,以秒为单位'''print(time.time()) 执行结果:155650817 ...

  8. 多线程学习笔记-深入理解ThreadPoolExecutor

    java多线程中,线程池的最上层接口是Executor,ExecutorService实现了Executor,是真正的管理线程池的接口,ThreadPoolExecutor间接继承了ExecutorS ...

  9. ubuntu安装docker-ce

    Docker Community Edition (CE)/Docker社区版非常适合希望开始使用Docker并尝试使用基于容器的应用程序的开发人员和小型团队.Docker CE有2个版本:stabl ...

  10. __init__和__new__的区别

    根据官方文档:   __init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值. __new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法.  也 ...