1.vim
1.vim
一 概述
2 历史
参考:
vim的由来:https://pragmaticpineapple.com/how-did-vim-become-so-popular
3 常识
3.1 .swp文件
使用vim编辑文件实际是先 copy 一份临时文件并映射到内存给你编辑, 编辑的是临时文件, 当执行:w
后才保存临时文件到原文件,执行:q
后才删除临时文件。但如果没删除临时文件,每次启动vim都会检索是否有临时文件, 有则询问如何处理。
临时文件生成的原因:
没有退出vim就关闭了shell
手动生成,比如有文件
a.txt
,手动生成应该是.a.txt.swp
...
二 安装配置
4 配置
vimrc的设置说明:
fileencoding
:磁盘文件的字符编码。存放在磁盘上的文本文件,是按照一定的字符编码进行保存的,不同的文件可能使用了不同的字符编码。encoding
:VIM缓冲区以及界面的字符编码。VIM运行时,其菜单、标签、以及各个缓冲区统一使用一种字符编码方式。termencoding
:终端使用的字符编码。终端同一时刻只能使用一种字符编码,并按照这种编码从接收到的字节流中识别字符,并显示,终端的字符编码是可以动态调整的。
vim读、显、存分析:
读文件:VIM打开文件时,并不知道文件的字符编码,所以不得不进行探测。探测是按照一定的优先顺序进行测试。依据的标准就是:fileencodings。VIM逐一测试fileencodings变量指定的字符编码方式,直到找到认为合适的然后把这种字符编码方式设置为fileencoding变量。然后把文件中的编码转换成encoding指定的编码方式,存入文件缓冲区中。
显示文件:vim把文件读取完毕并以encoding编码存放到缓冲区内存之后,会根据termencoding指定的终端编码方式,转换成termencoding编码后,写入到终端。此时,终端按照自身的编码属性识别出一个个的字符,调用渲染引擎绘制到屏幕上。
保存文件:VIM把缓冲区中的encoding编码的字节集合转换成fileencoding编码后写入磁盘,完成文件保存。
可以看出,VIM涉及到的3种字符编码之间的转换: 读:fileencoding—–> encoding 显:encoding ——> termencoding 写:encoding ——-> fileencoding
只要这三种转换都不会出现问题,那么VIM就可以正常工作,不会出现乱码。 然而,并不是所有的字符编码之间都能够无损转换,例如GBK字符编码转换为ASCII编码时,由于ASCII并不能完全包含GBK的字符,所以会出现问题。
所以最佳设置可以是(待研究):
三 基础
1 基本操作
命令模式中光标移动
上下左右
k j h l
移动到第一行
gg
,移动到最后一行G
移动到行首
^
(shift+6
),行尾$
(shift+4
)
查看命令历史
q:
,可以对命令历史进行编辑,按回车则执行选中的命令。显示行号
:set number
or:set nu
查找:
:/strA
删除一行
dd
,批量删除:比如:2,18d
,删除2到18行
七 未整理
Last updated
Was this helpful?