vim命令笔记

来源:互联网 发布:快鸟地图软件 编辑:程序博客网 时间:2024/05/01 21:56

背景

vi常用命令一文是之前用CSDN缺省编辑器写的,现在习惯了Markdown,所以另开一文。——涉嫌灌水。。。

这里记录《vimbook-OPL.pdf》一文的学习笔记。全部以Windows下面的操作为例。

1. Basic Editing

vim和gvim

可以在cmd下面输入vim和gvim,两个命令的区别:

  • vim: 在当前cmd窗口中开启vim编辑器(下面的黑图);
  • gvim:另起一个窗口开启vim编辑器(下面的白图)。

下面是效果图(文不如表,表不如图,所以没事多贴图):

vim

gvim

mode

两种模式:命令模式和插入模式。看vim窗口最下面一行可以知道当前是什么模式,如果不清楚,就Esc,就会回到命令模式。

编辑模式

插入字符 i (光标前)

在命令命令下,键入 i 就进入编辑模式了。此字母为insert之首字母,insert即为插入字符之意,插入即意味着编辑模式。这种插入是在当前光标所在字母的前面插入。

插入字符 a (光标后)

上面的i是在光标前面插入一个字符,只有这个还是不够的。想想,如果要在某一行的最后添加字符怎么办?当光标跑到最后的时候,i只会在光标位置的前面插入字符,永远没法在行尾写数据。

所以另有一个命令 a,意为append,在当前光标的后面追加字符。

删除字符 x

要删除当前光标位置的字符,就用字母 x。为什么用这个x呢?实际上就是叉叉。文中这么说的:

This is a throwback to the old days of the typewriter, when you deleted things by typing xxxx over them.

大致是说,古老的那种打字机,要删除东西的话,就在这些字符上xxxx。

删除整行 dd

上面的x是删除光标所在位置的一个字符。如果要删除(光标所在的)整行,就用dd命令。即在命令模式下,连续输入两个d。——d:delete。一个delete还不足以删除整行,所以delete delete,就两个d了。

移动光标 (hjkl)

在试着上面的操作的过程中,会发现需要让光标上下左右移动。对应的命令就是hjkl四个在键盘上紧挨着的字母。每个字母控制的方向如下:

hjkl

从键盘上看,k和l在两边,所以分别向两边跑,h往左,l往右。剩下jk两个,j往下,k往上。——这里h和l好记忆,j和k混淆的话,就随便一个试试,就知道哪个往上哪个往下了,然后实际操作几次之后,想忘记就难了。

keyboard

快速定位到行首和行尾 (0,$)

用前面的hjkl可以上下左右移动,但如果一行的内容很长,一个字符一个字符的往左往右移动是很低效的。所以,又有对应的两个命令:

  • 0(数字0):将光标移动到行首
  • $(shift+数字4):将光标移动到行尾

新启一行 o, O

上面将光标移动到行首是数字0,一个接近的字符自然是字母o了;进一步分为小写字母o和大写字母O。

想象一下,在输入的时候,希望另起一行输入文本;而这个时候光标并不在行尾,比如在当前行的中间或前面。然后怎么另起一个新行来输入呢?变通方法:

  • $: 光标跳到当前行的最后;
  • a: 变成编辑模式,此时光标在行尾;
  • <\Enter>:回车,这是就看到vim新开启了一个新行。

以上三步还是麻烦的,所以vim作者提供了一个命令,或者说一个字母搞定以上三步,这就是字母o

当然,这里的小写字母o是往下另起一行。如果要往上另起一行呢?就是大写字母O了。

0 0