Linux上是否有文本编辑器允许我查看换行符和回车符?Vim支持这个特性吗?


假设你的vim设置为:set listchars=…设置为可视化您试图看到的字符,在这种情况下,回车字符(输入CTL + V, CTRM + M)—否则,正如这个答案的许多评论所报告的那样,^M字符将不会显示在:set list

:set list在Vim中将显示空白。行尾显示为'$',回车通常显示为'^M'。


vi通过显示下一行的后续文本来显示换行符(LF字符,代码x0A)。

二进制模式使用-b开关。例如,vi -b filename或vim -b filename——。

然后它将显示CR字符(x0D),这些字符通常不用于Unix风格的文件,作为字符^M。


不同意官方答案:

:set list不会显示^M个字符(CRs)。将-b选项提供给vi/Vim可以工作。或者,一旦加载了Vim,输入:e++ ff=unix。


试试下面的命令。

:set binary

在Vim中,这应该与使用“-b”命令行选项所做的事情相同。如果你把它放在你的启动文件(例如,.vimrc)中,它将永远为你而存在。

在许多*nix系统上,有一个"dos2unix"或"unix2dos"命令可以处理文件并纠正任何可疑的行结束问题。如果行结束符没有任何问题,则不会更改文件。


我建议您编辑您的.vimrc文件,以运行命令列表。

编辑你的.vimrc文件,像这样:

cat >> ~/.vimrc <<EOF
set ffs=unix
set encoding=utf-8
set fileencoding=utf-8
set listchars=eol:¶
set list
EOF

当你执行Vim时,.vimrc文件中的命令被执行,你可以看到这个例子:

My line with CRLF eol here ^M¶

只是为了澄清为什么:set list不会将CR显示为^M,没有e++ ff=unix,以及为什么:set list与^M无关。

在内部,当Vim将文件读入缓冲区时,它用自己的表示(让我们称之为$'s)替换所有的行结束字符。为了确定应该删除哪些字符,它首先检测文件中存储的行结束符的格式。如果只有CRLF '\r\n'或只有CR '\r'或只有LF '\n'行结束字符,则'fileformat'将分别设置为dos, mac和unix。

当设置了list选项时,无论检测到什么文件格式选项,Vim都会在换行时显示$ character。它使用自己的内部换行表示,这就是它所显示的内容。

现在,当您将缓冲区写入磁盘时,Vim根据检测到的文件格式选项插入行结束字符,实际上是将所有内部的$转换为适当的字符。如果文件格式恰好是unix,那么它将简单地写入\n来代替内部的换行符。

诀窍是强制Vim将dos编码的文件作为unix文件读取。最终的效果是,它将删除所有的\n,而\r的不受影响,并将它们显示为缓冲区中的^M。设置:设置列表将额外显示内部行结束符为$。毕竟,你看到^M$取代了dos编码的换行符。

还要注意:set list与显示^M无关。您可以自己检查它(确保您首先禁用了列表选项),通过在插入模式中使用CTRL-V和Enter插入单个CR。在将缓冲区写入磁盘并再次打开它之后,您将看到^M,尽管列表选项被设置为0。

你可以在http://vim.wikia.com/wiki/File_format上找到更多关于文件格式的信息,或者在Vim中键入:help 'fileformat'。


您可以使用gedit编辑器查看换行。

首先,如果你没有安装它,对于Debian/Ubuntu/Mint的发行版:

sudo apt-get install gedit

3639 . net翻译:

sudo dnf install gedit

or

sudo yum install gedit

现在,安装gedit插件:

sudo apt-get install gedit-plugins

or

在Gnome2下,用户插件被放到~/.gnome2/gedit/plugins/ Gnome3: ~/.local/share/gedit/plugins/

从https://help.gnome.org/users/gedit/stable/gedit-plugin-guide.html.en#gedit-additional-plugins下载插件

然后选择绘制空间插件,在首选项中输入,并选择绘制新线条:

使用Visual Studio Code,您可以安装行结束扩展。

Sublime Text 3有一个名为RawLineEdit的插件,可以显示行尾,并允许插入任意的行尾类型

Shift + Ctrl + P并开始输入插件名称,然后切换显示行结束符。


通过使用cat和-A,你可以看到新的行为$,制表符为^I:

cat -A myfile

将以下别名添加到您的.bashrc或.bash_aliases中:

alias vidos='vi  -c ":e ++ff=unix" -c "set list"'

然后您可以使用视频编辑文件,并看到换行符为$,回车符为^M。