VIM基础操作方法汇总
学习自小甲鱼的视频,快速入门vim
目录:
1.光标移动
2.进入插入模式
3.进入普通模式
4.进入命令行模式
5.退出
6.光标跳跃
7.快速跳转行号
8.删除
9.利用数字重复操作
10.撤回
11.粘贴
12.拷贝
13.替换
14.修改
15.查看文件信息
16.定位括号
17.缩进
18.搜索命令
1.光标移动:
要按Esc后在普通模式使用,插入模式不能使用光标移动
| k 上 | ||
| h 左 | l 右 | |
| j 下 |
2.进入插入模式:
| I | i | a | A |
| 行首进入插入模式 | 光标前进入 | 光标后进入 | 行末进入 |
| O | 光标所在行上面插入空行再进入插入模式 |
| o | 光标所在行下面插入空行再进入插入模式 |
| s | S |
| 删除所在字符再进入插入模式 | 清除当前行再进入插入模式 |
3.进入普通模式:
- 按 ESC
4.进入命令行模式:
- 在普通模式按 :
5.退出:
- 忽略修改直接退出:在普通模式输入 :q!
- 保存并退出(1):直接输入 ZZ(大写的)
- 保存并退出(2):在普通模式输入 :wq 文件名 (只有第一次要附加文件名)
6.光标跳跃:
在普通模式下:
| 0 | 光标跳跃到行首 |
| ^ | 同上 |
| $ | 跳跃到行尾 |
| b | 到当前单词起始处(中文和特殊符号会有区别) |
| e | 到当前单词结尾处(中文和特殊符号会有区别) |
| w | 到下一个单词的起始处 |
| gg | 到文件的开头 |
| G | 到文件的结尾 |
7.快速跳转行号:
两种方法:
- 在普通模式下: 按 数字 + G ,就会跳转到数字的那行
- 在普通模式下: 按 : + 数字 ,就会跳转到数字的那行
8.删除:
删除单个字符:
- 普通模式:按 x 删除光标当前字符
- 插入模式:按 Backspace 键删除光标前面字符 按 Delete 键删除光标所在处字符 (缺点,只能靠方向键移动光标)
删除多个字符:
| d0 | 删除光标当前位置到行首所有字符(不包括光标) |
| d^ | 同上 |
| d$ | 删除光标当前位置到行尾所有字符(包括光标) |
| db | 删除光标当前位置到单词起始处所有字符(不包括光标) |
| de | 删除光标当前位置到单词结尾处所有字符(包括光标) |
| dw | 删除光标当前位置到下一个单词起始处所有字符(包括光标,不包含下一个单词起始处) |
| dh | 删除光标前边一个字符 |
| dl | 删除光标当前字符 |
| dj | 删除光标所在行和下一行的所有字符 |
| dk | 删除光标所在行和上一行的所有字符 |
| dd | 删除光标所在行所有字符 |
| dgg | 删除光标所在行到文件开头的所有字符 |
| dG | 删除光标所在行到文件末尾的所有字符 |
9.利用数字重复操作
在普通模式下:
| 数字+h/j/k/l | 一次移动多次 |
| 数字+mothon | 重复多个mothon |
| d+数字+mothon | 删除多个mothon范围 |
vim内的删除不是真正的删除,是放在寄存器,放在缓冲区,相当去"剪切"
10.撤回
| u(小写) | 撤回最后一次修改 |
| U(大写) | 撤回对整行修改 |
| Ctrl + r | 恢复撤回内容 |
撤回同样可以结合数字使用
11.粘贴
| p(小写) | 把最后一次删除的内容粘贴在光标之前 |
| P(大写) | 把最后一次删除的内容粘贴在光标之后 |
| 如果拷贝的是整行为单位,p(小写)命令是光标下一行开始粘贴 |
| 如果拷贝的是整行为单位,p(小写)命令是光标后开始粘贴 |
12.拷贝
- 在普通模式用 y 来进行拷贝,格式为 y mothon (可以结合数字来重复)
- y命令和d命令是对应的
13.替换
r 替换模式(单个字符替换):
- 在光标所在位置按 r ,输入新字符(只能换一个字符)
- 可以结合数字来重复(统一替换多个字符)
R替换模式(终极替换模式):
在普通模式下输入 R 进入,再按一下 Esc 停止
注意:此状态下按hjkl进行位移是无效的
s命令替换:
- 普通s命令替换:
在命令行模式按下 :s/要换的的字符串/新的字符串 ,即可把这一行出现的第一个要换的字符串替换 (字符串指单个或多个字符)
- 整行s命令替换:
在命令行模式按下 :s/要换的的字符串/新的字符串/g ,即可把这一行所有出现要换的字符串替换 (字符串指单个或多个字符)
- 整个文件s命令替换:
在命令行模式按下 :%s/要换的的字符串/新的字符串/g ,即可把整个文件所有出现要换的字符串替换 (字符串指单个或多个字符)
- 选择性s命令替换:
在命令行模式按下 :s/要换的的字符串/新的字符串/g(针对一行) 或 :%s/要换的的字符串/新的字符串/g(针对整个文件)
- 行区间的选择性s命令替换:
在命令行模式按下 :起始行数字,结束行数字s/要换的的字符串/新的字符串/g ,即可把起始行到结束行所有出现要换的字符串替换 (字符串指单个或多个字符)
然后每次对于 y/n/a/q/l/^E/^Y 进行选择
| y | 替换 |
| n | 不替换 |
| a | 替换所有 |
| q | 放弃之后的替换 |
| l(是L的小写) | 替换第一个并进入插入模式 |
| ^E | Ctrl+e滚动屏幕(说实话这个我没学会) |
| ^Y | Ctrl+y滚动屏幕(说实话这个我没学会) |
14.修改:
| 修改会进入插入模式 |
| 替换不会进入插入模式 |
执行方式:
c [数字] mothon ([数字]代表可选也可不用,mothon是前面的范围执行操作)
| c0 | 删除光标当前位置到行首所有字符(不包括光标) ,并进入插入模式 |
| c^ | 同上 |
| c$ | 删除光标当前位置到行尾所有字符(包括光标) ,并进入插入模式 |
| cb | 删除光标当前位置到单词起始处所有字符(不包括光标) ,并进入插入模式 |
| ce | 删除光标当前位置到单词结尾处所有字符(包括光标) ,并进入插入模式 |
| cw | 删除光标当前位置到下一个单词起始处所有字符(包括光标,不包含下一个单词起始处) ,并进入插入模式 |
| ch | 删除光标前边一个字符 ,并进入插入模式 |
| cl | 删除光标当前字符 ,并进入插入模式 |
| cj | 删除光标所在行和下一行的所有字符 ,并进入插入模式 |
| ck | 删除光标所在行和上一行的所有字符 ,并进入插入模式 |
| cc | 删除光标所在行所有字符 ,并进入插入模式 |
| cgg | 删除光标所在行到文件开头的所有字符 ,并进入插入模式 |
| cG | 删除光标所在行到文件末尾的所有字符 ,并进入插入模式 |
可见c命令和d命令很像,但是cc和dd,也就是删除当前行是重复两次本身字母这里有区别
修改 = 删除 + 进入插入模式
15.查看文件信息
在普通模式按下 Ctrl + g ,然后看下方
分别是:
| 文件名 | 修改信息(如果是没修改就不会显示) | 一共有几行 | 目前光标大约在总代码的百分之几位置 | 光标在第几行第几列 |
16.定位括号
在普通模式下,让光标移动到一个括号处,按下 % ,光标会跳转到配对括号上
识别范围 (),{},[] 不支持<>
17.缩进
在普通模式使用:
| >> | 缩进 |
| << | 反缩进 |
可以配合数字重复使用
对多行进行缩进:
- 数字 + >>或<< 表示对接下来几行进行缩进
- 先按 v,进入可视模式,移动h/j/k/l会移动选中,然后再按>或<
18.搜索命令
在该代码文件内搜索
/搜索:
在命令行模式按下 / ,然后输入我们要找的字符串,然后回车
注意:
- 是从光标下一个位置开始找到文件结尾,如果文件结尾也没有就会又从文件开头找到光标那,然后结束
- 一直只能找一个
?搜索:
- 和/搜索的不同点是向前搜索,其他都一样
n命令及N命令
由于一次搜索可能搜索出几个单位,所以还有n命令及N命令
- 使用方法,执行完 /命令 或 ?命令 后,直接按 n 或 N 就好了
| n命令 | 顺着光标搜索方向继续查找其他符合条件单位 |
| N命令 | 反着光标搜索方向继续查找其他符合条件单位 |
清空高亮
- 在命令行模式按下 :nohl
特殊搜索情况
- 以下字符单独搜索需要加一个反斜杠 \
* . [ ] ^ & / ? ~ $
执行shell命令
- 列出根目录下所有文件 :!ls /
- 文件另存为 :w + 文件名
- 局部另存为 可视模式选取后 :w +文件名
- 如果另存为的同时要覆盖旧的文件,则 :w! + 文件名
- 合并文件 :r + 文件名 读取这个文件并置入光标的下一行位置
- 同时垂直并排打开多个文件 -o + 文件名1 + 文件名2 + 文件名3 ... 垂直并排
- 同时水平并排打开多个文件 -O + 文件名1 + 文件名2 + 文件名3 ... 水平并排
- 文件切换
Ctrl + w + w 将光标切换到下一个文件
Ctrl + w +上/k/下/j 在垂直并排文件间上下切换
Ctrl + w + 左/h/右/l 在水平并排文件间左右切换
- 关闭全部文件 :qa
- 强制关闭全部文件 :qa!
- 保存全部文件 :wqa
VIM基础操作方法汇总的更多相关文章
- JQuery radio(单选按钮)操作方法汇总
这篇文章主要介绍了JQuery radio(单选按钮)操作方法汇总,本文讲解了获取选中值.设置选中值.根据Value值设置选中.删除Radio.遍历等内容,需要的朋友可以参考下 随着Jquery的 ...
- jquery基础知识汇总
jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...
- vim基础命令
2015-06-04 by komilevim基础命令 打开一个文件 vim index.php 几种模式说明Normal Mode也就是最一般的普通模式,默认进入vim之后,处于这种模式.Inser ...
- vim常用命令汇总
vim常用命令汇总: http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 定位 本行第一个字符 ctrl+$ ...
- Oracle知识梳理(三)操作篇:SQL基础操作汇总
Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式: CREATE TABLE table_name ( col_ ...
- SQL基础操作汇总
SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式: CREATE TABLE table_name ( col_name datatype, -- ...
- day 7 - 1 集合、copy及基础数据类型汇总
集合:{},可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复.(不重要)集合的书写 set1 = set({1,2,3}) #set2 = {1,2,3,[2,3],{'name':' ...
- [svc][op]vim常用命令汇总
vim常用命令汇总: 定位 本行第一个字符 ctrl+$ 本行最后一个字符 0gg 文章首行 ctrl+G 文章行尾 u 撤销(Undo) 删除 D 从当前位置删除到行尾 ("d$" ...
- 沉淀,再出发:Java基础知识汇总
沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...
随机推荐
- P3398 仓鼠找sugar 又一次血的教训
做什么题都要注意数组的大小,不要犯下数组越界的错误(温馨(狠心)提示): 做了好多遍就是不对,原来是[20]的数组,在for下循环1——>20,神奇爆零: 链接:https://www.luog ...
- bzoj3995
线段树 额 计蒜客竟然把这个出成noip模拟题... 这个东西很像1018,只不过维护的东西不太一样 然后我参考了fuxey大神的代码,盗一波图 具体有这五种情况,合并请看代码,自己写了一个结果wa了 ...
- thinkphp不能够将ueditor中的html文本显示
因为这个问题花费了我好长时间,非常的急躁.fuck!! 这次我首先在富文本框中输入了一些文本,这些文本是带有样式的,比如是代码.然后存入数据库,但是当我再一次将它取出来打算放入富文本框中的时候,马丹, ...
- asp.net 中的事务
ASP.NET开发过程中的事务处理 http://www.cnblogs.com/georgeHeaven/p/3766609.html
- ASP.NET验证控件CustomValidator客户端验证DropDownList、TextBox
<asp:DropDownList ID="ddlTown" runat="server"> <asp:ListItem Value=&quo ...
- jQuery笔记之Easing Plugin
jQuery easing 使用方法首先,项目中如果需要使用特殊的动画效果,则需要在引入jQuery之后引入jquery.easing.1.3.js<script type="text ...
- python常用的装饰器
一.为程序添加时间类的装饰器二.验证用户是否等陆 #.为函数添加统计时间的装饰器: import time def timeer(func): def inner(): starttime=time. ...
- [POI2012]Vouchers
Description 考虑正整数集合,现在有n组人依次来取数,假设第i组来了x人,他们每个取的数一定是x的倍数,并且是还剩下的最小的x个. 正整数中有m个数被标成了幸运数,问有哪些人取到了幸运数. ...
- bzoj2333[SCOI2011]棘手的操作 洛谷P3273 [SCOI2011]棘手的操作
2333? 先记一下吧,这题现在全部都是照着题解做的,因为怎么改都改不出来,只好对着题解改,以后还要再做过 以后再也不用指针了!太恶心了!空指针可不止直接特判那么简单啊,竟然还要因为空指针写奇怪的分类 ...
- Oracle10g的imp命令
Oracle10g使用imp命令导出数据为dmp:imp system/password@orcl file=rd_online_20181102.dmp fromuser=user1 touser= ...