Vim使用技巧(持续更新)
好记性不如烂笔头,在这里记录一些Vim使用技巧
vim配置
"拷贝同步到系统剪切板"
set clipboard=unnamed
"显示行号"
set nu
"语法高亮"
syntax on
"显示TAB"
:setlocal list
"搜索结果高亮"
set hlsearch
"默认进行大小写不敏感查找"
set ignorecase
"如果有一个大写字母,大小写敏感查找"
set smartcase
1. 批量替换字符串
基本语法
:[addr]s/源字符串/目的字符串/[option]
[addr] 表示检索范围,省略时表示当前行。
“1,20” :表示从第1行到20行;
“%” :表示整个文件,同“1,$”;
“. ,$” :从当前行到文件尾;
s : 表示替换操作
[option] : 表示操作类型
g 表示全局替换;
c 表示进行确认
p 表示替代结果逐行显示(Ctrl + L恢复屏幕);
省略option时仅对每行第一个匹配串进行替换;
如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义 如 \t
全局替换语法
:%s/源字符串/目的字符串 /g
全局替换例子
将空格替换为换行符
按行替换例子
将6和7行的空格替换为换行符
2. 在多行首部/尾部添加字符串
基本语法
:[addr]s/标识/目的字符串
标识部分 ^标识行首 $标识行尾
行首增加字符例子
3. 查找文本
快捷键 | 功能描述 |
:/abc | 从光标所在位置向前查找字符串 abc |
:/^abc | 查找以 abc 为行首的行 |
:/abc$ | 查找以 abc 为行尾的行 |
n | 向同一方向重复上次的查找指令 |
N | 向相反方向重复上次的查找指定 等同shift+n |
\c | 大小写不敏感 |
\C | 大小写敏感 |
:noh | 取消高亮 |
4. 光标移动
快捷键 | 功能描述 |
gg | 移动到第一行 |
G | 移动到最后一行 等同shift+g |
^ | 移动到当前行第一个非空字符 |
| | 移动到当前行行首 |
$ | 移动到当前行行尾 |
k | 向上移动 |
j | 向下移动 |
h | 向左移动 |
l | 向右移动 |
nw |
由标点符号来区分的单词 向后移动到第n个单词的词首,不填默认下一个 |
ne |
由标点符号来区分的单词 向后移动到第n个单词的词尾,不填默认下一个 |
nb |
由标点符号来区分的单词 向前移动到第n个单词的词首,不填默认下一个 |
nW nE nB | 用空格来分隔单词,适合代码的移动 |
组合操作举例
全选复制: ESC->gg->v->shift+g->$->y
解释:gg移动到第一行,v进入视图模式,shift+g移动到最后一行,$移动到最后一行行尾,y复制所选内容
5. 文本插入
快捷键 | 功能描述 |
i | 在光标之前插入 |
I | 在当前行第一个非空白字符后插入 |
a | 在光标之后插入 |
A | 在当前行行尾巴插入 |
o | 当前行后新增一行并进入编辑模式 |
O | 当前行前新增一行并进入编辑模式 等同shift+o |
组合操作举例
在文件末尾新增一行插入: ESC->shift+g->o
6. 翻页跳转
快捷键 | 功能描述 |
ctrl+d | 向后翻半页 |
ctrl+u | 向前翻半页 |
ctrl+f | 向后翻一页 |
ctrl+b | 向前翻一页 |
7. 分屏操作
"水平分割窗口"
vim -o file1 file2
"垂直分割窗口"
vim -O file1 file2
快捷键 | 功能描述 |
ctrl+w+w | 切换到下一个窗口 |
ctrl+w+p | 切换到上一个窗口 |
ctrl+w+h(l,k,j) | 切换到左(右,下,上)的窗口 |
:set scrollbind 简写 :set scb | 设置当前窗口和其它窗口同步滚动 |
:set noscrollbind 简写 :set noscb | 取消当前窗口和其它窗口的同步滚动 |
:windo set scrollbind 简写 :windo set scb | 所有窗口同步滚动 |
:windo set noscrollbind 简写 :windo set noscb | 取消所有窗口的同步滚动 |
:close 或者 ctrl+w+q | 关闭当前窗口 |
:sp 文件名 | 水平分屏 |
:vs 文件名 | 垂直分屏 |
ctrl + w + = | 所有窗口大小恢复均等 |
ctrl + w + shift +/- | 上下分屏的窗口大小调整 水平分屏 |
ctrl + w + shift </> | 左右分屏的窗口大小调整 垂直分屏 |