vim 查看编辑器中的换行符和回车符

bfnvny8b  于 2022-11-24  发布在  其他
关注(0)|答案(9)|浏览(1374)

Linux上有没有一个文本编辑器可以让我看到换行符和回车?Vim支持这个功能吗?

eulz3vhy

eulz3vhy1#

对官方的回答不以为然:
:set list将 * 不 * 显示^M个字符(CR)。为vi/Vim提供-B选项将起作用。或者,一旦加载了Vim,键入:e ++ff=unix

tkclm6bt

tkclm6bt2#

  • 假设:set listchars=...的vim设置设置为可视化您试图 * 查看 * 的字符,在本例中为回车符(使用CTL + V、CTRM + M键入)--否则,正如许多关于此答案的评论中所报告的,^M字符将不会显示在:set list上 *

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

2wnc66cl

2wnc66cl3#

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

-b开关用于二进制模式。例如,vi -b filenamevim -b filename --
然后,它会将Unix样式文件中通常不使用的CR字符(x0D)显示为字符^M

ekqde3dh

ekqde3dh4#

只是为了澄清为什么:set list不会将CR显示为没有e ++ff=unix^M,以及为什么:set list^M没有任何关系。
在内部,当Vim读取一个文件到它的缓冲区时,它用自己的表示替换所有的行尾字符(我们称之为$'s)。为了确定哪些字符应该被删除,它首先检测行尾以什么格式存储在文件中。如果只有CRLF '\r\n'或CR '\r'或LF '\n'行尾字符,则将'fileformat'分别设置为dosmacunix
当设置了list选项时,无论检测到什么fileformat选项,Vim都会在出现换行符时显示$字符。它使用自己的内部换行符表示,这就是它所显示的内容。
现在当你写入缓冲区到光盘时,Vim会根据检测到的fileformat选项插入行尾字符,本质上是将所有内部的$转换为合适的字符。如果fileformat恰好是unix,那么它会简单地写入\n来代替它的内部换行符。
诀窍是强制Vim将dos编码文件读取为unix编码文件。实际效果是,它将删除所有\n编码文件,而保留\r编码文件,并在缓冲区中将其显示为^M编码文件。设置:set list会额外将内部行尾显示为$。毕竟,您会看到^M$代替了dos编码的换行符。
还要注意,:set list与显示^M的没有任何关系,您可以自己检查(确保您已先禁用list选项),方法是在插入模式下使用CTRL-V后跟Enter插入单个CR。将缓冲区写入光盘并再次打开后,您将看到^M,尽管list选项设置为0。
您可以在http://vim.wikia.com/wiki/File_format上或通过在Vim中键入:help 'fileformat'找到有关文件格式的更多信息。

cczfrluj

cczfrluj5#

请尝试以下命令。

:set binary

在Vim中,这应该和使用“-B”命令行选项做同样的事情。如果你把它放在你的启动文件(即 .vimrc)中,它将永远为你准备好。
在许多 *nix系统上,有一个“dos 2unix”或“unix 2dos”命令可以处理文件并纠正任何可疑的行尾问题。如果行尾没有任何问题,文件将不会被更改。

tgabmvqs

tgabmvqs6#

我建议您编辑您的 .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¶
2lpgd968

2lpgd9687#

通过使用cat-A,您可以看到新行显示为$,制表符显示为^I

cat -A myfile
ldfqzlk8

ldfqzlk88#

您可以使用gedit编辑器来检视中断缐。
首先,如果您没有安装它,对于基于Debian/Ubuntu/Mint的发行版:

sudo apt-get install gedit

对于基于Fedora/CentOS/RedHat的发行版:

sudo dnf install gedit

sudo yum install gedit

现在,安装gedit插件

sudo apt-get install gedit-plugins


Gnome 2下,用户插件被放入~/.gnome2/gedit/plugins/
对于Gnome 3~/.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并开始键入插件的名称,然后切换到显示行尾。

wmvff8tz

wmvff8tz9#

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

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

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

相关问题