Vim中特殊字符的读写详解_Linux

一、查看特殊字符

Vim中可见特殊字符会直接显示,不可见特殊字符会显示为该字符在命令行的输入方式, 例如\r显示为^M。通过:help digraph-table可看到所有Vim中可输入的特殊字符, 该文档的第一页如下:

char digraph hex  dec  official name
^@   NU   0x00  0  NULL  (NUL)
^A   SH   0x01  1  START OF HEADING (SOH)
^B   SX   0x02  2  START OF TEXT (STX)
^C   EX   0x03  3  END OF TEXT (ETX)
^D   ET   0x04  4  END OF TRANSMISSION (EOT)
^E   EQ   0x05  5  ENQUIRY (ENQ)
^F   AK   0x06  6  ACKNOWLEDGE (ACK)
^G   BL   0x07  7  BELL (BEL)
^H   BS   0x08  8  BACKSPACE (BS)
^I   HT   0x09  9  CHARACTER TABULATION (HT)
^@   LF   0x0a  10  LINE FEED (LF)
^K   VT   0x0b  11  LINE TABULATION (VT)
^L   FF   0x0c  12  FORM FEED (FF)
^M   CR   0x0d  13  CARRIAGE RETURN (CR)

第一列为特殊字符,第二列为digraph(见下文),第三列为十六进制表示, 第四列为十进制表示,第五列为该字符的官方名称。

显示当前文件的二进制编码可输入: %!xxd,该命令会替换文件内容!恢复:: %!xdd -r

二、通过digraph输入

Vim中显然没有什么特殊字符选择工具,但提供了两种输入特殊字符的方式:

     1、通过两个字符来输入一个特殊字符(digraph)。

     2、直接通过编码值(ASCII或Unicode)输入。

其中digraph是一种类似双拼的方法,连续输入两个字符来表示一个特殊字符。 需要先按下前导键<Ctrl-K>,例如在编辑模式下输入:

<Ctrl-K>Rg

将会出现字符,其中"Rg"是该字符的digraph(双拼)。 所有的digraph可以通过:help digraph-table查询。

三、通过字符编码输入

除了digraph,还可直接通过字符编码来输入它,该字符不需要在Vim的digraph-table中。 这种方式也是在插入模式下进行的,需要先按下前导键<Ctrl-V> (Windows下<Ctrl-Q>)。

 有下列5种方式:

      十进制值ASCII:^Vnnn (000 <= nnn <= 255)

      八进制值:^VOnnn 或 ^Vonnn (000 <= nnn <= 377)

      十六进制值:^VXnn or ^Vxnn (00 <= nn <= FF)

      十六进制BMP Unicode:^Vunnnn (0000 <= nnnn <= FFFF)

      十六进制任何Unicode:^VUnnnnnnnn (00000000 <= nnnnnnnn <= 7FFFFFFF)

上述操作都是在Unicode字符编码设置下进行的。例如:

<Ctrl-V>065

将会输出A字符,65是它的ASCII编码,而Unicode兼容ASCII。

四、换行的搜索/替换/输入

换行在Vim中的行为很特殊也不够一致,需要单独讨论一下。

首先区分一下\r和\n:

     前者是回车(Carriage Return),在Vim中可通过<c-k>CR输入,显示为^M。

     后者是换行(New Line),在Vim中通过<CR>(回车)键输入,显示为回车并换行;

所以对于Windows风格换行(\r\n)在Vim中会在每行结尾显示^M。

替换

注意使用:s命令替换为换行(New Line)时,应当使用\r(相当于回车键)而不是\n。 例如将所有逗号替换为换行:

:%s/,/\r/g

如果使用\n则目标会被替换为空字符NULL(显示为^@)。

将DOS风格换行(\r\n)的文件转为Unix风格换行(\n)其实很简单,不需要手动查找替换:

:set fileformat=unix
:w

搜索

在搜索模式(/)搜索换行时仍然应当使用\n字符,因为Vim的换行(Unix风格)确实是\n而不是\r\n。例如:

/foo\nbar

可以匹配到所有的:

foo
bar

五、查看不可见字符

除了特殊字符外,ASCII字符中还有大量的不可见字符,例如空格回车制表符等。 这些字符可以通过list变量来控制它们的显示与否:

" 显示隐藏字符
:set list
" 不显示隐藏字符
:set nolist
" 设置显示哪些隐藏字符
:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能有所帮助,如果有疑问大家可以留言交流。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索vim
, 特殊字符
, 替换
, vim特殊字符
查找特殊字符
vim显示特殊字符、vim特殊字符、vim 替换 特殊字符、vim查看特殊字符、vim 查找特殊字符,以便于您获取更多的相关知识。

时间: 2024-09-20 00:49:46

Vim中特殊字符的读写详解_Linux的相关文章

Linux 中 CURL常用命令详解_linux shell

下载单个文件,默认将输出打印到标准输出中(STDOUT)中 curl http://www.centos.org 通过-o/-O选项保存下载的文件到指定的文件中: -o:将文件保存为命令行中指定的文件名的文件中 -O:使用URL中默认的文件名保存文件到本地 # 将文件下载到本地并命名为mygettext.html curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html # 将文件保存到本地并命名

Linux中tail命令用法详解_Linux

tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文件写到标准输出.很多人喜欢使用tail –f 来监控日志文件. 一.Linux tail命令格式 Linux tail命令 格式如下所示 tail [OPTION]... [FILE]... Linux tail命令 参数如下所示 -f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c

centos7中firewall防火墙命令详解_Linux

为了架设ss在vultr上买了一个日本的vps 用的是centos7的系统 防火墙是 firewall 捣鼓了两天 在这里总结一下. 如果小伙伴也准备在vultr上买vps  在注册是 可以使用这个优惠连接http://www.vultr.com/?ref=6972993-3B 会的到 20$ 的优惠  也就可以免费使用4个月 如果你的系统上没有安装使用命令安装 #yum install firewalld //安装firewalld 防火墙 开启服务 # systemctl start fir

Linux中的curl命令详解_Linux

语法 # curl [option] [url] 常见参数: -A/--user-agent <string> 设置用户代理发送给服务器 -b/--cookie <name=string/file> cookie字符串或文件读取位置 -c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中 -C/--continue-at <offset> 断点续转 -D/--dump-header <file> 把header信息

linux中mkdir命令使用详解_Linux

linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录... 2.命令功能: 通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录.要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限.并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写). 3.命令参数

Linux bash Shell中的变量类型详解_linux shell

在Linux系统中进行日常运维或者是编写脚本时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家: 一.bash变量类型: 本地变量 局部变量 环境变量 位置变量 特殊变量(内置) 二.本地变量: varname=value:作用域为整个bash进程可以使用: 变量命名规范: 1. 只能含字母.数字和下划线,并且以字母和下划线开头 2. 最好不要跟系统已有的环境变量重名 3. 见名知意 三.局部变量: local varname=value:作用域为当前

linux中ls命令使用详解_Linux

ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等.ls 命令在日常的linux操作中用的很多! 1. 命令格式: ls [选项] [目录名] 2. 命令功能: 列出目标目录中所有的子目录和文件. 3. 常用参数: -a, –all 列出目录下的所有文件,包括以

linux中rmdir命令使用详解_Linux

本文学习一下linux中命令: rmdir命令.rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的.(注意,rm - r dir命令可代替rmdir,但是有很大危险性.)删除某目录时也必须具有对父目录的写权限. 1.命令格式: rmdir [选项]... 目录... 2.命令功能:该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限. 3.命令参数:- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除.如果整个路径

linux中pwd命令使用详解_Linux

Linux中用 pwd 命令来查看"当前工作目录"的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. 1.命令格式:  pwd [选项] 2.命令功能:  查看"当前工作目录"的完整路径 3.常用参数: 一般情况下不带任何参数 如果目录是链接时: 格式:pwd -P  显示出实际路径,而非使用连接(link)路径. 4.常用实例:        实例1:用 pwd 命