commandline - установка или получение текущего буфера командной строки
Краткое описание
commandline [OPTIONS] [CMD]
Описание
commandline может быть использован для установки или получения текущего содержимого буфера командной строки.
Без параметров, commandline возвращает текущее значение командной строки.
Если указан параметр CMD, буфер командной строки очищается и заменяется содержимым CMD.
Доступны следующие параметры:
- -C или --cursor
-
Устанавливает или получает текущую позицию курсора, а не содержимое буфера. Если аргумент не указан, выводится текущая позиция курсора, в противном случае аргумент интерпретируется как новая позиция курсора. Если один из параметров -j, -p или -t указан, позиция относительна соответствующей подстроке, а не всему буферу командной строки.
- -f или --function
-
Приводит к тому, что все дополнительные аргументы интерпретируются как функции ввода и помещаются в очередь, так что они будут прочитаны до любых дополнительных фактических нажатий клавиш. Этот параметр не может быть объединён с другими параметрами. См. bind для списка функций ввода.
- -h или --help
-
Отображает справку по использованию этой команды.
Следующие параметры изменяют способ, которым commandline обновляет буфер командной строки:
- -a или --append
-
Не удалять текущую командную строку, добавить указанную строку в конец.
- -i или --insert
-
Не удалять текущую командную строку, вставить указанную строку в текущую позицию курсора
- -r или --replace
-
Удалить текущую командную строку и заменить её указанной строкой (по умолчанию)
Следующие параметры изменяют, какая часть командной строки печатается или обновляется:
- -b или --current-buffer
-
Выбирает всю командную строку, не включая отображаемое автопредложение (по умолчанию).
- -j или --current-job
-
Выбирает текущую задачу - здесь задача - это одна пайплайн. Останавливается на логических операторах или терминаторах (;, & и переводы строк).
- -p или --current-process
-
Выбирает текущий процесс - здесь процесс - это одна команда. Останавливается на логических операторах, терминаторах и каналах.
- -s или --current-selection
-
Выбирает текущий выделенный фрагмент.
- -t или --current-token
-
Выбирает текущий токен.
Следующие параметры изменяют способ, которым commandline отображает текущий буфер командной строки:
- -c или --cut-at-cursor
-
Выводит только выделение до текущей позиции курсора.
- -o или --tokenize
-
Разбирает выделенный фрагмент на токены и выводит по одному строковому токену на строку.
Если commandline вызывается во время вызова для завершения заданной строки с использованием complete -C STRING, commandline будет рассматривать указанную строку как текущее содержимое командной строки.
Следующие параметры выводят метаданные о состоянии командной строки:
- -L или --line
-
Выводит строку, на которой находится курсор, причём самая верхняя строка имеет номер 1.
- -S или --search-mode
-
Принимает значение true, если командная строка выполняет поиск в истории.
- -P или --paging-mode
-
Принимает значение true, если командная строка отображает содержимое пэйджера, например, автодополнения.
- --paging-full-mode
-
Принимает значение true, если командная строка отображает содержимое пэйджера, например, автодополнения, и все строки отображаются (без сообщения «<n> additional rows»).
- --is-valid
-
Возвращает true, когда командная строка синтаксически верна и полна. В этом случае она будет выполнена при вызове функции привязки
execute. Если командная строка неполна, возвращает 2, если ошибочна, возвращает 1.
Пример
commandline -j $history[3] заменяет задачу под курсором третьим элементом из истории командной строки.
Если командная строка содержит
>_ echo $flounder >&2 | less; and echo $catfish
(с курсором на «o» в «flounder»)
echo $flounder >& - это первый процесс, less - второй и and echo $catfish - третий.
echo $flounder >&2 | less - это первая задача, and echo $catfish - вторая.
$flounder - это текущий токен.
Дополнительные примеры:
>_ commandline -t $flounder >_ commandline -ct $fl >_ commandline -b # or just commandline echo $flounder >&2 | less; and echo $catfish >_ commandline -p echo $flounder >&2 >_ commandline -j echo $flounder >&2 | less
© 2022 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.5/cmds/commandline.html