Использование встроенного оператора if в .vimrc - PullRequest
3 голосов
/ 29 ноября 2011

Я пытаюсь реализовать переключение между абсолютной и переменной нумерацией строк в vim, и я хотел бы сделать как один вкладыш вместо написания функции if.

Мой текущий код:

nnoremap <F4> :( &rnu == 1 ? "set nu" : "set rnu" )<CR>

который не работает; Кто-нибудь знает, как я могу заставить его работать?

1 Ответ

6 голосов
/ 29 ноября 2011

Вот как мне этого добиться:

:nnoremap <f4> :setl <c-r>=&nu ? "rnu" : "nu"<cr><cr>

Более длинная версия, которая, вероятно, немного более понятна для будущих пользователей Google:

:nnoremap <f4> :setlocal <c-r>=&number ? "relativenumber" : "number"<cr><cr>

<C-r>= говорит vim использовать регистр выражений для оценки оставшейся части строки как команды vim. Конечный двойник <cr> необходим, поскольку первый вычисляет выражение, а второй выполняет команду :setlocal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...