我想将一些(任意)特殊字符显示为换行符< CR>在vim。 到目前为止,我试图滥用(当然极端滥用:)不可破坏的空间打字
:set list listchars=nbsp:<CR>
哪个不起作用,似乎是因为该命令不接受&lt; CR&gt;。 有什么我可以在这里用于&lt; CR&gt;? \ r也不起作用。
请注意,我不想编辑文本文件。目标是将行块(一些相关代码)视为与vim操作相关的单行,但显示为多行。在这些情况下,特殊字符(待定义)仅用于将此块结构保存在替换linebreak \ r的文件中。
答案 0 :(得分:1)
考虑到您在附加内容中提供的问题的更广泛背景
评论,我会建议以下解决方案。集团依赖线
通过缩进,语言的语法或标记来折叠代码。任何这些
三种方法是自动的,不需要手动创建折叠。哪一个
一个选择取决于您使用的语言。请参阅:help foldmethod
或提问
如果您需要任何折叠方面的帮助,请发表评论。
除非您使用的语言语法在Vim中得到广泛支持,否则最多
方便的方法是使用折叠标记或定义表达式
计算每条线的折叠水平。前一种方法意味着周围
每组线由特殊文本标记折叠(可以封闭
在评论中不要破坏语言的语法规则)。默认那些
标记为{{{
和}}}
;请参阅:help fold-marker
和:help foldmarker
找出如何改变它们。使用
:set foldmethod=marker
启用此折叠模式。
定义表达式以计算每行的折叠级别甚至更多 灵活的方法。它允许使用任何逻辑(可以用Vim表示) 脚本)确定折叠级别。例如,折叠那些行的组 从单一空间使用开始
:set foldmethod=expr
:set foldexpr=getline(v:lnum)[0]=='\ '
有关自定义折叠表达式的更多详细信息,请参阅:help fold-expr
。
当相互依赖的线条以折叠方式分组时,您可以轻松地进行折叠
将折叠传递给过滤程序。将光标移动到目标内的一条线
折叠,然后键入[zV]z!
(选择整个折叠)并输入命令
跑。要保存输入,您可以定义映射
:nnoremap <leader>z [zV]z!
或者,如果命令始终相同,
:nnoremap <leader>z [zV]z!cat -n<cr>
(替换cat -n
- 我的示例命令 - 为您的自定义命令。)
答案 1 :(得分:0)
我想您可能需要查看this vimcasts episode。可能不是你想要的,但可以帮助你。祝你好运!
答案 2 :(得分:0)
我的解决方案最后是在文件的相应位置插入不间断的空格和换行符。然后可以使用:set list listchars=nbsp:$
来显示这些“特殊换行符”。它们的存在允许解释代码以识别由该组合分隔的线块作为相关线。
当然这不回答这个问题。根据我现在的最佳知识,答案是:set list
和:wrap
都不能用来实现这一点。