Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在vim中使用单个键绑定切换自动格式化?_Vim - Fatal编程技术网

如何在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

我正在尝试在vim中使用单个键绑定切换自动格式化(例如,使用
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表示“我打开了它”)。包括它只是我的一个习惯,我必须使这个函数成为一个伪过程。