vim使用技巧记录
1.查找
'/' + 要找的字符串(正则表达式) + Enter
# 查找偏移
'n': 查找下一个
'N': 查找上一个
大小写敏感性:字符串尾接\c
不敏感,\C
敏感
可以
~/.vimrc
在配置中配置set ignorecase
;还可以配置set smartcase
,在有大写字母时切换回到小写敏感
2.光标移动
文件为单位
# 移至文件首
'gg'
':' + '0' + Enter (命令模式,0改成1也可)
# 移至指定行 num行
num + 'gg'
num + 'G'
# 移至文件尾
'G' (即 Shift + 'g')
':' + '$' + Enter (命令模式)
行为单位
# 移至行首
'0'
'^'
# 移至行尾
num + '$': 移动到当前行起(含)第num行行尾;若num=1可省略
其实直接在.vimrc中设置
set mouse=a
会很舒服(或在已打开的vim中输入:set mouse=a
),就变成鼠标操作了;但我自己在tmux里这样可行,不在tmux中反而失效了,挺怪的没搞清
3.经典文本处理
回退:
'u': 撤销
Ctrl + 'r': 反撤销
粘贴:
'p': 将剪切板内容粘贴到光标选择内容之后
'P': 将剪切板内容粘贴到光标选择内容之前
关于光标和光标选择内容:
命令行里光标总是笼罩着一个字符,但其实应将光标填充块首位置当作光标位置。如是认为:光标指向间隙,不指向字符,只有前后的概念
约定: 光标填充块-光标选择内容;光标填充块首位置-光标位置
复制:
'y' + 左右键: 复制光标前/后的单字符;
'y' + num + 'w': 复制光标后字符为首的num个词(尾部无空白字符);若num=1可省略;
# 分词依据即空格分词
num + 'y' + 'y': 复制光标所在行及以下num行;若num=1可省略;
# 注意行尾的\n(\r\n)。若在行首使用yy并接着按p,会在下方出现一摸一样的一行,下面的那行这其实是被复制行挤下去的
'y' + '0': 复制行首到光标前的内容;
'y' + '$': 复制光标后到行末的内容;
删除:
'd' + 左右键: 删除光标前/后的单字符
'd' + num + 'w': 删除光标后字符为首的num个词;若num=1可省略;
num + 'd' + 'd': 删除光标所在行及以下num行;
'd' + '0': 删除行首到光标前的内容;
'd' + '$': 删除光标后到行末的内容;
很多操作都是对称的,闻一知三
4.可视化选择
可视化模式
v
: 从当前光标选择内容起,按左右键以字符粒度进行选择;当前光标选择字符必定被选中,即不存在选择内容空的情况
V
: 从当前光标选择内容起,按上下键以行粒度进行选择;当前光标选择行必定被选中
按相同的键即可退出
5.批量替换
类似sed的s命令用法
在每行行首加'//'(块注释)
':%s/^/\/\/' + Enter
# '/'需要用'\'转义