一、概述

VI

Visual interface 可视化接口,类似于Windows中的记事本

VI->VIM

操作模式:

(1)Command mode 命令模式

(2)Insert mode 输入模式

(3)Last line mode 底行模式(尾行、末行)

二、基本

vim [文件名]

进入Vim编辑器,若文件不存在则自动创建并打开

进入默认处于命令模式,等待用户输入命令

键入 i  进入Insert模式

ESC 键退出Insert模式

使用:wq 再按enter键保存退出

三、Vim的命令格式

vim + 文件名:打开文件,光标定位到最后一行

vim +3 文件名:打开文件,光标定位到第3行

vim +/xxx 文件名 :打开文件,光标定位到xxx第一次出现的行,可以通过  n  键,在几次出现xxx的地方进行切换

vim aa bb cc :同时创建并编辑多个文件,在底行模式可以通过键入 :n 向下切换编辑文件(aa->bb->cc的向下顺序), :N 或者 :prev 向上切换编辑文件(cc->bb->aa的向上顺序)

四、底行模式常用指令

:w 保存修改

:q 退出文件

:! 强制执行

:wq 保存修改直接退出

:q! 放弃修改的内容强制退出

:ls 列出编辑器中打开的所有文件

:n 切换一个文件

:N 切换一个文件

:15 把光标快速定位到第15行,15可替换为任意合法数字

/xxx 从光标位置向后搜索xxx这个字符串,匹配第一次出现位置并把光标定位至该位置

?xxx 从光标位置向前搜索xxx这个字符串,匹配第一次出现位置并把光标定位至该位置

五、命令模式下常用指令

h 光标左移动

j

k

l(L)

Ctrl+F 向下翻页(front)

Ctrl+B 向上翻页(back)

Ctrl+D 向下半翻页(down)

Ctrl+U 向上半翻页(up)

dd 删除光标所在行

o 在光标所在行的下方插入一行并进入输入模式

yy 复制光标所在行

p (小写)在光标所在行的下方粘贴

P (大写)在光标所在行的上方粘贴

Linux学习笔记(十二)VIM编辑器的更多相关文章

  1. linux学习笔记--vi与vim编辑器

    vi编辑器全名为Visual Interface,即为可视化接口,类似于Windows中的记事本 vim相当于是vi的一个升级版本,包含vi的一切操作命令,vim相对于vi做了哪些提升: 1.vim支 ...

  2. deepin linux 学习笔记(二)——文本编辑器

    目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) ...

  3. python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL

    python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...

  4. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  5. Linux学习笔记(二)——文件/目录/VIM

    文件和目录管理 及 VI编辑器的使用 文件和目录管理,刚开始学这块的时候感觉内容很多很杂,但是学完进行总结后,发现其实很有条理的而且没什么难度,只是熟练掌握这些常用的命令就行了.至于Vim编辑器,不得 ...

  6. java jvm学习笔记十二(访问控制器的栈校验机制)

    欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 本节源码:http://download.csdn.net/detail/yfqnihao/4863854 这一节,我们 ...

  7. Linux学习笔记之二

    vim编辑器 :三种工作模式 vim /tmp/xueying.txt 命令模式 a.i.o/esc     \  :wq  保存并退出 /              \ 输入模式           ...

  8. (C/C++学习笔记) 十二. 指针

    十二. 指针 ● 基本概念 位系统下为4字节(8位十六进制数),在64位系统下为8字节(16位十六进制数) 进制表示的, 内存地址不占用内存空间 指针本身是一种数据类型, 它可以指向int, char ...

  9. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】

    本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  10. Linux学习笔记之十二————vim编辑器的分屏操作

    一.分屏操作: sp: 上下分屏,后可跟文件名 vsp: 左右分屏,后可跟文件名 Ctr+w+w: 在多个窗口切换 二.启动分屏: 1.使用大写O参数进行垂直分屏 $ vim -On file1 fi ...

随机推荐

  1. ant design Table合并单元格合并单元格怎么用?

    1.ant design table合并单元格怎么用?

  2. leetcode1105 Filling Bookcase Shelves

    思路: dp[i]表示摆放好前i本书所需要的最小代价. 实现: class Solution { public: int minHeightShelves(vector<vector<in ...

  3. TCP使用

    TCP使用注意事项总结   目录 发送或者接受数据过程中对端可能发生的情况汇总 本端TCP发送数据时对端进程已经崩溃 本端TCP发送数据时对端主机已经崩溃 本端TCP发送数据时对端主机已经关机 某个连 ...

  4. 读取json数据封装

    前言:做自动化常用公共方法 import json class ReadJson(): def __init__(self): self.data = self.read_data() #读取JSON ...

  5. docker管理工具lazydocker

    docker管理工具lazydocker 简介 这是一个为了能再终端中更方便管理docker的工具 项目地址 https://github.com/jesseduffield/lazydocker 安 ...

  6. vue+element-ui动态生成多级表头,并且将有相同字段下不同子元素合并为同一个

    element表头要多层生成,下一级表头数据源必须是当前表头的子一级,这样一层一层嵌套可以生成多层表头: 要把数据处理成这种类型的数据 var arr = []; for (var key in ob ...

  7. hadoop在eclipse当中如何添加源码?

    [学习笔记] /*org.apache.hadoop.mapreduce.Mapper.Context,java.lang.InterruptedException,想看map的源代码,按contro ...

  8. 【LOJ】#3020. 「CQOI2017」小 Q 的表格

    #3020. 「CQOI2017」小 Q 的表格 这个的话求出来\(g = gcd(a,b)\) 会修改所有gcd为g的位置 我们要求\((g,g)\)这个位置的数一定是\(g^{2}\)的倍数 之后 ...

  9. java源码--Map

    Map接口 用于保存具有映射关系的数据结构,实现该接口的类可以通过键来获取对应的值.. 可以将给定一个键值对存储在Map接口的实现类实例中,如:map.put("key", &qu ...

  10. Mysql主从复制原理及同步延迟问题

    本文转载自:Mysql主从复制原理及同步延迟问题 主从复制解决的问题 数据分布:通过复制将数据分布到不同地理位置 负载均衡:读写分离以及将读负载到多台从库 备份:可作为实时备份 高可用性:利用主主复制 ...