При попытке автозаполнения имени файла для vi файлы, оканчивающиеся на .log, не отображаются в качестве параметров. Как я могу это исправить?
2 ответа
Я предполагаю, что вы где-то (возможно, в вашем ~/.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
Возможно, что автозаполнение, которое игнорирует имена файлов, заканчивающиеся на .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
