Skip to content

Latest commit

 

History

History
137 lines (89 loc) · 3.84 KB

ch-02.md

File metadata and controls

137 lines (89 loc) · 3.84 KB

入门 —— 使用编辑器

摘要

我们离不开文本编辑操作,至少我们需要编辑代码 (听起来像是个程序员,对,我就是)。有人可能会反驳说 我们可以直接使用命令来更改文件 (这个暂时不讲),当然没错,但这只是在进行一些轻量文本修改时做的事情,或者一些极端的情况 (比如修改二进制文件!—— 我们可能修改了你的程序但你却毫不知情,但我们不会这么做,因为这对我们没有好处)。

那么我们开始吧!

简单介绍 Vim (Vi IMproved)

Vim 是 Unix 编辑器 Vi 的进化版本,和 Vi 相比,Vim 更加强大,并且支持使用 Vim Script 编写插件,这意味 Vim 高度可定制化。甚至有人将插件模块化将 Vim 打造成集成开发环境 (IDE),比如 SpaceVim

进入正题,先检查一下是否有 vim

$ which vim

如果 which 提示没有 vim,那就安装它:

$ pacman -S vim

开始吧

来看看这段文字:

Hello world!
I'm lucky! abc
This is Vim!
插入模式 (INSERT)

我们来尝试将这段文字写入 hello.txt

  1. 新建并编辑它:vim hello.txt

    这样 vim 会在缓冲区新建一个名为 hello.txt 的文件,不过请注意,此时文件并未写入磁盘,如果不保存退出,我们将看不到 hello.txt 这个文件。

    如果你想在编辑文件前创建它,可以 touch hello.txt,这里 touch 将会创建一个名为 hello.txt 的空白文件。

  2. 先输入 i 进入插入模式

    我们刚进入 vim 时默认是 NORMAL 模式,还不能像记事本一样编辑 代码,当然这个模式有更多功能,这个待会讲。

  3. 开始编辑

    emmm...看起来像记事本一样,但是不要着急。

  4. Esc 键 (或 Ctrl + [) 退出插入模式

    现在我们又回到 NORMAL 模式了。

  5. 输入 :wq:x 来保存并退出

    NORMAL 模式下 : 代表我们要输入命令,这里我们用到了三个:

    • w 代表写入
    • q 代表退出
    • x 是写入并退出的一个别名

    如果我们在后面加上 !,像这样::q!这将强制退出 (即放弃更改)。

现在我们来验证一下刚才的编辑成果:

$ cat hello.txt

如果一切顺利你将看到与之前那段文字一样的输出。

命令模式 (COMMAND)

参见上面的第五步。

普通模式 (NORMAL)

注意到第二行末尾的 abc 了吗?让我们来把它删掉!

  1. vim 打开 hello.txt
  2. 不要进入插入模式

现在我们来移动光标——使用 hjkl

  • h 向左
  • j 向下
  • k 向上
  • l 向右

这些默认只移动一格,以 向左 为例,如果我们用 Nh (N 为任意数字) 之类的话,它将移动 N 格,所以 h 等同与 1h

有了这些,我们先将光标移到第二行末尾。按一下 x,看看发生了什么——

光标下的字符消失了!这正是我们想要的,让我们用同样的办法把剩下的 ab 也删掉,删完后保存退出,看下 cat 的结果:

$ cat hello.txt
Hello world!
I'm lucky!
This is Vim!

好极了不是吗?

当然这只是热身,要想真正学会 Vim,那就要学习它自带的教程—— vimtutor,这是 Vim 自己的教程,在命令行中输入 vimtutor 就能进入学习了,Good luck!

还没有结束

vimtutor 是每个 Vim 学习者的必经之路,下一节我们会使用 vim 编写一些简单的 shell 脚本,好好掌握 Vim 吧!持之以恒,坚持就是胜利!

跳转

上一个:第 01 章

下一个:第 03 章