第一次使用vim,啥都不懂,输入也不能输入,退出也不会退出,特别的尴尬。。。。后来慢慢的接触学习,发现vim真的挺好用的,不过上手有点慢,多用就对了,用多了我相信你也会喜欢这个文本编辑工具的

一、vim的三种模式
1、命令模式:
使用 Vim 编辑文件时,默认处于命令模式。在此模式下,可以使用上、下、左、右键或者 k、j、h、l 命令进行光标移动,还可以对文件内容进行复制、粘贴、替换、删除等操作。

2、输入模式:
在输入模式下可以对文件执行写操作,类似在 Windows 的文档中输入内容。进入输入模式的方法是输入 i、a、o 等插入命令,编写完成后按 Esc 键即可返回命令模式。

3、编辑模式:
如果要保存、查找或者替换一些内容等,就需要进入编辑模式。编辑模式的进入方法为:在命令模式下按":"键,Vim 窗口的左下方会出现一个":"符号,这时就可以输入相关的指令进行操作了。指令执行后会自动返回命令模式。

二、基本操作
1、打开文件,或者是新建文件
统一命令为:vim file_name
例如:vim array.sh

然后在打开页面的左下角可以看到文件的信息,行数和字符数,比如上图的241行,5450个字符

2、移动光标:
a、以字符为单位移动
在命令模式中使用 h、j、k、l 这 4 个字符控制方向,分别表示向左、向下、向上、向左。
b、以单词为单位移动
w:移动光标到下一个单词的单词首
b:移动光标到上一个单词的单词首
e:移动光标到下一个单词的单词尾
c、移动到行尾或者行首

使用"$"命令将光标移至行尾,或者使用"0"或"^"命令将光标移至行首。其实,对于 $ 命令来说,可以使用诸如"n$"之类的命令来将光标移至当前光标所在行的之后 n 行的行尾(n 为数字);对于"0"命令来说却不可以,但可以用"n^"

移动到一行的指定字符处(f 命令)

例如,某行为"you can you up, no can no bb",现在需要将光标移动到字符 p 处,则可以使用"fp"命令,这样光标就会迅速定位到字符 p 处。f 命令有一个使用条件,即光标需在指定字符前
   移动到匹配的括号处(%命令)
那么在使用 Vim 进行编辑时经常会为将光标移动到与一个"("匹配的")"(对于 [] 和 {} 也是一样的)处而感到头疼。其实在 Vim 里面提供了一个非常方便地査找匹配括号的命令,这就是"%"

移动到指定行处(nG 或 :n 命令)
可以直接在命令模式中输入"nG"(n 为数字,G 为大写)或":n"(在编辑模式中输入数字)命令将光标快速地定位到指定行的行首。这种方法对快速移动光标非常有效。

3、插入
常用的插入命令:
i:在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I:在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行i命令
a:在当前光标所在位置之后插入随后输入的文本
A:在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行a命令
o:在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O:在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本

当处于输入模式时,右下角的状态为如下图所示:

当编辑完毕使用Esc命令退出输入模式,进去命令模式,可以使用Shift+zz命令保存退出,其他保存和退出命令见下文

4、编辑
査找指定字符串
首先在命令模式下输入:/char #char为需要查找的字符,在查找的过程中还以使用$^等进行匹配
然后enter键就可以了,然后使用n,N进行下一个或者上一个查找

5、替换字符

r 替换当前光标的单个字符
R 从当前光标开始替换,esc退出
替换范围内的字符串::替换起始处,替换结束处s/源字符串/替换的字符串/g。
替换整篇文档的字符串::%s/源字符串/替换的字符串/g(如果不加g,则只替换每行第一个找到的字符串)。

6、删除,复制,粘贴
x :删除当前光标字符
dd: 删除当前光标行
还可以使用命令::1,$d #表示从第一行到最后一行删除,
ndd ,表示删除当前光标接下来的n行, 例如5dd
dG : 表示删除光标到最后一行
yy:为复制
p:为粘贴
u:为撤销上一步的操作

7、保存和退出
字母"w":保存不退出;
字母"q":不保存退出;
字符"!":强制性操作;

三、其他常用设置
命令前面都要加冒号,我表示偷懒。。。

四、截图高手(请原谅我的懒惰,毕竟时间宝贵)

这部分截图来自鸟哥私房菜:

基础知识其实更推荐大家看书籍,内容全面,此博客只是皮毛

内容丰富,有兴趣的童鞋可以提取

下载地址:

链接:https://pan.baidu.com/s/1qK3ZF-kBYBL_R_C2YJxhSg
提取码:nz0n

Linux之vim详解的更多相关文章

  1. Linux文本编译工具VIM详解

    Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 >.vi: 全称Visual editor,即文本编辑 ...

  2. linux lsof命令详解

    linux lsof命令详解 简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访 ...

  3. LINUX任务(jobs)详解

    LINUX任务(jobs)详解 在用管理员执行一个命令后,用Ctrl+Z把命令转移到了后台.导致无法退出root的. 输入命令:exit终端显示:There are stopped jobs. 解决方 ...

  4. 【转】Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备

    原文:https://www.cnblogs.com/bakari/p/10449664.html -------------------------------------------------- ...

  5. [转贴]linux lsof命令详解

    linux lsof命令详解 https://www.cnblogs.com/sparkbj/p/7161669.html 简介 lsof(list open files)是一个列出当前系统打开文件的 ...

  6. Linux常用命令详解—基于CentOS7

    ## Linux 目录- /:根目录,一般只存放目录,不存放文件- /bin -> /usr/bin:可执行二进制文件的目录,也是常用命令目录,如常用的命令 ls.cat.mv 等- /boot ...

  7. Linux常用命令详解上

    Linux常用命令详解上 目录 一.shell 二.Linux命令 2.1.内部命令与外部命令的区别 2.2.Linux命令行的格式 2.3.编辑Linux命令行的辅助操作 2.4.获得命令帮助的方法 ...

  8. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  9. Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)

    启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬 ...

随机推荐

  1. 《Graph Attention Network》阅读笔记

    基本信息 论文题目:GRAPH ATTENTION NETWORKS 时间:2018 期刊:ICLR 主要动机 探讨图谱(Graph)作为输入的情况下如何用深度学习完成分类.预测等问题:通过堆叠这种层 ...

  2. fastjson1.2.48以下版本存在重大漏洞

    1. 场景描述 今天接公司通知:阿里的Fastjson,今天爆出了一个反序列化远程代码漏洞,比较严重的一个漏洞. 影响范围: 1.2.48以下的版本(不包括1.2.48). 2. 解决方案 查看项目f ...

  3. akka 集群分片

    akka 集群 Sharding分片 分片上下级结构 集群(多台节点机) —> 每台节点机(1个片区) —> 每个片区(多个分片) —> 每个分片(多个实体) 实体: 分片管理的 A ...

  4. 【译】.NET Core 3.0 发布自包含单体可执行程序

    .NET Core 提供的发布应用程序选项 self-contained 是共享应用程序的好方法,因为应用程序的发布目录包含所有组件.运行时和框架.您只需要告诉使用者应用程序的入口 exe 文件,就可 ...

  5. SpringCloud-Alibaba-Sentinel(1)初探

    Sentinel 是什么? Sentinel 具有以下特征: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围) ...

  6. 【基本数据结构】并查集-C++

    并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中.这一类问题近几年来反复出 ...

  7. vue-cli安装搭建初始项目

    vue-cli脚手架 前提:node + npm 安装好 一.介绍 vue-cli: Vue + ESLint + webpack + iview + ES6 Vue:主要框架ESLint:帮助我们检 ...

  8. vs2005 打不开resoure view?

    原来是破解版 vc助手惹的祸. 解决方法:卸载vc助手或者换一个注册的vc助手

  9. [HDOJ] 1753.大明A+B (大数加法)

    Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是那个只会做100以内加法的那个"小明 ...

  10. python课堂整理13---函数的作用域及匿名函数

    name = 'alex' def foo(): name = 'jinling' def bar(): print(name) return bar a = foo() print(a) 阅读上述代 ...