【Missing Semester】03 编辑器(Vim)
本文为计算机教育中缺失的一课 The Missing Semester of Your CS Education 笔记
编辑模式
- 正常模式:在文件中四处移动光标进行修改。
- 插入模式:插入文本。
- 替换模式:替换文本。
- 可视化模式:选中文本块。
- 命令模式:用于执行命令。
基本操作
插入文本:
- 打开 vim 后是正常模式,键入
i
进入插入模式。 - 此时可以使用除
<ESC>
外所有键。 - 键入
<ESC>
返回正常模式。
命令行:
:q
:退出(quit)。:w
:保存(write)。:wq
:保存然后退出。:e {文件名}
:打开要编辑的文件。:ls
:显示打开的缓存。:help {标题}
:打开帮助文档::help :w
打开:w
命令的帮助文档。:help w
打开w
移动的帮助文档。
更多操作
移动:
- 基本移动:左
h
、下j
、上k
、右l
。 - 词:下一个词
w
、词初b
、词尾e
。 - 行:行初
0
、第一个非空格字符^
、行尾$
。 - 屏幕:屏幕首行
H
,屏幕中间M
,屏幕底部L
。 - 翻页:上移半页
Ctrl-u
、下移半页Ctrl-d
。 - 文件: 文件头
gg
,文件尾G
。 - 行数:
:{行数}<CR>
或者{行数}G
。 - 杂项:找到配对(比如括号或者 /* */ 之类的注释对)
%
。 - 搜索:
- 向光标之下寻找一个字符串
/{正则表达式}
。 - 向光标之上寻找一个字符串
?{正则表达式}
。 - 重复前一搜索
n
。 - 反向(向上变为向下)进行前一个搜寻动作
N
。
- 向光标之下寻找一个字符串
选择(可视化模式):
- 可视化:
v
。 - 可视化行:
V
。 - 可视化块:
Ctrl+v
。
编辑:
- 插入:
- 从目前光标所在处输入
i
。 - 在之上插入行
O
、在之下插入行o
。 - 从目前光标所在的下一个字符处开始输入
a
。 - 从光标所在行的最后一个字符处开始输入
A
。
- 从目前光标所在处输入
- 剪切:
d{移动命令}
。如,剪切词dw
、剪切本行光标前部分d0
、剪切本行光标后部分d$
,剪切游标所在的一整行dd
。- 剪切字符:
x
等价于dl
,X
等价于dg
。
- 修改:
c{移动命令}
,等价于d{移动命令}i
。如,改变词cw
。 - 撤销:
u
。 - 重复:重复前一个动作
.
。 - 复制:
y
。 - 粘贴:在之上插入行
P
、在之下插入行p
。
修饰语:
- 改变当前括号内的内容:
ci(
。 - 改变当前方括号内的内容:
ci[
。 - 删除一个单引号字符串, 包括周围的单引号:
da'
。
Vim 进阶:咕咕咕~
Macvim
安装:终端输入 brew install macvim
。
配置:Vim 由一个位于 ~/.vimrc
的文本配置文件。在终端中使用 open ~/.vimrc
或 mvim ~/.vimrc
来编辑。
set nocompatible
:非兼容模式,最最基础的选项,必需是第一个设定的选项。syntax on
:代码高亮。set shortmess+=I
:禁用默认的 Vim 启动消息。set number
:显式行号。set relativenumber
:显式相对行号。set laststatus=2
:总是显示窗口的编辑模式。set backspace=indent,eol,start
:backspace 键能删除自动缩进的空格、在一行删除完后合并到上一行、可以删除此次进入插入模式前的输入。set hidden
:防止忘记保存。set ignorecase
:搜索命令不区分大小写。set smartcase
:在set ignorecase
情况下使用,如果搜索模式中出现了大写字符,smartcase
会判断用户想使用区分大小写的搜索。set insearch
:在输入时启用搜索,而不是等到按回车键。set noerrorbells visualbell t_vb=
:禁用出错时的响铃。set mouse+=a
:鼠标有效。set cursorline
:高亮光标所在行。set autoindent
:保持上一行的缩进。set shiftwidth=4
:设置缩进单位。set tabstop=4
:一个 tab 等于 4 个空格。set showmatch
:显式括号匹配。colorscheme desert
:选择颜色方案。set enc=utf-8
:设置字符编码方式。set lines=48 columns=96
:设置打开时的窗口大小。set guifont=Monaco:h12
:设置字体和字号。
插件:
- 待补充