Vim command handbook
/* 本篇文章已经默认你通过了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的更多相关文章
- 解決 centos中-bash: vim: command not found
用centos 的主机的時候, 用 vim 时出现 -bash: vim: command not found. 只能使用 vi. 那么如何安裝 vim 呢? 输入 rpm -qa|grep vim ...
- CentOS 7 上安装vim 解決 centos -bash: vim: command not found
用CentOS上使用vim竟然用不了,报错没有该命令 centos -bash: vim: command not found 那么如何安裝 vim 呢? ---------------------- ...
- 【ERROR】bash: vim: command not found的解决办法
今天在学习鸟哥的菜的时候,发现自己linux不可以启用vim命令,错误为:bash: vim: command not found. 机器环境:VMWare8+RED HAT Enterprise5 ...
- centOS出现 -bash: vim: command not found
问题描述 用centos 的主机的時候, 用 vim 时出现 -bash: vim: command not found. 只能使用 vi. 那么如何安裝 vim 呢? 解决步骤 1.查看是否安装 输 ...
- 解決 centos -bash: vim: command not found
i. 那么如何安裝 vim 呢?输入rpm -qa|grep vim 命令, 如果 vim 已经正确安裝,会返回下面的三行代码: root@server1 [~]# rpm -qa|grep vim ...
- [Linux] CentOS 显示 -bash: vim: command not found
转载自:https://www.cnblogs.com/wenqiangwu/p/3288349.html i. 那么如何安裝 vim 呢?输入rpm -qa|grep vim 命令, 如果 vim ...
- Linux安装vim,解决vim: command not found
1,输入rpm -qa|grep vim 命令, 如果 vim 已经正确安裝,会返回下面的三行代码: root@server1 [~]# rpm -qa|grep vim vim-enhanced-7 ...
- 如何在云服务器上安装vim(bash: vim :command not found)
1.apt-get update 2.apt-get install vim vim文件即可成功!
- vim command
问题:对多行缩进 简述:向左缩是<,向右缩是> 详述:在命令状态,按v进入visual状态,选中多行,再按>,相当于一个TAB键:再选中多行,按<试试 ------------ ...
随机推荐
- 浏览器上传文件,存到oracle数据库示例。
这里只贴了一张图, 旨在说明,思路: 将文件转换为字节,存入数据库的类型为 Blob字段. 当下载的时候,从数据库读出来通过流写回浏览器即可 文件的下载. 从数据库读出来通过流写回浏览器即可
- 获取第三方软件的包名、入口Activity的类名
要启动指定的第三方软件,需要知道第三方软件的包名.类名. 获取第三方软件包名.类名的两种方法: 1.使用aapt aapt是sdk自带一个工具,在 Sdk\builds-tools 目录下 .如果没有 ...
- RabbitMq+Haproxy负载均衡
HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保 ...
- [Java 8] (9) Lambda表达式对递归的优化(下) - 使用备忘录模式(Memoization Pattern) .
使用备忘录模式(Memoization Pattern)提高性能 这个模式说白了,就是将需要进行大量计算的结果缓存起来,然后在下次需要的时候直接取得就好了.因此,底层只需要使用一个Map就够了. 但是 ...
- Charles Petzold 编程界大师,世界顶级技术作家 《CODE》值得阅读
<CODE>The Hidden Language of Computer Hardware and Software 从书内容的第一页开始就惊叹于作者的耐心和责任心 整本书以两个隔街对窗 ...
- diff - 找出两个文件的不同点
总览 diff [选项] 源文件 目标文件 描述 在最简单的情况是, diff 比较两个文件的内容 (源文件 和 目标文件). 文件名可以是 - 由标准输入设备读入的文本. 作为特别的情况是, dif ...
- 关于在Qt里让程序休眠一段时间的方法总结
出处:http://hanzhaoxin.cnblogs.com/ Qt 为何没有提供 Sleep 论坛上不时见到有人问: Qt 为什么没有提供跨平台的 sleep 函数? 使用平台相关的 Sleep ...
- springboot测试的时候插入数据: error performing isolated work; SQL [n/a]; nested exception is org.hibernate...
上网查了一下,说的是自增惹得麻烦!!在@GeneratedValue后面加上框框中的内容就OK拉!
- Xgboost集成算法
集成算法思想: Xgboost基本原理: Xboost中是一个树(函数)接着一个树(函数)往里加,每加一个树都希望整体表达效果更好一些,即:目标函数逐步减小. 每加入一个函数,使目标函数逐渐减小,整体 ...
- dubbo负载均衡策略和集群容错策略
dubbo负载均衡策略 random loadbalance 默认情况下,dubbo是random load balance随机调用实现负载均衡,可以对provider不同实例设置不同的权重,会按照权 ...