1

При попытке автозаполнения имени файла для vi файлы, оканчивающиеся на .log, не отображаются в качестве параметров. Как я могу это исправить?

2 ответа2

1

Я предполагаю, что вы где-то (возможно, в вашем ~/.cshrc) указали что-то вроде этого:

complete vi 'n/*/f:^*.{o,a,dvi,gz,z,Z,log}/'

Вы должны изменить его (соответственно переопределить), например:

complete vi 'n/*/f:^*.{o,a,dvi,gz,z,Z}/'

Объяснение: n означает «завершение следующего слова», * - шаблон глобуса, соответствующий началу слова в командной строке, f означает имя файла, ^*.{o,a,dvi,gz,z,Z} означает что имя файла не должно заканчиваться .o .a .dvi .gz .z .Z

1

Возможно, что автозаполнение, которое игнорирует имена файлов, заканчивающиеся на .log , не относится к vi . Возможно, что имена файлов, заканчивающиеся на .log , не заполняются автоматически ни для чего.

В tcsh есть переменная оболочки, называемая fignore , которая, согласно man странице для tcsh , делает следующее:

Перечисляет суффиксы имен файлов, которые будут игнорироваться при завершении.

В моей собственной конфигурации и использовании tcsh для меня имеет смысл игнорировать определенные файлы в отношении возможностей завершения:

% set fignore = (.aux .log .elc .o)
% echo $fignore
.aux .log .elc .o

Предполагая, однако, что у вас есть некоторые специфичные для vi возможности завершения, настроенные на игнорирование .log , следующая команда должна сообщить вам:

% complete | grep vi

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .