启动时间分布
vim --startuptime vim.log
执行当前vim脚本的代码
使用@命令,@命令用于执行寄存器中的vim命令,把当前代码copy到寄存器 {0-9a-z".=*+}
,再使用@{0-9a-z".=*+}
执行寄存器的内容。
删除行尾的^M:%s/
//g
重复Ex命令
.
Repeat last change, with count replaced with [count].
@:
Repeat last command-line [count] times
列编辑模式
删除列
1.光标定位到要操作的地方。
2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行。
3.d 删除。
插入列
插入操作的话知识稍有区别。例如我们在每一行前都插入"() ":
1.光标定位到要操作的地方。
2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行。
3.SHIFT+i(I) 输入要插入的内容。
4.ESC 按两次,会在每行的选定的区域出现插入的内容。
格式化json 文件
%!python -m json.tool
在wq保存时发现权限不足
这时候输入以下命令解决,(w 后面有空格)
w !sudo tee %
命令解析:
w !{cmd} 指示 保存时执行额外命令;
tee 用于将输入定位到文件或管道,%指当前管道。
vim的next 命令
vim的grep
:grep xxx -r dir
然后输入
:copen
就能看到结果了,切换到 quickfix list,选择要查看的指定文件,然后回车即可
vim 查找相同的两行,以及删除重复行
要查找相同的两行,先将内容排序,然后查找前一行等于后一行者
:sort
/^(.+)$
1
删除重复行(先排一下序):
:sort
:g/^(.+)$
1/d
用VIM设置UTF-8编码的BOM标记
- 去掉BOM标记:
:set nobomb
- 加上BOM标记:
:set bomb
- 查询当前UTF-8编码的文件是否有BOM标记:
:set bomb?
- 更高级一点的:
:%!xxd "以16进制模式打开文件
:%!xxd -r "将以16进制格式打开的文件返回文本模式编辑
所以,先用第一个命令将文件以16进制打开,删除文件开头的EF BB BF,然后再用第二个命令返回文本模式。
解决linux下vim乱码的情况:(修改vimrc的内容)
全局的情况下:即所有用户都能用这个配置
文件地址:/etc/vimrc
在文件中添加:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
命令模式下粘贴寄存器内容
vim中,复制一些内容就是将内容放到寄存器里。
而在命令模式下粘贴寄存器的内容方法是CTRL-R加寄存器的名字。
复制之后的内容一般在寄存器"中。
举例说明:
比如visual模式下复制了内容:aaabbb。
然后希望替换这些内容,于是输入命令:%s/
这个时候使用Ctrl-R在按",那么复制的内容就会出现在命令行中。
shell脚本执行错误 $' ':command not found
存现这种错误是因为 编写的 shell脚本是在win下编写的,每行结尾是 的Unix 结果行是 所以在Linux下运行脚本 会任务 是一个字符,所以运行错误,需要把文件转换下
方法一、
sed -i 's/ //' 脚本名
方法二、
yum -y install dos2unix
dos2unix 脚本名