/* 本篇文章已经默认你通过了vimtuor训练并能熟练使用大部分命令.此篇文章主要是对于tutor命令的总结和梳理.适合边学习边记忆 tutor那个完全是在学习中记忆 符合认知规律但是练习有限.所以这时候选择记忆起来.用到时顺便练习看起来是个更效率的做法 */

VIM的四种模式
Normal 普通模式,也有叫一般模式.命令模式的 控制光标的艺术
Insert 插入模式,也有叫编辑模式的
command line 命令行模式,有叫末行模式的
Visual 可视模式 这个应该没争议

Insert 插入模式
i 光标前插入
a 光标后插入
A 行尾插入
I 行首插入
o 在下一行插入新行
O 在上一行插入新行 (大写)
s 删除当前光标并进入插入模式
S =cc 删除光标所在行所有内容并进入插入模式 (大写)
cc 删除光标所在行所有内容并进入插入模式
C = c$ 删除光标后所有内容并进入插入模式
c0 删除光标前所有内容并进入插入模式
c3c = 3cc 删除3行并进入插入模式
c2b = d2b+i 删除光标前2个字符并进入插入模式
c2w = d2w+i 删除光标后2个字符并进入插入模式

Visual 可视模式 Visual block 可视块
v 光标选择
V 行选择 (大写)
Ctrl+v 块选择
d 删除选择内容
y 复制选择内容
: '<,'> w 文件名/绝对路径

command line 命令行模式,有叫末行模式的
:w 保存
:w! 强制保存
:q 退出
:q! 强制退出
:wq 保存退出
:wq! 强制保存退出
:ZZ 如果有改动就保存退出.如果没改动不保存退出.
:e! 恢复上一次存储的内容,撤销所有改动.
:w 文件名/绝对路径 将文件另存为
:r 文件名/绝对路径 读取文件内容并将其粘贴到光标所在行后面
:n1,n2 w 文件名/绝对路径 将n1,n2之间的内容另存为
:!command linux下可以执行shell命令windows下可以执行cmd命令
按任意键继续,推荐按回车
:r !command 读取命令的输出 插入到当前文本中
字符串替换
s/old/new 替换一行的第一个字符串 old为new
s/old/new/g 替换全行的字符串old为new
%s/old/new/g 替换所有行的字符串 old为new
%s/old/new/gc 替换所有行的字符串 old为new 并弹出每个字符串替换的确认信息
我猜这个g是 globe c是confirm
:set all vim 查看Vim目前正在使用的选项

Normal 普通模式
/String 向下搜索字符串 n下一个 N上一个
?String 向上搜索字符串
搜索字符串时开启一次忽略大小写
?string\c
/string\c
-----------------------------------------------------------------------
operator - 操作符,代表要做的事情,比如 d 代表删除
numbe r- 可以附加的数字,代表动作重复的次数
motion - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word), $ 代表行末等等。
------------------------------------------------------------------------
number motion
数字 动作

operator number motion
命令 数字 动作

------------------------------------------------------------------------
$光标跳到行尾
0光标跳到行首
H 光标移动到屏幕最上方的一行
M 光标移动到屏幕中间的一行
L 光标移动到屏幕最下方的一行
dd 删除一行
x 删除光标后一个字符
X 删除光标前一个字符
u执行一次撤销命令
U恢复本行的初始状态
Ctrl+R 撤销 '撤销命令'
J 合并行 删除掉两行之间的空白
yy 复制一行
p 在光标下一行粘贴
P 在光标上一行粘贴
r 替换单个错误字符
R 连续替换多个字符
~ 切换当前字符大小写
w移动到单词的开头
e移动到单词的结尾
Ctrl+G 显示光标所在行和状态信息
gg 跳到第一行
G 跳到最后一行
80gg 跳到第80行 或者80 G
Enter 将光标移动到下一行的第一行
z Enter 滚动屏幕并将当前行移动到屏幕第一行
. (点) 重复上一个动作
----------------------------------------------------------------
number motion
数字 动作
------------------------------------------------------------------------
2x删除光标后2个字符
1j 光标向下移动1行
1k 光标向上移动1行
1h 光标向左移动1行
1l 光标向右移动1行
3p 粘贴3次p的内容
cw 删除当前光标到单词末尾并自动进入插入模式 (修改一个词)
ce=cw
d$ 删除光标后内容,但不会进入插入模式
d0 删除光标前内容,但不会进入插入模式
y$ 复制光标后内容
y0 复制光标前内容
dw 删除一个单词包括单词后面空格
de 删除一个单词不包括后面空格
2dd 删除4行
2yy 复制2行
2w 向右移动到2个单词的开头
2e 向右移动到2个单词的结尾
------------------------------------------------------------------------
operator number motion
命令 数字 动作
------------------------------------------------------------------------
c2e 删除2个单词后进入插入模式
c10j 向下删除10行并进入插入模式
d2w 删除两个单词
y2w 复制两个单词
y3y = 3yy 复制3行
d4d = 4dd 删除4行
d1gg = d1G 删除从光标所在行向上到1行之间的所有内容(包括光标所在行和第1行)y1gg = y1G 复制从光标所在行向上到1行之间的所有内容(包括光标所在行和第1行)
dG 删除从光标所在行向下的所有内容(包括光标所在行)
yG 复制从光标所在行向下的所有内容(包括光标所在行)

---------------------------------------------------------------
Ctrl 组合键
----------------------------------------------------------------
CtrL O 返回刚才光标所在位置 可重复按
CtrL I 返回ctrl O上一个位置
CtrL F 向下移动一页
CtrL D 向下移动半页
CtrL B 向上移动一页
CtrL U 向上移动半页

还有其他命令可以自然的组合起来.例如ea 在一个单词后插入.更多命令组合需要自己感悟并努力练习形成神经反射.

vim环境参数设置: 编辑 vimrc 文件,具体命令取决于您所使用的操作系统
:edit ~/.vimrc 这是 Linux系统所使用的命令
:edit $VIM/_vimrc 这是 Windows 系统所使用的命令

设置行号
开启 set nu
关闭 set nonu

查找字符串忽略大小写
开启 set ic
关闭 set noic

字符串高亮
hlsearch 开启
nohlsearch 关闭

一边搜索一边显示搜索的内容
set incsearch 开启
set noincsearch 关闭

'ic' 'ignorecase' 查找时忽略字母大小写
'is' 'incsearch' 查找短语时显示部分匹配
'hls' 'hlsearch' 高亮显示所有的匹配短语
选项名可以用完整版本,也可以用缩略版本。

设置自动缩进
:set autoindent 开启
:set noautoindent 关闭

设置是否显示insert等模式提示
:set showmode 开启
:set no showmode 关闭

设置语法高亮
:syntax on  开启
:syntax off 关闭

Vim command handbook的更多相关文章

  1. 解決 centos中-bash: vim: command not found

    用centos 的主机的時候, 用 vim 时出现 -bash: vim: command not found. 只能使用 vi. 那么如何安裝 vim 呢? 输入 rpm -qa|grep vim ...

  2. CentOS 7 上安装vim 解決 centos -bash: vim: command not found

    用CentOS上使用vim竟然用不了,报错没有该命令 centos -bash: vim: command not found 那么如何安裝 vim 呢? ---------------------- ...

  3. 【ERROR】bash: vim: command not found的解决办法

    今天在学习鸟哥的菜的时候,发现自己linux不可以启用vim命令,错误为:bash: vim: command not found. 机器环境:VMWare8+RED HAT Enterprise5 ...

  4. centOS出现 -bash: vim: command not found

    问题描述 用centos 的主机的時候, 用 vim 时出现 -bash: vim: command not found. 只能使用 vi. 那么如何安裝 vim 呢? 解决步骤 1.查看是否安装 输 ...

  5. 解決 centos -bash: vim: command not found

    i. 那么如何安裝 vim 呢?输入rpm -qa|grep vim 命令, 如果 vim 已经正确安裝,会返回下面的三行代码: root@server1 [~]# rpm -qa|grep vim ...

  6. [Linux] CentOS 显示 -bash: vim: command not found

    转载自:https://www.cnblogs.com/wenqiangwu/p/3288349.html i. 那么如何安裝 vim 呢?输入rpm -qa|grep vim 命令, 如果 vim ...

  7. Linux安装vim,解决vim: command not found

    1,输入rpm -qa|grep vim 命令, 如果 vim 已经正确安裝,会返回下面的三行代码: root@server1 [~]# rpm -qa|grep vim vim-enhanced-7 ...

  8. 如何在云服务器上安装vim(bash: vim :command not found)

    1.apt-get update 2.apt-get install vim vim文件即可成功!

  9. vim command

    问题:对多行缩进 简述:向左缩是<,向右缩是> 详述:在命令状态,按v进入visual状态,选中多行,再按>,相当于一个TAB键:再选中多行,按<试试 ------------ ...

随机推荐

  1. zoj3772Calculate the Function(矩阵+线段树)

    链接 表达式类似于斐波那契 但是多了一个变量 不能用快速幂来解 不过可以用线段树进行维护 对于每一个点够一个2*2的矩阵 1 a[i] 1  0   这个矩阵应该不陌生 类似于构造斐波那契的那个数列 ...

  2. P1847 轰炸II

    题目背景 本题为轰炸数据加强版 题目描述 一个城市遭到了M次轰炸,每次都炸了一个每条边都与边界平行的矩形 在轰炸后,有N个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几 ...

  3. C#将excel数据按照需求导入Sql server遇到的问题(参考而已)

    1.千万不要使用永中表格(WPS没用过,这里只是个人观点,不是说永中表格的) 我在公司得到的任务是将excel数据按照需求导入数据库总共主表大概3张,所以有点复杂(列子用的简单表,公司东西还是不要放出 ...

  4. logback日志异步打印

    最近碰到一个问题:客户的服务器程序偶尔出现请求响应过慢的情况,通过查看日志发现RSA验证签名的代码执行超过20秒,而正常情况下只需要16毫秒. RSA证书是服务器启动就加载好的,不存在读文件慢的问题. ...

  5. P3368 【模板】树状数组 2 单点查询与区间修改

    题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出某一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别表示该数列数字的个数和操作的总个数. ...

  6. 【学习笔记】OSG 基本几何图元

    例:geom->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::QUADS,0,4)); 来指定要利用这些数据生成一个怎么样的形状. ...

  7. oracle适配器连接不上解决方案

    Oracle适配器连接不上解决方案 作者:Vashon oracle 的Developer连接不上报错:listener does not currently know of SID given in ...

  8. codevs 1979 第K个数

     时间限制: 1 s  空间限制: 1000 KB  题目等级 : 黄金 Gold 题目描述 Description 给定一个长度为N(0<n<=10000)的序列,保证每一个序列中的数字 ...

  9. JVM_Bind问题的解决方案

    心得:删除javaw.exe进程即可. 以下是网络的解决方案: JVM_Bind问题出现通常有两种情况. 一种是原来的javaw.exe没有结束掉而又新创建了一个javaw.exe进程.这本无可厚非, ...

  10. Android(java)学习笔记159:多线程断点下载的原理(Android实现)

    之前在Android(java)学习笔记215中,我们从JavaSE的角度去实现了多线程断点下载,下面从Android角度实现这个断点下载: 1. 新建一个Android工程: (1)其中我们先实现布 ...