Когда я использую стандартное завершение табуляции в bash или zsh, я набираю первую часть имени файла или пути, а затем нажимаю, чтобы завершить слово. Это работает хорошо, если я не нахожусь в каталоге, полном файлов, где все различия в именах файлов находятся в конце слова, например, в каталоге, полном файлов с метками времени, которые начинаются с одного и того же префикса:
foo-20120701124501.log
foo-20120701124531.log
foo-20120701124601.log
foo-20120701124631.log
foo-20120701124701.log
foo-20120701124731.log
В этом случае, если я наберу foo<tab>
я получу foo-20120701124
- я смогу снова перейти на вкладку и посмотреть все файлы ... Мне нужно будет ввести следующие 3 символа, чтобы получить уникальное имя файла.
Мне интересно, есть ли способ напечатать, например, 4731.log
а затем завершить начало слова. Я предполагаю, что это было бы сложно в bash, потому что для завершения bash используются $COMP_CWORD
и $COMP_KEY
для его программируемого завершения, и из-за того, что я читаю, я не думаю, что они позволят завершить слово влево , Я не знаю достаточно о завершении внутри zsh, чтобы знать, с чего начать поиск по страницам руководства.