跳转文件
gf 从当前窗口打开那个文件的内容,操作方式:让光标停在文件名上,输入gf。
Ctrl+o 从打开的文件返回之前的窗口
Ctrl+w+f 可以在分割的窗口打开跳转的文件,不过在我的实验不是次次都成功。
统一行尾格式
文本文件里存放的是用行结束符(EOL,即 End of Line)隔开的文本行,二进制文件里则没有这样的明确分隔符。一个文本文件由多行构成,每一行都以一个行结束符(EOL)结束。
ASCII编码表的头32个字符和最后一个字符是控制字符。如LF和CR字符就是行结束符。
-
Unix格式
在 Unix 或类Unix上,这个 EOL 在存盘时使用的字符是 LF,编码值是 10(U+000A)。 -
DOS格式
在Windows上,行尾就不只使用 LF 这一个字符了,在 LF 前面会多一个 CR,编码值为 13(U+000D)。这个用法的来源是以前的打字机,CR 表示机架归位(carriage return),LF 表示换行(line feed)。在使用 CR LF 作为行结束符的系统里,CR 只负责光标回到第一列,而 LF 负责光标向下一行。 -
老的Mac格式
老的 Mac 则使用单个 CR 字符作为行结束符,但苹果从 Mac OS X(2001 年)开始就使用了 Unix 风格的行结束符。
:e ++ff=dos 强制以 DOS 行尾加载文件,此时文件的行尾格式是 dos
:%s/\r$// 删除行尾多余的 CR 字符,此时文件的行尾格式保持 unix 不变
注意:
在Unix或类Unix上,文本文件的任何一行都以行结束符终结,包括最后一行。使用 Vim 编辑的文本文件,最后一个字符通常是 LF(除非使用 Mac 行尾风格,则结尾是 CR)。
而在Windows 上大部分文本编辑器则允许最后一行不以行结束符结束。这样的文件在 Vim 打开时,Vim 默认会给出一个“[noeol]”的提示。在存盘时,Vim 则会自动在最后添加一个行结束符。
编辑二进制文件
Vim也可以用来编辑二进制文件。
vim -b 二进制文件
入vim后,通过命令打开:
:e ++binary 二进制文件
用以上命令来打开二进制文件时,binary 选项会自动被设置。这个选项保证了,Vim 在读取和存储文件时,不会做会影响文件内容的转换和修改。
不过,即使有这个选项,二进制文件打开后仍然是一堆乱码。可以利用 Vim 的 Tools(工具)菜单下的“Convert to HEX”(转换成十六进制)和“Convert Back”(转换回)两项,来对二进制文件进行编辑。我安装的MacVim有这个功能,应该其他的GUI也会有:
如果你要把修改写回硬盘的话,一定要先使用“Tools > Convert Back” 。