我想突出显示vim中一行末尾的尾随空格。以下命令有效:
:match Error /\v\s+\n/
但是我无法将其映射到密钥:
nnoremap <leader>w :execute "normal! :match Error " . '/\v\s+\n/' . "\<cr>"
Vim回应:
E114: Missing quote: "\
E15: Invalid expression: "normal! :match Error " . '/\v\s+\n/' . "\
更新: 刚刚看到这个:http://vim.wikia.com/wiki/Highlight_unwanted_spaces我已经完成了映射工作,只写了:
nnoremap <leader>w :match Error /\v\s+\n/<cr>
任何人都可以解释原始execute normal! ...
构造的问题是什么阻止它工作吗?
答案 0 :(得分:0)
我认为应该是
<强> nnoremap <leader>w :execute "normal! :match Error " . '/\v\s+\n/' . "\<lt>cr>"<cr>
强>
:help <lt>
我并不是很清楚为什么需要这样做(曾几何时,我的执行也不起作用,因为我有\<esc>
和\<cr>
中的execute "normal! .."
。只需知道该地点或<cr>
,您需要在此结构中使用\<lt>cr>
<cr>
。
最后还需要<cr>
来实际运行:execute ".."<cr>
命令。
另外,我认为将
放得更容易 <强> set listchars=trail:·
set list
强>
,然后你就可以看到尾随的空格。
就个人而言,我的vimrc中有 set listchars=trail:·,tab:»\ ,extends:»
。
并且一个简单的正则表达式搜索(/\s\+$
)显示了空格,您可以使用 d $ 轻松删除(&#34;删除&#39;直到结束&#34; )。然后,一旦你这样做,你可以按 n 。到&#34;转到下一个&#34; 然后&#34 ;重复&#34; d$
。
一旦你突出你的搜索模式,你甚至可以 d g n 到&#34;选择下一个出现并删除它&#34 ;一次性 - 然后你可以反复按。直到没有任何反应...... :help gn
。另外,乱用 c g n ;它非常整洁。
干杯。