Vim 简介

Vim 是字符模式下的一种文本编辑器,不需要图形界面,它是 Vi 的一个发展。
Vim 与常见文本编辑器的区别在于,它有四种模式,“正常模式”“插入模式”“命令模式”“可视模式”。

插入模式是最正常的文本。

打开

使用 vim <filename> 来打开文件,或新建一个文件。

Vim的四种模式

Vim 打开后进入正常模式,通过一些命令可以进入插入模式。

通过输入:进入命令模式,光标会移动到窗户左下角,这种模式下,可以对文件和环境做一些操作。

通过输入 vV 进入可视模式,可以选择一部分文本,然后对其进行操作。

通过 Esc 键从其他模式返回正常模式。

当不知道处在什么模式的时候,可以多敲几次 Esc 来返回正常模式。

一些命令

这里只罗列一些基本操作所需要的命令,如果想了解 Vim 全部命令,可以输入 vimtutor

这些命令都是在正常模式中输入的,其实相当一部分命令可以当做快捷键,这样便于理解。

所有的命令最好在 Vim 下进行尝试。

插入

这一部分命令只使用了键盘上的一个按键,直接敲击即可,可以认为它们是一些快捷键。

这些命令使得 Vim 从正常模式进入插入模式。

这里把大写和小写放在了同一行,应该知道它们是两种命令,功能上有所相似。

  1. i I 在光标前插入 在光标所在行头插入
  2. a A 在光标后插入 在光标所在行尾插入
  3. o O 在光标所在行下一行插入新行 在光标所在行前一行插入新行

移动

在正常模式下移动光标所用的命令。

在一些版本的 Vim 中,在插入模式下可以使用方向键来移动光标,比如 NOI Linux。

  1. h j k l 分别为
  2. gg 到文件头
  3. G 到文件尾
  4. <n>G 移动到第<n>行,例如移动到第 10 行,敲击键盘上对应按键 10G 即可
  5. ctrl+f 下一页(相当于 page down
  6. ctrl+b 上一页(相当于 page up
  7. zz 光标所在行居中

文件

这一部分命令,首先输入 :,光标将出现在屏幕最下方,输入指令后敲击 Enter 来执行。这部分命令是可以组合的,如输入 :wq,可以在后面添加 ! 来强制执行,如 :wq!

  1. :w 写入
  2. :q 退出

编辑

  1. x 删除当前字母
  2. dd 剪切当前行
  3. gg=G 整理全文代码缩进
  4. V 选择部分行(从光标所在行开始,通过jk移动选择)
  5. d 剪切
  6. y 复制
  7. p 粘贴,在正常模式
  8. u 撤销
  9. ctrl+r 反撤销

环境设置

Vim 中有一些属性通过设置来调整。

  1. :set ai 自动缩进
  2. :set nu 显示行号(number)
  3. :set ts=4 TAB 的宽度为 4
  4. :set expandtab TAB替换为空格

.vimrc

如果不想每次打开 Vim 的时候都设置一遍环境,可以写一个 .vimrc 文件,每次打开 Vim 的时候都会先执行一次。

~/ 下创建 .vimrc 文件,输入例如 set ai,即省略 :

更多命令

环境设置

  1. :set fdm=indent 设置按缩进分层折叠代码
  2. :set sw=4 设置宽度为 4 的缩进为一层,用于折叠

折叠

  1. zm 关闭所有折叠
  2. zM 关闭所有折叠及其嵌套的折叠
  3. zr 打开所有折叠
  4. zR 打开所有折叠及其嵌套的折叠
  5. za 关闭、打开光标下的折叠
  6. zA 关闭、打开光标下的折叠及其嵌套
  7. [z 到当前打开折叠的开始
  8. ]z 到当前打开折叠的结束

显示

  1. :vsplit <文件名> 分屏显示另一文档(竖直分割)

Vim 入门的更多相关文章

  1. Vim入门基础

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

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

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

  3. Vim入门操作整理

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

  4. Vim 入门教程

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

  5. vim入门过程

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

  6. [vim] vim入门

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

  7. Vim入门学习之Vim解析

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

  8. Vim入门教程

    尽管网上有成打的Vim在线教程,但是要么艰深晦涩,要么太过肤浅.本教程的目标让每个阶段都有斩获,从理解它的哲学(将和你终身相伴)到超越现在编辑技巧,成为其中的牛人. 简单来说,本教程的学习方式将使你终 ...

  9. Maxiee的Vim入门日记(4)——安装windows下的Cscope

    Maxiee今天又学到了一个插件——Cscope.Cscope 是一款用于查看大型工程中的代码的软件.它使用方便,支持快速查找 C Symbol.function 等在工程中所有出现的位置,而不用自己 ...

  10. Vim 入门:基础

    为工作或者新项目学习足够的 Vim 知识. -- Bryant Son 我还清晰地记得我第一次接触 Vim 的时候.那时我还是一名大学生,计算机学院的机房里都装着 Ubuntu 系统.尽管我在上大学前 ...

随机推荐

  1. minio gataway 模式快速提供s3 兼容的文件服务

    实际很多场景我们已经有了遗留系统的文件存储方式(ftp,或者共享目录),但是这个方式可能不是很好,对于web 不是很友好 实际上minio 也提供了gateway 的模式,可以方便快速的将遗留系统的存 ...

  2. [PHP] Laravel 5.5 打印SQL语句

    [PHP] Laravel 5.5 打印SQL语句 四种方法 第一种方法: 打印SQL默认是关闭的,需要在/vendor/illuminate/database/Connection.php中打开. ...

  3. 【CSP-S膜你考】即时战略(模拟)

    Problem B. 即时战略 (rts.c/cpp/pas) 注意 Input file: rts.in Output file: rts.out Time Limit : 2 seconds Me ...

  4. 组件&Props

    组件允许你将Ui拆分为独立可复用的代码片段,并对每个片段进行独立构思.本指南只在介绍组件的相关概念.你可以参考详细组件 API. 组件,从概念上类似与JavaScript函数.它接受任意的入参(既“p ...

  5. nginx 反向代理之 proxy_buffering

    proxy_buffering主要是实现被代理服务器的数据和客户端的请求异步. 为了方便理解,我们定义三个角色,A为客户端,B为代理服务器,C为被代理服务器. 当proxy_buffering开启,A ...

  6. Spring整合MyBatis整合

    1.导入所需要的jar依赖 !--MyBatis和Spring的整合包 由MyBatis提供--> <dependency> <groupId>org.mybatis&l ...

  7. eclipse Target runtime com.genuitec.runtime.generic.jee50 is not defined

      1.情景展示 报错信息如下: 2.原因分析 使用eclipse导入myeclipse时,唯独这个报错信息改不了. 需要通过修改这个项目的配置文件才行. 3.解决方案 第一步:切换到导航视图: 第二 ...

  8. 东芝300D粉盒清零

    东芝300D粉盒清零 1:打开前盖 2:按"OK"键3秒,等 显示 "更换硒鼓"(注:不用选 是/否,直接进入第3步) 3:按"启用"键 4 ...

  9. <每日 1 OJ> -LeetCode 13 . 罗马数字转正数

    题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1 ...

  10. [技术博客]采用Bootstrap框架进行排版布局

    [技术博客]采用Bootstrap框架进行排版布局 网页的前端框架有很多很多种,比如Bootstrap.Vue.Angular等等,在最开始其实并没有考虑到框架这回事,开始阅读往届代码时发现其部分采用 ...