打开日志文件后,我手动将^M
替换为:%s/<ctrl-v><ctrl-m>//g
。我每天都要执行多次此操作,因此我尝试分配F11键来执行此操作。我在 .vimrc 中尝试了以下操作,但没有成功。
:nnoremap <silent> <F11> :let _s=@/ <Bar> :%s/^M//e <Bar> :let @/=_s <Bar> :nohl <Bar> :unlet _s <CR>
***注意:***在上面的语句中,我按了ctrl+vctrl+m来获得^M
。
我有一个类似的任务,F10删除EOL空白,这工作。
:nnoremap <silent> <F10> :let _s=@/ <Bar> :%s/\s\+$//e <Bar> :let @/=_s <Bar> :nohl <Bar> :unlet _s <CR>
我做错了什么?
1条答案
按热度按时间ewm0tg9j1#
检查你的终端是否真的将F11键转发给了它正在运行的命令,而不是监听键本身。例如,Windows终端的默认配置会拦截F11键,并且不会转发它,所以你不能在Vim中重新绑定键。
此外,你的命令看起来相当令人费解;我对Vimscript的了解有限,但是如果您的命令的目的是将Windows文件结尾更改为UNIX文件结尾,则可以使用以下更简单的命令:
还有一个广泛安装的实用程序
dos2unix
,它也可以做同样的事情,而且对于您的用例来说,它可能更简单。