颜色设置

1、修改颜色

  1. # 在~目录新建文件: vi .vimrc
  2. set nu
  3. colorscheme desert
  4. set tabstop=2
  5. #每一级缩进的长度为2个空格
  6. set shiftwidth=2

2、移动多行:

  1. # 剪切 n+dd
  2. # 粘贴 p

3、多行缩进: :m,n > (右缩)

跳转与缩进

w/W 正向移动一个单词
e/E 正向移动到下一个单词的词尾
b/B 反向移动一个单词
ge 反向(同b/B)
gg 文本首行
12gg 移动到12行
G 文本末尾
《数字》gg 跳转到指定行
>> 右缩进
<< 左缩进
:m,n> 例如 :1,5> m到n行右缩进
:m,n< 例如 :1,5< m到n行左缩进
:m>n 例如 :3>3 从第三行开始右缩进3行

删除、复制、粘贴

delete 剪切
yank 复制
put 粘贴
u 撤销
ctrl+r 恢复
yw 复制当前光标单词
p/P 粘贴到光标前/光标后
yy 复制一整行
dd 删除一整行
ndd 删除n行
xp 调换字符位置
dw 删除当前光标单词
5dw 删除正向单词5次
d$ 删除到行末尾
d^ 删除到行首
d{hjkl}

寄存器

查看寄存器里的存储值: :reg

默认寄存器 “”
复制寄存器 “0
剪切寄存器 “1
有名寄存器 “a “b “c
黑洞寄存器 “_

修改、查找与替换

~ 单个字符大小写转换
g~w 单词大小写转换
. 对上一个动作重复
g~$ 或者 g~~ 对整行大小写转换
gUw 或者 guw 对单词大小 对单词小写 (常用)
f/F 正向/反向查找 字符
df+字符 删除光标到查找字符间的 字符
/单词 通过n向下查找,N向上查找
:s/old/new/g 替换:substitutions 替换整行
:%s/old/new/g 全局替换
cw 修改:change 修改单词

缓冲区

用于临时存放vim打开过的文件

缓冲区列表

:files :buffers :ls

1: 缓冲区序列号 %a——指示状态 mysql.conf: 文件名 1:光标位置

2019-03-29 21-30-53屏幕截图.png

:bn[ext] buffer next 切换到下一个缓冲区
:bp[revios] 切换到上一个缓冲区
:bf[irst] 切换到第一个缓冲区
:bl[ast] 切换到最后一个缓冲区
:ball 编辑所有缓冲区
qall! 退出所有缓冲区
wall! 写入全部缓冲区
badd 文件名 新增缓冲区
bd 文件名 删除缓冲区

总结: 核心是 :ls :bn :bp

多窗口操作

分屏

vim -O/on 打开:open 垂直(左右)/水平(上下) n:数字
ctrl+w c/q 关闭当前窗口 / 最后一个窗口时退出
ctrl+w s 上下分割当前打开的文件
ctrl+w v 左右分割当前打开的文件
:sp 新文件名 上下分割,打开新文件
:vsp 新文件名 左右(垂直)分割,打开新文件名
ctrl+w hjkl 上下左右移动
ctrl+w +- 增加/减少高度
ctrl+w = 让所有屏的高度一致

文本对象和宏

viw
vaw
vis
vas
va{
va}
vi{
vi}

用宏来注释

步骤:

  1. 定位到第一个字母,qa开启宏录制
  2. i进入插入模式,输入#
  3. esc退出编辑模式
  4. j向下一行
  5. q退出宏录制
  6. 10@a——执行10次宏操作(即注释

可视化模式

v 面向字符
V 面向行
Ctrl+v 面向列块
gv 选中上一次的块
r+字符 替换
c ——change
ctrl+v 3j $ A end esc 选择块->向下选择3行->选择到块尾->A进入插入模式

示例

删除包含特定关键字的所有行: :g/keyword/d
查找替换: :%s/find/replace/g
去掉行首空格: :%s/^\s*//g
行首添加: :%s/^/word//g
行尾添加: :%s/$/word/g
查找多个单词并删除: :%s/private\|String\|Boolean//g | 要转义
去掉所有空格: :%s/\s*//g

^代表行首
\s代表空格和tab
+代表匹配一个或多个
$匹配行尾

两个文件按列合并

paste one.txt twxo.txt
image.png

常用快捷键:

U: 撤销
Ctrl+R: 前进

行首: shift+^
行尾: shift+$