0. 前言

我打算写一个系列文章,用来详细介绍vim的使用技巧,我会从头开始,从vim入门,到vim的各种配置,这是第一篇

1. vim 的三种模式

  1. Normal mode (正常模式)
  2. Inster mode (编辑模式)
  3. command mode (命令行模式)
  • 在直接进入 vim 的时候,默认是 Normal mode 模式。
  • 如果需要进行编辑,需要进入 instert mode,即编辑模式,输入小写「i」可以进入编辑模式
  • 从编辑模式退回到正常模式的时候,只需要按 exc 键即可。
  • 命令行模式则是在你需要进行保存,使用脚本等操作的时候需要的模式,进入方法为在正常模式下输入 「:」

2. vim 的使用

  • 如果没有 vim,使用以下命令来下载
sudo pacman -S neovim
  • 注:neovim 也是 vim 的一种衍生版本,只不过更好用,唯一的区别就是启动命令的不同,分别是 vim 和 nvim
  • 使用 nvim 文件名 即可打开文件,如果文件并不存在的话,就会创建文件

3. 编辑模式

  • 在正常模式下输入 i ,进入编辑模式。

  • 在编辑模式下,编辑完成内容之后,如果需要退出的话,需要进入命令行模式,输入「:」wq,即可选择保存退出。

  • 需要注意的地方是:如果你修改了文件,那么你有两种处理方式

  1. 保存并退出 - wq
  2. 不保存退出 - q!
  • 如果选择的是不保存退出,并且是使用 nvim 创建的文件,那么在不保存退出的情况下,是不会创建这个文件的(因为文件没有内容)
  • 也就是说,在使用 vim 创建文件的时候,在退出的时候,里面必须有内容,这样的话才会创建文件。

2. 正常模式

2.1 导航

  • 在 vim 中,导航键可以使用小键盘的上下左右,但是并不建议使用它,因为会影响效率
  • vim 中导航键为 :H J K L(移动光标的操作需要进入正常模式)
    • K: 上
    • J: 下
    • H:左
    • L:右

2.2 插入

  • i 会插入到光标的左侧,如果需要插入的光标的右侧,输入「a」
  • 相对的,如果需要插入光标到最前面的位置,使用大写的 「i」或者使用快捷键 「shift + i」
  • 在最后面插入光标,则使用大写的「a」或者快捷键「shift + a」
  • 如果在行首,并不想移动到行尾再换行,则可以使用「o」来直接新增下一行,大写的「O」可以新增上一行
  • 使用大写的「G」可以将光标移动到文件末尾

2.3 复制和粘贴

  • yy:复制当前所在的行
  • p:粘贴所复制的内容 (粘贴可以指定函数,如 3p 代表粘贴 3 行)

2.4 删除

  • dd: 删除所在的一整行
  • dG: 删除光标后面的所有内容
  • dw:删除光标左边的字符
  • cw:删除当前字符并进入编辑模式
  • Ci{ : 删除 「{ } 」中的内容,小括号和中括号使用的时候,只需要替换掉括号的符号

2.5 跳转

  • W: 跳到每个单词的开头,会把括号当为一个单词

3. 命令行模式

  • 在命令行模式中,输入「/ 」可以进入搜索模式, 搜索内容会以高亮显示。

  • 替换: :%s /旧字符/新字符/g ,g 代表全局替换

01. vim入门的更多相关文章

  1. Redis 笔记 01:入门篇

    Redis 笔记 01:入门篇 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...

  2. Vim入门基础

    公司新员工学习有用到,Vim官网的手册又太大而全,而网上各方资料要么不全面,要么不够基础.在网上搜集各方资料,按照自己的框架整理一份Vim入门基础教程,分享出来.特点是偏向基础,但对入门者来说足够全面 ...

  3. Ubuntu学习小结(二)PostgreSQL的使用,进程的查看关闭,编辑器之神Vim入门

    距离上次发布文章已经过去了很久.在过去的半年中,虽然写的代码不多,但是在接触了计算机一些其他的知识,包括数据库.网络之后,感觉能够融会贯通,写代码水平又有了一定的提高.接下来,将会发表几篇文章,简单介 ...

  4. Vim入门操作整理

    根据小甲鱼的vim入门视频整理,供查阅 移动指令:上下左右 k j h l 翻页: ctrl + b  ctrl + f 保存退出:ZZ 普通模式:vim fileName 首次进入的就是普通模式 从 ...

  5. Vim 入门教程

    Vim 入门教程 转载请保留以上信息 Vim 的教程相对比较零散,系统的教程比较少,我也阅读过不少教程,走过很 多弯路.借着 Vim-china 组织组建这一契机,整理下自己学习过的内容, 分享给大家 ...

  6. vim入门过程

    先下载了一本VIM的用户手册. 看到可以使用vimtutor(VIM的入门教程,很不错,由浅入深)作为入门. Unix系统中,请在命令行输入:vimtutor,进入教程. MS-Windows系统中, ...

  7. [vim] vim入门

    1. 概述 工欲善其事 必先利其器.vim是非常好用的文本编辑器,可以将它看作是vi的进阶.绝大多数Unix系统都会内置vi编辑器,vi是文本编辑器,vim是程序编辑器.相比vi,它可以根据文件的类型 ...

  8. Vim入门学习之Vim解析

    Vim解析... ----------------------- 首先你要会从官网上下载你想要的Vim版本:   官网: http://www.vim.org/==================== ...

  9. SpringMVC札集(01)——SpringMVC入门完整详细示例(上)

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  10. 01 Linux入门介绍

    一.Linux 初步介绍 Linux的优点 免费的,开源的 支持多线程,多用户 安全性好 对内存和文件管理优越 系统稳定 消耗资源少 Linux的缺点 操作相对困难 一些专业软件以及游戏支持度不足 L ...

随机推荐

  1. vue中,解决chrome下,的warning, Added non-passive event listener to a scroll-blocking ‘mousewheel‘ event 问题

    写项目的时候,Chrome 提醒: [Violation] Added non-passive event listener to a scroll-blocking 'mousewheel' eve ...

  2. Token过期处理

    Token用于进行接口鉴权,但是Token具有由后端设置的过期时间,当Token过期以后,就无法再请求数据了 项目中后端设置的过期时间为24h,测试时我们可以手动修改token值让Token失效 处理 ...

  3. pgsql给表字段设置默认值及设置主键

    ALTER TABLE pavement_damage_dtl_temp add PRIMARY key(id); ALTER table pavement_damage_dtl_temp alter ...

  4. 039_External Data Source(转载)

    场景描述:很多时候在实际开发中都会遇到很多数据集成问题,如Salesforce和SAP同步数据.为了让类似问题能方便.快速地解决,Salesforce提供了"外部数据源"这样的工具 ...

  5. 基于Linux的ssh协议配置sftp

    sftp采用的是ssh加密隧道,安装性方面较ftp强,而且依赖的是系统自带的ssh服务,不像ftp还需要额外的进行安装 1.  创建sftp组 创建完成之后使用cat /etc/group命令组的信息 ...

  6. swagger2入门

    1.引入jar包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox- ...

  7. eclipse中利用Maven逆向工程生成PO类以及mapper(mybatis)

    在pom.xml的project>build里面添加如下代码,让maven环境支持mybatis-generator组件   <pluginManagement>   <plu ...

  8. 杭电OJ--1003题C++实现

    #include<iostream>using namespace std;int a[100000];void solve(int k,int n,int t);int main(){  ...

  9. request提取json中的信息

    1 import requests 2 3 response = requests.get(host) 4 5 #无需import json库 6 7 i = respon.json() 8 9 #此 ...

  10. List一边插入数据后又移除数据

    记录最简单的三种方法,直接上代码: List<String> list = new ArrayList<>(); list.add("1"); list.a ...