При попытке автозаполнения имени файла для 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