有誰知道Linux上的文本編輯器允許我看到換行符和回車符嗎? Vim是否支持這個功能?查看編輯器中的換行符和回車符
回答
:set list
在Vim中會顯示空白。行尾顯示爲'$
',回車通常顯示爲'^M
'。
同一問題在這裏:http://superuser.com/questions/97692/vim-show-line-feeds-carriage-return – 2010-10-05 02:52:34
錯誤,':set list'不會顯示'^ M'字符(CR)。向vi/vim提供'-b'選項將起作用。或者,一旦加載vim,鍵入:':e ++ ff = unix' – CaptSaltyJack 2013-04-21 16:22:19
@CaptSaltyJack這需要自己的答案..... – 2014-12-02 21:42:00
VI通過顯示下一行的後續文本顯示新行(LF字符,代碼x0A
)。
使用-b
開關進行二進制模式。例如vi -b filename
或vim -b filename --
。
然後它將顯示在Unix樣式文件中通常不使用的CR字符(x0D
)作爲字符^M
。
要與官方的回答不以爲然:
:set list
將不顯示^ M字符(CRS)。爲vi/vim提供-b選項將起作用。或者,一旦vim被加載,輸入:e ++ff=unix
。
爲什麼':set ff = unix'不起作用,但':e ++ ff = unix'呢? – 2015-06-09 20:21:53
這是語法。 ':help edit'顯示'e [dit]! [++ opt] [+ cmd]'。並且':help ++ e'表示_可以使用[++ opt]參數來強制'fileformat'[..] _的值。 – dennis 2015-10-06 11:35:27
只是爲了澄清,':set list'顯示換行('$'),':e ++ ff = unix'顯示CR('^ M');如果你想同時看到':set list',那麼':e ++ ff = unix' – 2016-08-21 22:16:12
請嘗試以下命令。
:設置二進制
在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 讀取文件到它的緩衝區,它取代了自己的代表所有的行結束字符(姑且稱之爲$
的)。爲了確定應該刪除哪些字符,它首先檢測文件中存儲行結尾的格式。如果僅有CRLF '\r\n'
或僅CR '\r'
或僅有LF '\n'
行結束字符,則'fileformat'
分別設置爲dos
,mac
和unix
。
當list
選項設置時,Vim顯示$
字符時換行符發生不管已經檢測到什麼fileformat
選項。它使用自己內部的換行符表示,這就是它顯示的內容。
現在,當你寫緩衝到光盤上,Vim的根據是什麼fileformat
選項已經木珠檢測,用正確的字符轉換essentialy所有這些內部$
的插入行結束符。如果fileformat
碰巧是unix
那麼它將簡單地寫\n
來代替它的內部換行符。
訣竅在於強制Vim讀取dos
編碼文件爲unix
之一。最終結果是,它將刪除所有\n
的\r
,並將它們顯示爲^M
在您的緩衝區中。設置:set list
將另外顯示內部行結束符爲$
。畢竟,您會看到^M$
代替dos
編碼的換行符。
另請注意,:set list
與顯示^M
無關。你可以自己檢查(確保你已經先禁用list
選項),插入單個CR使用CTRL-V
後跟Enter
插入模式。寫緩衝到光盤,然後再次打開它之後,你就儘管list
選項被設置爲0。
你可以找到更多有關文件格式上http://vim.wikia.com/wiki/File_format或Vim中鍵入:help 'fileformat'
SES ^M
。
- 1. 在Sublime Text 2中如何查看回車和換行符?
- 2. 在PowerShell中查找/替換帶回車符和換行符的字符串
- 3. nano編輯器換行符
- 4. 在SQL查詢中使用REPLACE查詢換行符/回車符
- 5. DB2到COBOL字符串丟失換行符和回車換行
- 6. JavaScript錯誤與回車和換行符
- 7. 在編輯器中插入換行符
- 8. 保持Java中的換行符和回車符(常規)
- 9. Swift String中的換行符和/或回車符
- 10. 在MySQL中查找換行符和回車(\ r \ n)
- 11. 如何從unix文件中刪除回車符和換行符
- 12. ZF2格式的換行符和回車符 - 爲什麼zf2編輯我輸入到文本字段中的值
- 13. 格式化已填充的textarea,回車符,換行符和HAML
- 14. 搜索包含回車符和換行符的子串
- 15. Grep製表符,回車符和新行
- 16. 在Netsuite中刪除換行符/回車符字符串
- 17. 更改代碼以呈現回車符和換行符
- 18. Oracle REPLACE()函數未處理回車符和換行符
- 19. 爲什麼readalltext方法添加回車符和換行符?
- 20. 在發佈aspx頁面後刪除回車符和換行符?
- 21. 無法查看UIMA中的組件描述符編輯器Eclipse
- 22. 回車,換行和換行
- 23. Android中字符串\ n的回車/換行符
- 24. C++字符串中的回車和換行
- 25. 防止Joomla編輯器剝離換行符/返回
- 26. 如何從shell腳本中的變量中刪除回車符和換行符
- 27. 回車換行符在SQL Server
- 28. 刪除換行符或回車
- 29. 如何避免回車換行符對
- 30. 如何使用JavaScript替換一個換行符來換行回車/換行符?
注意:有時換行符($)和回車符(^ M)隱藏在很多顏色方案中,並且在使用putty到ssh時也是如此。 – 2017-08-21 18:06:41