在Vim里摸爬滚打

你校曾经全是 Emacs 党,直到近两年出现了我这个用 Vim 的沙雕,和某个进队的 Gedit 神必壬

至于为什么使用 Vim,一方面是想改善你校只有 Emacs 人的环境,一方面是想找点乐子。

于是开始看简明 Vim 练级攻略,顺便把基本操作扔到自己博客里。

简易使用

安装 Vim 并启动后在 Normal 模式下,这个模式下所有的键就是功能键

注意<Ctrl>-λ我会写成C-λ,以:开始的命令需要回车执行,<n>表示该处应输入一个数。

  1. 从 Normal 模式转至 Insert 模式

i:在光标前插入。
a:在光标后插入。
o/O:在当前行后/前插入一个新行并将光标跳到行头处。

  1. 删除字符

<delete>:真忘了怎么删就 delete 键。
x:删除当前光标所在位置的一个字符。

  1. 复制粘贴

dd:删除当前行,并存入剪贴板里。
p/P:在当前位置之后/前粘贴。
yy:拷贝当前行。

怎么从外部剪贴板粘贴或复制到外部剪贴板呢?目前记住"+p"+y就够了。

其实选中一部分内容后,y就是复制,d就是删除。

  1. 撤销恢复

u:Undo.
<C-r>:Redo.

  1. 打开/保存/退出/改变文件

:e <path/to/file>:打开一个文件。
:w:存盘。
:saveas <path/to/file>:将当前文件另存为<path/to/file>
ZZ/:wq:保存并退出。
:x:保存(仅在需要时)并退出。
:q:退出,若选择不保存则需后附!强制执行(即命令为:q!),强制退出所有的文件可以使用:qa!
:bn/:bp:若打开了多个文件,使用其来切换到上/下一个文件。

  1. 移动光标

所谓 blank 字符,就是空格、tab、换行等。

hjkl:向左下上右移动光标。
0:到行头。
^:到本行第一个不是 blank 字符的位置。
$:到本行行尾。
g_:到本行最后一个不是 blank 字符的位置。
:<n>:到第<n>行。

  1. 自动补全

<C-n>:体验不算太好,也许我没找到真正的使用方法(

  1. 选择

v:选择一段。
<Shift-v>:按行选择。

一些基本配置

Vim 安装目录和用户主目录下有.vimrc,那是配置文件。

设置编码

1
2
3
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

显示行号

1
set number

nu是缩写。

突出显示当前行

1
set cursorline

cul是缩写。

突出显示当前列

1
set cursorcolumn

cuc是缩写。

启用鼠标

1
2
3
set mouse=a
set selection=exclusive
set selectmode=mouse,key

不过其实没啥人愿意用鼠标,毕竟大部分人都是为了解放鼠标才来玩 Vim 的(

缩进与 tab

以下分别为设置将输入的 tab 转为空格、设置 tab 长度为 4 空格、设置自动缩进长度为 4 空格、继承前一行的缩进方式、

1
2
3
4
set expandtab
set tabstop=4
set shiftwidth=4
set autoindent

对于我来说,暂时已经能够在 Vim 下存活了。

顺带一提 OI-wiki 的 Vim 介绍好像更不错(