2015-07-21 3 views
2

Простой в использовании vimscript для определения того, было ли имя файла указано vim с помощью argc(). Есть ли способ определить, был ли установлен флаг -, чтобы указать входной канал, который был передан в vim? Он не учитывает входной канал в виде имени файла и argc() пуст.vimscript detect piped input

Редактировать

Благодаря замечательному общепринятом ответ ниже, у меня есть способ открыть NerdTree, если нет имен файлов не используются и stndin.

let wmuse_nt = 0 
autocmd StdinReadPost * let wmuse_nt = 1 
autocmd vimenter * if !argc() && wmuse_nt == 0 | NERDTree | endif 
+0

Ницца! Я думаю, вы должны взять часть «edit» из своего вопроса и вместо этого добавить его как самостоятельный ответ. – yshavit

ответ

3

Вы можете использовать autocmd запустить что-то до или после того, как ВИМ читает из стандартного ввода с StdinReadPre или StdinReadPost событий. Справка скопирована ниже.

 
                 StdinReadPost 
StdinReadPost     After reading from the stdin into the buffer, 
           before executing the modelines. Only used 
           when the "-" argument was used when Vim was 
           started --. 
                 StdinReadPre 
StdinReadPre     Before reading from stdin into the buffer. 
           Only used when the "-" argument was used when 
           Vim was started --. 
Смежные вопросы