1.vim

1.vim

一 概述

2 历史

参考:

  1. vim的由来:https://pragmaticpineapple.com/how-did-vim-become-so-popular

3 常识

3.1 .swp文件

使用vim编辑文件实际是先 copy 一份临时文件并映射到内存给你编辑, 编辑的是临时文件, 当执行:w后才保存临时文件到原文件,执行:q后才删除临时文件。但如果没删除临时文件,每次启动vim都会检索是否有临时文件, 有则询问如何处理。

临时文件生成的原因:

  1. 没有退出vim就关闭了shell

  2. 手动生成,比如有文件a.txt,手动生成应该是.a.txt.swp

  3. ...

二 安装配置

4 配置

vimrc的设置说明:

  1. fileencoding:磁盘文件的字符编码。存放在磁盘上的文本文件,是按照一定的字符编码进行保存的,不同的文件可能使用了不同的字符编码。

  2. encoding:VIM缓冲区以及界面的字符编码。VIM运行时,其菜单、标签、以及各个缓冲区统一使用一种字符编码方式。

  3. termencoding:终端使用的字符编码。终端同一时刻只能使用一种字符编码,并按照这种编码从接收到的字节流中识别字符,并显示,终端的字符编码是可以动态调整的。

vim读、显、存分析:

  1. 读文件:VIM打开文件时,并不知道文件的字符编码,所以不得不进行探测。探测是按照一定的优先顺序进行测试。依据的标准就是:fileencodings。VIM逐一测试fileencodings变量指定的字符编码方式,直到找到认为合适的然后把这种字符编码方式设置为fileencoding变量。然后把文件中的编码转换成encoding指定的编码方式,存入文件缓冲区中。

  2. 显示文件:vim把文件读取完毕并以encoding编码存放到缓冲区内存之后,会根据termencoding指定的终端编码方式,转换成termencoding编码后,写入到终端。此时,终端按照自身的编码属性识别出一个个的字符,调用渲染引擎绘制到屏幕上。

  3. 保存文件:VIM把缓冲区中的encoding编码的字节集合转换成fileencoding编码后写入磁盘,完成文件保存。

可以看出,VIM涉及到的3种字符编码之间的转换: 读:fileencoding—–> encoding 显:encoding ——> termencoding 写:encoding ——-> fileencoding

只要这三种转换都不会出现问题,那么VIM就可以正常工作,不会出现乱码。 然而,并不是所有的字符编码之间都能够无损转换,例如GBK字符编码转换为ASCII编码时,由于ASCII并不能完全包含GBK的字符,所以会出现问题。

所以最佳设置可以是(待研究):

三 基础

1 基本操作

  1. 命令模式中光标移动

    1. 上下左右k j h l

    2. 移动到第一行gg,移动到最后一行G

    3. 移动到行首^(shift+6),行尾$(shift+4)

  2. 查看命令历史q:,可以对命令历史进行编辑,按回车则执行选中的命令。

  3. 显示行号:set numberor:set nu

  4. 查找::/strA

  5. 删除一行dd,批量删除:比如:2,18d,删除2到18行

七 未整理

Last updated

Was this helpful?