Linux上有没有一个文本编辑器可以让我看到换行符和回车?Vim支持这个功能吗?
eulz3vhy1#
对官方的回答不以为然::set list将 * 不 * 显示^M个字符(CR)。为vi/Vim提供-B选项将起作用。或者,一旦加载了Vim,键入:e ++ff=unix。
:set list
:e ++ff=unix
tkclm6bt2#
:set listchars=...
Vim中的:set list将显示空白。行尾显示为“$”,回车通常显示为“^M”。
$
^M
2wnc66cl3#
x0A
-b开关用于二进制模式。例如,vi -b filename或vim -b filename --。然后,它会将Unix样式文件中通常不使用的CR字符(x0D)显示为字符^M。
-b
vi -b filename
vim -b filename --
x0D
ekqde3dh4#
只是为了澄清为什么:set list不会将CR显示为没有e ++ff=unix的^M,以及为什么:set list与^M没有任何关系。在内部,当Vim读取一个文件到它的缓冲区时,它用自己的表示替换所有的行尾字符(我们称之为$'s)。为了确定哪些字符应该被删除,它首先检测行尾以什么格式存储在文件中。如果只有CRLF '\r\n'或CR '\r'或LF '\n'行尾字符,则将'fileformat'分别设置为dos、mac和unix。当设置了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'找到有关文件格式的更多信息。
e ++ff=unix
'\r\n'
'\r'
'\n'
'fileformat'
dos
mac
unix
list
fileformat
\n
\r
^M$
CTRL-V
Enter
:help 'fileformat'
cczfrluj5#
请尝试以下命令。
:set binary
在Vim中,这应该和使用“-B”命令行选项做同样的事情。如果你把它放在你的启动文件(即 .vimrc)中,它将永远为你准备好。在许多 *nix系统上,有一个“dos 2unix”或“unix 2dos”命令可以处理文件并纠正任何可疑的行尾问题。如果行尾没有任何问题,文件将不会被更改。
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¶
2lpgd9687#
通过使用cat和-A,您可以看到新行显示为$,制表符显示为^I:
-A
^I
cat -A myfile
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并选择绘制空格插件,进入首选项,然后选择绘制新行:
~/.gnome2/gedit/plugins/
~/.local/share/gedit/plugins/
使用Visual Studio Code,您可以安装行尾扩展。Sublime Text 3有一个名为RawLineEdit的插件,它将显示行尾并允许插入任意行尾类型Shift + Ctrl + P并开始键入插件的名称,然后切换到显示行尾。
wmvff8tz9#
将以下别名添加到您的.bashrc或.bash_aliases:
.bashrc
.bash_aliases
alias vidos='vi -c ":e ++ff=unix" -c "set list"'
然后,您可以使用vidos来编辑文件,并看到换行符为$,回车符为^M。
vidos
9条答案
按热度按时间eulz3vhy1#
对官方的回答不以为然:
:set list
将 * 不 * 显示^M个字符(CR)。为vi/Vim提供-B选项将起作用。或者,一旦加载了Vim,键入:e ++ff=unix
。tkclm6bt2#
:set listchars=...
的vim设置设置为可视化您试图 * 查看 * 的字符,在本例中为回车符(使用CTL + V、CTRM + M键入)--否则,正如许多关于此答案的评论中所报告的,^M字符将不会显示在:set list
上 *Vim中的
:set list
将显示空白。行尾显示为“$
”,回车通常显示为“^M
”。2wnc66cl3#
x0A
)。-b
开关用于二进制模式。例如,vi -b filename
或vim -b filename --
。然后,它会将Unix样式文件中通常不使用的CR字符(
x0D
)显示为字符^M
。ekqde3dh4#
只是为了澄清为什么
:set list
不会将CR显示为没有e ++ff=unix
的^M
,以及为什么:set list
与^M
没有任何关系。在内部,当Vim读取一个文件到它的缓冲区时,它用自己的表示替换所有的行尾字符(我们称之为
$
's)。为了确定哪些字符应该被删除,它首先检测行尾以什么格式存储在文件中。如果只有CRLF'\r\n'
或CR'\r'
或LF'\n'
行尾字符,则将'fileformat'
分别设置为dos
、mac
和unix
。当设置了
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'
找到有关文件格式的更多信息。cczfrluj5#
请尝试以下命令。
在Vim中,这应该和使用“-B”命令行选项做同样的事情。如果你把它放在你的启动文件(即 .vimrc)中,它将永远为你准备好。
在许多 *nix系统上,有一个“dos 2unix”或“unix 2dos”命令可以处理文件并纠正任何可疑的行尾问题。如果行尾没有任何问题,文件将不会被更改。
tgabmvqs6#
我建议您编辑您的 .vimrc 文件,以运行命令列表。
编辑 .vimrc 文件,如下所示:
当您执行Vim时,会执行文件 .vimrc 中的命令,您可以看到以下示例:
2lpgd9687#
通过使用cat和
-A
,您可以看到新行显示为$
,制表符显示为^I
:ldfqzlk88#
您可以使用gedit编辑器来检视中断缐。
首先,如果您没有安装它,对于基于Debian/Ubuntu/Mint的发行版:
对于基于Fedora/CentOS/RedHat的发行版:
或
现在,安装gedit插件:
或
在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并开始键入插件的名称,然后切换到显示行尾。
wmvff8tz9#
将以下别名添加到您的
.bashrc
或.bash_aliases
:然后,您可以使用
vidos
来编辑文件,并看到换行符为$
,回车符为^M
。