Нечетный синтаксис двоеточия vimscript

При чтении источника плавающего модуля я наткнулся на какой-то странный синтаксис vimscript, которого у меня не было. смог найти любую документацию или выяснить, что он делает. Это пользовательская команда, за которой следует пробел и двоеточие (третья строка):

function! s:Status() abort
  try
    Gpedit :
    wincmd P
    setlocal foldmethod=syntax foldlevel=1
    nnoremap <buffer> <silent> q    :<C-U>bdelete<CR>
  catch /^fugitive:/
    return 'echoerr v:errmsg'
  endtry
  return ''
endfunction

Я никогда не видел этого раньше! Я работал над книгой Стива Лоша «Learn Vimscript the Hardway», прочитал множество статей о vimscript, часто читал справку и никогда не сталкивался с этим, кроме как здесь. Кто-нибудь знает?


person Andrew Haust    schedule 30.11.2014    source источник
comment
Что ж, если это пользовательская команда, она может принимать любые аргументы, какие пожелает. $!?*= может быть приемлемым аргументом, если команда может с ним справиться.   -  person glts    schedule 30.11.2014
comment
Ох, черт. Я даже видел эту документацию раньше. Я до сих пор иногда путаюсь, читая вимскрипт. Я всегда стараюсь напоминать себе просто представить : в начале каждой строки, но иногда все же забываю. Для меня это выглядело как какая-то странная линия без вызова или exec, ведущая ее. В любом случае, спасибо!!   -  person Andrew Haust    schedule 30.11.2014
comment
в прологе с (; :echom vim:[ $!?*= ] prolog:{"~q" <format< ['$!?*='] } ;)   -  person Kintalken    schedule 28.08.2017


Ответы (1)


В этом синтаксисе нет ничего особенного. Поскольку :Gpedit является пользовательской командой, она может принимать любой аргумент, для которого автор предоставил некоторую логику обработки.

Когда вы просматриваете документацию для :Gpedit вы можете видеть, что он принимает аргумент «ревизия».

Вы также найдете в документации, что : является сокращением от индекс Git.

person glts    schedule 30.11.2014