vim笔记

前言

老规矩,先上干货

vim手册

vim的三种模式

  1. 输入模式,键入iao都可以进入输入模式

  2. 普通模式,打开vim默认的模式

  3. 命令模式,键入 : 进入命令模式

按下 ESC 可以从输入模式命令模式退回到普通模式

退出 vim ,需要在普通模式下切换到命令模式:

  1. q 无修改的情况下,直接退出

  2. q! 有修改的情况下,不保存退出

  3. wq 有修改的情况下,保存并退出

vim 配置

编辑 .vimrc 文件:vim .vimrc

"语法高亮
set syntax=on
"自动缩进
set autoindent
"Tab键的宽度
set tabstop=4
"显示行号
set number
"高亮显示匹配的括号
set showmatch
"快速插入文本, o表示换行输入
"map <keymap> oContent
"例子:快速打印一行日志,命令模式输入'dz',将会输出 Bd_Log::warning("==dz==>".var_export($,true)); 光标停在 $ 符号后面
map dz oBd_Log::warning("==dz==>".var_export($,true));<ESC>F$1li

编辑完成后,source .vimrc使配置生效

光标移动

普通模式下

单词间移动

(分隔符为非英文)

  1. w移动光标到下一个单词的词首

  2. b 移动光标到上一个单词的词首

  3. e移动光标到下一个单词的结尾

  4. ge移动光标到上一个单词的结尾

(分隔符为空格)

  1. W 移动光标到下一个单词的词首word

  2. B 移动光标到上一个单词的词首begin

  3. E 移动光标到下一个单词的结尾end

行内移动

^ 移动到行首

$ 移动到行尾

行移动

  1. :行号 跳转到相应的行首

  2. 行号gg 跳转到相应的行首

  3. gg 跳转到文件第一行

  4. shift + g 跳转到文件最后一行

翻页操作

  1. Ctrl + f:向后翻一页(forward)

  2. Ctrl + b:向前翻一页(backward)

  3. Ctrl + d:向后翻半页(down)

  4. Ctrl + u:向前翻半页(up)

调整页面布局

  1. zz:让当前行居中显示,方便浏览上下文

  2. zt:让当前行显示在最上方,方便浏览后面的内容(t 表示 top)

  3. zb:让当前行显示在最下方,方便浏览前面的内容(b 表示 bottom)

匹配括号

光标提留在括号上,包括( {}[]() ),键入%,将会跳转到匹配的括号上

文本编辑

o 进入输入模式,并从下一行进行编辑

ia 进入输入模式,从当前光标位置进行编辑

I 从光标所在行的行首进行编辑

A 从光标所在行的行尾进行编辑

dd 快速删除一行,其实这个命令本质上是剪切

5dd 快速删除5行

p 粘贴

yy 复制

5yy 复制5行

u 撤销上一次修改

diw: 删除一个单词(word)

ca":删除双引号内的文本并编辑(包含双引号自身)

yi":复制双引号内的文本(不包含双引号自身)

dtx:向右删除,直到遇到遇到字符 x(不包含 x)

搜索与替换

普通模式或命令模式下

/pattern 搜索一个文本,不区分大小写

/pattern\C 搜索一个文本,区分大小写

:范围s/oldpattern/newpattern/替换模式 替换

# 比如:把第 1 - 10 行中所有的 hello 换成 hallo
:1,10s/hehe/haha/g
# % 表示 1,$的范围,也就是整个文件的范围
:%s/hehe/haha/g
# g 表示全部替换,假如不加g的话,只替换1次

大小写切换

  1. guu 当前行全部小写,gUU 当前行全部大写

  2. ~ 当前光标下的字符切换大小写, 3~ 当前光标下后面三个字符切换大小写

  3. guiw 当前单词全部小写,gUiw 当前单词全部大写

  4. g~iw 当前单词每个字符大小写交换

列操作

Ctrl + V 进入列操作模式,此时可以选择要操作的行

ec 删除所选单词,并进入编辑模式

ESC 退出编辑模式,并且编辑后的改动作用于选中的行