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 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并开始输入插件名称,然后切换显示行结束符。
将以下别名添加到您的.bashrc或.bash_aliases中:
alias vidos='vi -c ":e ++ff=unix" -c "set list"'
然后您可以使用视频编辑文件,并看到换行符为$,回车符为^M。