Spec-Zone.ru › Fish 3.7

commandline - установка или получение текущего буфера командной строки

Синтаксис

commandline [OPTIONS] [CMD]

Описание

commandline может использоваться для установки или получения текущего содержимого буфера командной строки.

Без параметров commandline возвращает текущее значение командной строки.

При указании CMD буфер командной строки очищается и заменяется содержимым CMD.

Доступны следующие опции:

-C или --cursor

Установить или получить текущую позицию курсора, а не содержимое буфера. Если аргумент не указан, выводится текущая позиция курсора, в противном случае аргумент интерпретируется как новая позиция курсора. Если задана одна из опций -j, -p или -t, позиция относительна соответствующей подстроке, а не всего буфера командной строки.

-B или --selection-start

Получить текущую позицию начала выделения в буфере.

-E или --selection-end

Получить текущую позицию конца выделения в буфере.

-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

Печать выделения только до текущей позиции курсора. Если объединить с --tokenize, это напечатает до последнего завершенного токена - исключая токен, в котором находится курсор. Это обычно то, что вам нужно, например, при автозаполнении. Чтобы получить оба варианта, используйте оба commandline --cut-at-cursor --tokenize; commandline --cut-at-cursor --current-token, или commandline -co; commandline -ct для краткости.

-o или --tokenize

Разделить выделение на токены и печатать один токен типа строка в строке.

Если commandline вызывается во время вызова для завершения заданной строки с помощью complete -C STRING, commandline будет считать указанную строку текущим содержимым командной строки.

Следующие опции выводят метаданные о состоянии командной строки:

-L или --line

Вывести строку, на которой находится курсор, при этом самая верхняя строка начинается с 1.

-S или --search-mode

Принимает значение true, если командная строка выполняет поиск в истории.

-P или --paging-mode

Принимает значение true, если командная строка показывает содержимое страницы, например, результаты автозаполнения.

--paging-full-mode

Принимает значение true, если командная строка показывает содержимое страницы, например, результаты автозаполнения, и все строки отображаются (без сообщения «<n> дополнительных строк»).

--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 - это текущий токен.

Наиболее распространенное использование для чего-то вроде автозаполнения

set -l tokens (commandline -opc)

дает текущий процесс (то, что дополняется), разделенный на отдельные элементы до, но не включая, текущий дополняемый токен

Если вам также нужна информация о текущем токене, добавьте

::

set -l current (commandline -ct)

Обратите внимание, что это упрощает отказ от moot ввода-вывода fish - если возможно, лучше, если дополнения просто напечатают все варианты и оставят сопоставление с текущим токеном логике fish.

Дополнительные примеры:

>_ 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

© 2005-2009 Axel Liljencrantz, 2009-2023 fish-shell contributors
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.7/cmds/commandline.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API