Vim,如何在一个快捷键下映射两个任务?

jot*_*bek 8 vim keyboard-shortcuts map line line-numbers

我喜欢在Vim中打开行号,但有时候行号很烦人.我在.vimrc中设置了快捷方式:

map <c-F12> :set nonumber<ENTER>
map <c-F11> :set number<ENTER>
Run Code Online (Sandbox Code Playgroud)

关闭/打开它们.

是否可以在一个键下连接两个任务(关闭/打开)?我的意思是,当行号为ON时,快捷方式应关闭它们,并在行号关闭时打开.

Xav*_* T. 17

从Vim帮助,您可以使用以下语法:

:se[t] {option}! or
:se[t] inv{option} Toggle option: Invert value. {not in Vi}

看到 :help set-option

在您的情况下,您可以使用: map <c-F11> :set number!<ENTER>


ske*_*ept 11

如果您还想在相对行号,行号和没有数字之间进行更改,您可以使用以下内容:

let g:relativenumber = 0
function! ToogleRelativeNumber()
  if g:relativenumber == 0
    let g:relativenumber = 1
    set norelativenumber
    set number
  elseif g:relativenumber == 1
    let g:relativenumber = 2
    set nonumber
    set relativenumber
  else
    let g:relativenumber = 0
    set nonumber
    set norelativenumber
  endif
endfunction

map <c-f11> :call ToogleRelativeNumber()<cr>
Run Code Online (Sandbox Code Playgroud)