Vim, как сопоставить две задачи под одним сочетанием клавиш? - PullRequest
8 голосов
/ 08 декабря 2010

Мне нравится включать номера строк в Vim, но иногда номера строк раздражают.У меня есть ярлыки в .vimrc:

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

для их включения / выключения.

Возможно ли объединить обе задачи (выключить / включить) под одной клавишей?Я имею в виду, когда номера строк включены, ярлык должен выключить их и включить, когда номера строк выключены.

Ответы [ 2 ]

17 голосов
/ 08 декабря 2010

В справке Vim вы можете использовать следующий синтаксис:

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

См. :help set-option

В вашем случае вы можете использовать: map <c-F11> :set number!<ENTER>

11 голосов
/ 08 декабря 2010

Если вы хотите также изменить относительный номер строки, номер строки и номер, вы можете использовать что-то вроде следующего:

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>
...