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

时间:2010-12-08 12:06:19

标签: vim map keyboard-shortcuts line line-numbers

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

map <c-F12> :set nonumber<ENTER>
map <c-F11> :set number<ENTER>

关闭/打开它们。

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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>