如何为现有Vim命令创建自定义命令?解决配置报错问题
解决Vim自定义多命令别名的问题
你遇到的错误是因为Vim的:command不支持直接连写多个set命令——它会把第一个set之后的内容误认为是命令的选项参数,所以才报"Unknown option set"。
给一系列Vim命令设置别名有两种常用方法:
用命令分隔符串联
在.vimrc里用<bar>分隔多个命令(直接用|在配置文件里可能有解析问题,<bar>是Vim的内置别名),写法如下::command! Clip set mouse=v <bar> set nonumber <bar> set norelativenumber加
!是为了防止重复定义命令时报错,执行:Clip就能依次运行这三个set命令。用函数包裹命令序列
如果命令比较多或者需要逻辑处理,把命令放进函数里再调用更清晰:function! ClipSetup() set mouse=v set nonumber set norelativenumber endfunction command! Clip call ClipSetup()同样执行
:Clip就会调用这个函数,执行里面的所有命令。
另外,如果你只是临时切换剪贴板模式,也可以考虑用Vim的映射(比如nnoremap <leader>c :set mouse=v<bar>set nonumber<bar>set norelativenumber<CR>),按快捷键就能触发,比输入命令更快捷。
内容的提问来源于stack exchange,提问作者D.B.K
相关产品推荐
相关产品推荐

