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这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...
随机推荐
- String 对象
1 你使用位置(索引)可以访问字符串中任何的字符: var str="this is a demo"; alert(str[3])// s 字符串的索引从零开始, 所以字符串 ...
- 关于CentOS 7安装jdk1.8
安装之前先检查一下系统有没有自带open-jdk 命令: rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj 如果没有输入信息表示没有安装. ...
- ubuntu12.04向左边栏添加图标(引用)
转自:http://forum.ubuntu.com.cn/viewtopic.php?f=86&t=317442 打开想添加的软件,图标会出现在侧边栏,右击之,点Keep In Launch ...
- Hibernate对集合属性的操作---基础学习
1:Set集合属性操作 1).Hibernate3以后支持大部分重要的JDK集合接口映射,Set集合接口的配置: >在xxx.hbm.xml文件中使用<set>标签 2).< ...
- Linux 入门学习教材
我大约从两年前开始接触Linux,在那之前工作中用的都是MCU,arm-cortex M系列的. 从单片机转向Linux学习,经历了很多的困难,刚开始都不知道怎么去编译, 网上也没有找到基础的教程,后 ...
- 动态生成li标签,并设置点击事件
今天要解释的是如下界面 主要实现了: 1.模拟后台的json数据,动态生成li标签 2.导航栏的下划线 3.给li标签右边设置图片 4.动态生成的li标签,设置选中的li的点 ...
- C# 判断是否移动设备
/// <summary> /// 判断是否移动设备. /// </summary> /// <returns></returns> public st ...
- Spring注解驱动开发之web
前言:现今SpringBoot.SpringCloud技术非常火热,作为Spring之上的框架,他们大量使用到了Spring的一些底层注解.原理,比如@Conditional.@Import.@Ena ...
- LN : leetcode 712 Minimum ASCII Delete Sum for Two Strings
lc 712 Minimum ASCII Delete Sum for Two Strings 712 Minimum ASCII Delete Sum for Two Strings Given t ...
- 微信官方UI库—WeUI
WeUI 为微信 Web 服务量身设计 概述 WeUI是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一.包含button.cell ...