vim
导航
set t_vb= # 防止屏幕闪烁
插入
i, I插入,开头插入o, O 换行插入, 上一行插入
a, A 字符后面插入, 行尾插入
s, S 删除当前字符插入, 删除当前行插入
缩进
ctrl+v 5>把一行代码右移5层缩进>}段落之后的行缩进>ap段落缩进
选择
ci'、ci"、ci<、快速更改
di'、di"、di( 快速删除
da', da", da( delete all '这个就是包括两边进行删除了
V, v 列选择, 行选择yaw, yiw 也适用,把单词当作括号处理
光标移动
h, j, k, l 左下上右移动
W, w 前进一个单词(大写忽略标点)
E, e 前进到一个单词的最后一个字母(大写忽略标点)
R, r replace替换一个字母(大写替换至你按esc)
T, t 找到指定的字母, 不移动到单词位置(大写往后找)
f, F 向前(向后)找到指定的字母, 移动到单词位置 n; 按照上次查找继续查找n次 n, 按照上次查找反方向查找n次
B, b 后退一个单词(大写忽略标点)
g, G 移动到指定行数(大写最后一行)
H(ead), M(iddle), L(ow) 移动到屏幕位置
移动到制定列 n|
#*找到当前位置单词的上一个/下一个
屏幕移动
下一行 ctrl + E
上一行 ctrl + Y
z + z把光标行移动到行中z + t把光标行移动到topz + b把光标行移动到bottom
折叠
zv 查看此行(展开到当前行。用于查看日志,跳转到行数后直接展开)
折叠 zc
折叠当前范围 zC
打开折叠 zo
打开当前最大折叠 zO
折叠文件 zm
折叠文件到最高层 zM
打开文件 zr
打开所有折叠 zR
正则匹配
搜索
使用
/按键来进行搜索.搜索结束后输入:noh来关闭高亮:%s/pattern//ng来查看出现次数 n代表不替换
替换
位置的选择
:s 当前行
:%s 所有行
:5,12s 第5行到第12行
:.,-12s 当前行到上面12行
:g/^bar/s 找前三个字母为
baz的行进行替换
示例
:%s/old/net/gc
:%s/\s\+$// # 删除行末的空格
:100,200s/old/new/gc # 只替换100行到200行的数据
正则
规则:
数量:
\d\{1,3},\+代码块:
\(pattern\)使用代码块:
\1大小写:
\c: ignore case\Cmatch case
案例:
删除某一类错误:
\[ERROR\]\(.*\n\)\{1,6\}AttributeError:.*\n删除多余的空行:
:.,+12s/\ \+\n/\r/g
跳转
[ i查看上一次的用法[ ctrl i跳转到上面的定义] ctrl i跳转到下面] i查看下一次的用法g; g, \,` 跳转到上一次/下一个/最后一次编辑的地方函数, 变量的跳转 [ + ctrl + i
ctrl + O跳转到上次位置ctrl + I跳转到下次位置{ }, [[, [{, [(段落前后跳转
多窗口
^ws 拆分窗口
^wv 垂直拆分窗口
^ww 切换窗口
^wq 退出窗口
切换尺寸
:(vertical) res +5ctrl + w +-|+|<|>``ctrl-wK# 切换表格为水平分割还是竖直分割ctrl-wH
编辑
x, X 删除(左边,右边)一个字符
d, D 删除
D 删除到行末
dw, d$, dd 删除单词, 末尾, 一行
dfx 删除到某个字符
dtx 删除到某个字符, 不包括这个字符
u 撤销操作
U 回滚上次编辑的行的数据
复制到剪切板
"[a-z0-9|+|*]yy复制到制定的剪切板 +为系统剪切板,需要安装vim-gnome
粘贴剪切板
p, P 后面粘贴, 前面粘贴
"[a-z0-9|+|*p粘贴剪切板的内容。
参考
宏
输入
q进入命令模式输入
a-z0-9选择宏的命名持续性操作, 知道按
q退出输入
@+命名执行录制的宏
插件
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
:PluginInstall
mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim