学习自小甲鱼的视频,快速入门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.光标跳跃:

在普通模式下:

mothon(操作范围,后面常用到mothon)
0 光标跳跃到行首
^ 同上
$ 跳跃到行尾
b 到当前单词起始处(中文和特殊符号会有区别)
e 到当前单词结尾处(中文和特殊符号会有区别)
w 到下一个单词的起始处
gg 到文件的开头
G 到文件的结尾

7.快速跳转行号:

两种方法:

  • 在普通模式下: 按 数字 + G ,就会跳转到数字的那行
  • 在普通模式下: 按 : + 数字 ,就会跳转到数字的那行

8.删除:

删除单个字符:

  • 普通模式:按 x 删除光标当前字符
  • 插入模式:按 Backspace 键删除光标前面字符  按 Delete 键删除光标所在处字符 (缺点,只能靠方向键移动光标)

删除多个字符:

d命令
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是前面的范围执行操作)

c命令
c0 删除光标当前位置到行首所有字符(不包括光标)  ,并进入插入模式
c^ 同上
c$ 删除光标当前位置到行尾所有字符(包括光标)  ,并进入插入模式
cb 删除光标当前位置到单词起始处所有字符(不包括光标)  ,并进入插入模式
ce 删除光标当前位置到单词结尾处所有字符(包括光标)  ,并进入插入模式
cw 删除光标当前位置到下一个单词起始处所有字符(包括光标,不包含下一个单词起始处)  ,并进入插入模式
ch 删除光标前边一个字符  ,并进入插入模式
cl 删除光标当前字符  ,并进入插入模式
cj 删除光标所在行和下一行的所有字符  ,并进入插入模式
ck 删除光标所在行和上一行的所有字符  ,并进入插入模式
cc 删除光标所在行所有字符  ,并进入插入模式
cgg 删除光标所在行到文件开头的所有字符  ,并进入插入模式
cG 删除光标所在行到文件末尾的所有字符  ,并进入插入模式

可见c命令和d命令很像,但是ccdd,也就是删除当前行是重复两次本身字母这里有区别

修改 = 删除 + 进入插入模式

15.查看文件信息

在普通模式按下 Ctrl + g ,然后看下方

分别是:

文件名 修改信息(如果是没修改就不会显示) 一共有几行 目前光标大约在总代码的百分之几位置 光标在第几行第几列

16.定位括号

在普通模式下,让光标移动到一个括号处,按下 % ,光标会跳转到配对括号上

识别范围 (),{},[]     不支持<>

17.缩进

在普通模式使用:

>> 缩进
<< 反缩进

可以配合数字重复使用

对多行进行缩进:

  • 数字 + >>或<< 表示对接下来几行进行缩进
  • 先按 v,进入可视模式,移动h/j/k/l会移动选中,然后再按>或<

18.搜索命令

在该代码文件内搜索

/搜索:

在命令行模式按下 / ,然后输入我们要找的字符串,然后回车

注意:

  • 是从光标下一个位置开始找到文件结尾,如果文件结尾也没有就会又从文件开头找到光标那,然后结束
  • 一直只能找一个

?搜索:

  • 和/搜索的不同点是向前搜索,其他都一样

n命令及N命令

  由于一次搜索可能搜索出几个单位,所以还有n命令及N命令

  • 使用方法,执行完 /命令 或 ?命令 后,直接按 nN 就好了
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基础操作方法汇总的更多相关文章

  1. JQuery radio(单选按钮)操作方法汇总

    这篇文章主要介绍了JQuery radio(单选按钮)操作方法汇总,本文讲解了获取选中值.设置选中值.根据Value值设置选中.删除Radio.遍历等内容,需要的朋友可以参考下   随着Jquery的 ...

  2. jquery基础知识汇总

    jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...

  3. vim基础命令

    2015-06-04 by komilevim基础命令 打开一个文件 vim index.php 几种模式说明Normal Mode也就是最一般的普通模式,默认进入vim之后,处于这种模式.Inser ...

  4. vim常用命令汇总

    vim常用命令汇总: http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 定位 本行第一个字符 ctrl+$ ...

  5. Oracle知识梳理(三)操作篇:SQL基础操作汇总

    Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式:       CREATE TABLE  table_name ( col_ ...

  6. SQL基础操作汇总

    SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式:    CREATE TABLE  table_name ( col_name    datatype, -- ...

  7. day 7 - 1 集合、copy及基础数据类型汇总

    集合:{},可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复.(不重要)集合的书写 set1 = set({1,2,3}) #set2 = {1,2,3,[2,3],{'name':' ...

  8. [svc][op]vim常用命令汇总

    vim常用命令汇总: 定位 本行第一个字符 ctrl+$ 本行最后一个字符 0gg 文章首行 ctrl+G 文章行尾 u 撤销(Undo) 删除 D 从当前位置删除到行尾 ("d$" ...

  9. 沉淀,再出发:Java基础知识汇总

    沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...

随机推荐

  1. java.lang.NoSuchMethodError: org.springframework.web.context.ConfigurableWebApplicationContext.setId

    运行spring报了这个错误,网上说是spring版本冲突,检查maven依赖,发现我依赖的是spring-core.3.0.5,但是spring-orm和spring-tx依赖了spring-bea ...

  2. Luogu P1541 乌龟棋 【线性dp】

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行 N 个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第 N 格是终点,游戏要求玩家控制一个乌龟 ...

  3. 《Windows核心编程系列》八谈谈用内核对象进行线程同步

    使用内核对象进行线程同步. 前面我们介绍了用户模式下线程同步的几种方式.在用户模式下进行线程同步的最大好处就是速度非常快.因此当需要使用线程同步时用户模式下的线程同步是首选. 但是用户模式下的线程同步 ...

  4. TIME-April

    一转眼四月份又过了三分之一,现在才开始计划自己的四月还真是对自己太过放松了呀!不过前一段时间都在搞学生会的五四评优答辩,索然不是我喜欢的过程,但是结果还比较令人欢喜.翻掉过去的篇章,展开新的一页. 四 ...

  5. Windows7运行无法记录历史命令问题解决

    Windows7运行无法记录历史命令,每次都需要手动敲命令,解决方法如下: 1.任务栏中右键,选择"属性"菜单: 2.在弹出框中的"[开始]菜单"选项卡的隐私区 ...

  6. 【先定一个小目标】dotnet core 命令详解

    本篇博客来了解一下dotnet这个神奇的命令.我会依次对dotnet,dotnet new,dotnet restore,dotnet build,dotnet test,dotnet run,dot ...

  7. 【转】JAVA的静态变量、静态方法、静态类

    转自:http://blog.csdn.net/zhandoushi1982/article/details/8453522/ 静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. ( ...

  8. ambari-server启动WARN qtp-ambari-client-87] ServletHandler: 563 /api/v1/stacks/HDP/versions/2.4/recommendations java.lang.NullPointerException报错解决办法(图文详解)

      问题详情 来源是,我在Ambari集群里,安装Hue. 给Ambari集群里安装可视化分析利器工具Hue步骤(图文详解 所遇到的这个问题. 然后,去ambari-server的log日志,查看,如 ...

  9. scala学习笔记4:函数和闭包

    以下主要记录的是看完scala in programming这本书functions and closures(第八章)后的要点总结. 1,函数可以存在的地方:函数方法,嵌套函数. 2,关于funct ...

  10. poj2573Bridge(过桥问题)

    链接 A,B为最快和次快 有两种方式可以使c,d过桥 一是a与c一起走,a回来接d再与d一起走,一直到对岸人为0为止 而是 a与b一起走 a回来送灯 c与d一起走 b回来送灯 重复此过程. 只剩2人时 ...