如何在vim中使用单个键绑定切换自动格式化?
我正在尝试在vim中使用单个键绑定切换自动格式化(例如,使用如何在vim中使用单个键绑定切换自动格式化?,vim,Vim,我正在尝试在vim中使用单个键绑定切换自动格式化(例如,使用fo+=a启用,如果未启用,则使用fo-=a禁用),如下所示: nnoremap <leader>a "magic goes here" nnoremap一个“魔法就在这里” 我想用一些exists检查条件,但找不到。我该怎么做?这就是我要做的: function! ToggleAutoFormat() if -1==stdridx(&fo, 'a') set fo+=a else
fo+=a
启用,如果未启用,则使用fo-=a
禁用),如下所示:
nnoremap <leader>a "magic goes here"
nnoremap一个“魔法就在这里”
我想用一些exists检查条件,但找不到。我该怎么做?这就是我要做的:
function! ToggleAutoFormat()
if -1==stdridx(&fo, 'a')
set fo+=a
else
set fo-=a
endif
endfunction
nnoremap <leader>a :call ToggleAutoFormat()
函数!ToggleAutoFormat()
如果-1==stdridx(&fo,'a')
设置fo+=a
其他的
集合fo-=a
恩迪夫
端功能
nnoremap a:调用ToggleAutoFormat()
这就是我要做的:
function! ToggleAutoFormat()
if -1==stdridx(&fo, 'a')
set fo+=a
else
set fo-=a
endif
endfunction
nnoremap <leader>a :call ToggleAutoFormat()
函数!ToggleAutoFormat()
如果-1==stdridx(&fo,'a')
设置fo+=a
其他的
集合fo-=a
恩迪夫
端功能
nnoremap a:调用ToggleAutoFormat()
神奇之处在于下面片段中的“&”
:help expr选项
nnoremap <leader>a call ToggleFormat()
function! toggleFormat()
if &formatoptions !~ 'a'
set fo+=a
else
set fo-=a
endif
return 0
endfunction
nnoremap调用ToggleFormat()
功能!toggleFormat()
如果格式化选项(&F)a'
设置fo+=a
其他的
集合fo-=a
恩迪夫
返回0
端功能
神奇之处在于下面片段中的“&”
:help expr选项
nnoremap <leader>a call ToggleFormat()
function! toggleFormat()
if &formatoptions !~ 'a'
set fo+=a
else
set fo-=a
endif
return 0
endfunction
nnoremap调用ToggleFormat()
功能!toggleFormat()
如果格式化选项(&F)a'
设置fo+=a
其他的
集合fo-=a
恩迪夫
返回0
端功能
哇。各位,维姆的问题应该是这样的。显然,特别是那些谈论脚本的人。看,哇。各位,维姆的问题应该是这样的。显然,特别是那些谈论脚本的人。请参见Ooh,一行:nnoremap a:exe'set fo'(&fo=~'a'?'-':'+')。=a'
@Daan kudos!我没有记住=~
操作符!如果你感兴趣的话,我在这里用双布尔设置做了一个类似的一行技巧:)哇。我忘记了条件句。非常优雅。噢,一行:nnoremap a:exe'set fo'(&fo=~'a'?'-':'+')。=a'
@Daan kudos!我没有记住=~
操作符!如果你感兴趣的话,我在这里用双布尔设置做了一个类似的一行技巧:)哇。我忘记了条件句。非常优雅。+1用于清洁剂~代码>sehe答案的版本。有趣的是,您在条件中使用了formatoptions
,而在内部使用了fo
。顺便说一句,返回0
做什么?返回0在此上下文中不做任何事情。但是,您可以将返回置于各种条件中,并将状态结果解释为其他用途(例如,在顶部返回1表示“我打开了它”)。包括它只是我的一个习惯,我必须使这个函数成为一个伪过程。+1对于更干净的~代码>sehe答案的版本。有趣的是,您在条件中使用了formatoptions
,而在内部使用了fo
。顺便说一句,返回0
做什么?返回0在此上下文中不做任何事情。但是,您可以将返回置于各种条件中,并将状态结果解释为其他用途(例如,在顶部返回1表示“我打开了它”)。包括它只是我的一个习惯,我必须使这个函数成为一个伪过程。