Даниэль Куллманн указывает, что в настоящее время принятый ответ опасен.
Если вы используете ca tn tabnew
, каждый раз, когда вы набираете строку th
, она может неожиданно развернуться.
Например, :!ls /tmp/tn/
расширится до :!ls /tmp/tabnew/
Подход, указанный в этого ответа , не страдает той же проблемой. Используя это выглядело бы так:
cnoreabbrev <expr> tn getcmdtype() == ":" && getcmdline() == 'tn' ? 'tabnew' : 'tn'
cnoreabbrev <expr> th getcmdtype() == ":" && getcmdline() == 'th' ? 'tabp' : 'th'
cnoreabbrev <expr> tl getcmdtype() == ":" && getcmdline() == 'tl' ? 'tabn' : 'tl'
cnoreabbrev <expr> te getcmdtype() == ":" && getcmdline() == 'te' ? 'tabedit' : 'te'
Эти настройки гарантируют, что расширение выполняется только по командам и больше нигде.