Помимо ситуаций, когда восклицательный знак вызывает такие вещи, как запись, он превращает команду в команду переключения. Так что если я сделаю:
:set cursorline
строка, на которой находится мой курсор, будет подсвечена. Я могу отключить его с помощью:
:set nocursorline
Или я мог бы сделать:
:set cursorline!
Эта команда переключается между двумя настройками: выкл. И вкл.
Я часто включаю и выключаю подсветку курсора, а команда переключения позволяет мне сделать это с помощью простого сопоставления функциональных клавиш. Без переключения мне потребовалось бы либо два сопоставления: одно, чтобы включить его, и другое, чтобы выключить его. Или мне нужно написать функцию, чтобы определить, была ли включена или выключена настройка линии курсора, а затем включить противоположную настройку.
Это работает, насколько мне известно, со всеми параметрами командной строки, в которых есть параметры включения и выключения, такими как hlsearch, paste, cursorcolumn, number, insearch и т. Д.
Обратите внимание, что восклицательный знак будет переключать версию команды no . Например, вы также можете переключить настройку курсора с помощью:
:set nocursorline!