Linux学习笔记:vim

本文更新于2024-02-04。

说明:下文中,使用{}引起表示自定义变量,根据实际情况填写。使用[]引起表示内容可选,使用<>引起表示按键内容。(+)表示按键组合

模式

vim包括几种模式:

  • 命令模式:刚进入vim的模式为命令模式。命令模式可与其他模式切换。其他模式返回命令模式需按下<Esc>。
  • 插入模式:界面左下方有“-- INSERT --”提示。
  • 替换模式:界面左下方有“-- REPLACE --”提示。
  • 可视模式:界面左下方有“-- VISUAL --”、“-- VISUAL LINE --”或“-- VISUAL BLOCK --”提示。
  • 底行模式:底行模式需使用<Enter>结束输入。
按键 说明
ZZ 如文件有改动,则保存文件后退出vim;如文件没有改动,则直接退出vim
<Ctrl>(+)wq 退出当前窗口
0 光标移动至该行第一个字符
$ 光标移动至该行最后一个字符
<Home> 光标移动至该行第一个字符
<End> 光标移动至该行最后一个字符
[{N}]← 光标向左移动N个字符,默认为一个字符
[{N}]↓ 光标向下移动N行,默认为一行
[{N}]↑ 光标向上移动N行,默认为一行
[{N}]→ 光标向右移动N个字符,默认为一个字符
[{N}]h 光标向左移动N个字符,默认为一个字符
[{N}]j 光标向下移动N行,默认为一行
[{N}]k 光标向上移动N行,默认为一行
[{N}]l 光标向右移动N个字符,默认为一个字符
[{N}]<Space> 光标向右移动N个字符,默认为一个字符
[{N}]<Enter> 光标向下移动N行至其第一个字符,默认为一个行
[{N}]w 光标向右移动N个单词至其第一个字符,默认为一个单词
- 光标移动到非空格的上一行
+ 光标移动到非空格的下一行
<Page Up> 光标向上移动一页
<Page Down> 光标向下移动一页
<Ctrl>(+)b 光标向上移动一页
<Ctrl>(+)f 光标向下移动一页
<Ctrl>(+)u 光标向上移动半页
<Ctrl>(+)d 光标向下移动半页
H 光标移动至此屏幕第一行的第一个字符
M 光标移动至此屏幕中间行的第一个字符
L 光标移动至此屏幕最后一行的第一个字符
gg 光标移动至文件第一行的第一个字符
[{N}]G 光标移动至文件的第N行的第一个字符,默认为最后一行
<Ctrl>(+)wj 光标移动至下面的窗口
<Ctrl>(+)w↓ 光标移动至下面的窗口
<Ctrl>(+)wk 光标移动至上面的窗口
<Ctrl>(+)w↑ 光标移动至上面的窗口
[{N}]X 剪切光标前N个字符,默认为一个字符
[{N}]x 剪切光标所在字符起后N个字符,默认为一个字符
d0 剪切光标前一个字符至该行第一个字符
d$ 剪切光标所在字符至该行最后一个字符
[{N}]dd 剪切光标所在行开始的N行,默认为一行
d1G 剪切光标所在行至第一行
dG 剪切光标所在行至最后一行
d 剪切反白选择的字符
y0 复制光标前一个字符至该行第一个字符
y$ 复制光标所在字符至该行最后一个字符
[{N}]yy 复制光标所在行开始的N行,默认为一行
y1G 复制光标所在行至第一行
yG 复制光标所在行至最后一行
y 复制反白选择的字符
P 粘贴,如粘贴行则粘贴在当前行上一行
p 粘贴,如粘贴行则粘贴在当前行下一行,可黏贴矩形文本块
J 将光标所在行与下一行合并至同一行
u 撤销上一个操作
U 撤销当前行最近的所有操作
<Ctrl>(+)r 重做上一个撤销的操作
. 重复上一个操作
n 重复底行模式输入的前一个查找操作
N 反方向重复底行模式输入的前一个查找操作
r 使用下一个输入的字符替换光标所在字符,只替换一次
R 进入替换模式,一直替换光标所在字符直至输入<Esc>,期间可移动光标
[{N}]c 进入插入模式,并向指定方向剪切N个字符或N行,DIRECTION可为←、↓、↑、→、h、j、k、l
i 进入插入模式,从光标所在字符处开始插入
I 进入插入模式,从光标所在行第一个非空白符处开始插入
a 进入插入模式,从光标所在字符的下一字符处开始插入
A 进入插入模式,从光标所在行最后一个字符后开始插入
o 进入插入模式,在光标所在行下一行插入新行
O 进入插入模式,在光标所在行上一行插入新行
v 进入可视模式,多字符选择,反白选择光标经过的连续字符
V 进入可视模式,多行选择,反白选择光标经过的连续行
<Ctrl>(+)v 进入可视模式,块选择,反白选择光标移动开始和移动结束位置间的矩形文本块
/ 进入底行模式,向下查找WORD
? 进入底行模式,向上查找WORD
:n 进入底行模式,编辑下一个文件
:N 进入底行模式,编辑上一个文件
:files 进入底行模式,列出打开的所有文件
:sp [{FILENAME}] 进入底行模式,打开新窗口。如不指定FILENAME则使用当前窗口相同的文件
:set 进入底行模式,修改vim设置
:[{N},{M}]s/{OLD}/{NEW}/g[c] 进入底行模式,将N(含)至M(含)行的OLD替换为NEW,M使用$表示最后一行。默认为当前行。可使用c指定替换前需要提示确认
:r 进入底行模式,读取指定文件内容并插入至光标所在行的下一行
:[{N},{M}] w 进入底行模式,将文件内容保存至指定文件,可指定N(含)至(M)行
:w[!] 进入底行模式,保存文件。可使用!强制保存文件,但实际能否保存仍与文件权限有关
:q[!] 进入底行模式,退出vim或退出当前窗口。可使用!强制退出,不保存文件
:wq[!] 进入底行模式,保存文件后退出vim。可使用!强制保存后退出,但实际能否保存仍与文件权限有关
:![ ] 进入底行模式,暂时离开vim,执行Linux命令

.vimrc

vim配置。每行一个配置值,可以:开始,可使用"注释该行后面的内容。

设置 说明
set 显示所有与默认值不同的设置
set all 显示当前所有设置
set autoindent 自动缩进
set backspace=N 设置编辑模式下退格键的动作。2可以删除任何字符,0和1只能删除刚刚输入的字符,无法删除已存在的字符
set backup 自动备份文件。即当文件有任何改动时,原文件会在文件所在目录下备份为FILENAME~
set bg=dark|light 指定背景色调
set hlsearch 高亮查找结果
set mouse=MODE 设置鼠标模式。a为所有模式,c为命令行模式,i为插入模式,n为普通模式,v为可视模式
set mouse-=a 鼠标可选择文本,而不是进入可视模式
set noautoindent 取消自动缩进
set nohlsearch 取消高亮查找结果
set nonu 取消显示行号
set nu number
set paste 粘贴时不自动缩进
set ruler 显示右下角的提示
set showmode 显示左下角的提示
syntax on|off 开启/关闭语法高亮

这是笔者常用的配置:

set backspace=2
set showmode

.viminfo

记录vim的历史操作。

.swap

使用vim打开文件后,会在文件所在目录下生成.FILENAME.swap文件。

posted @ 2019-07-23 19:48  garvenc  阅读(336)  评论(0编辑  收藏  举报