Как установить и определить режим редактирования командной строки Bash?

В моей интерпретации это означает, что вы должны использовать umount для размонтирования раздела и mount для его повторного монтирования, поскольку некоторые LiveCD монтируют разделы в режиме readonly по умолчанию.

Руководство с более подробным объяснением команд связанного ответа можно найти здесь: https://wiki.archlinux.org/index.php/Change_root

10
30.11.2018, 08:13
3 ответа

Поскольку ваш вопрос касается bash:

Для постоянной установки для каждого нового сеанса:

echo 'set -o vi' >> ~/.bashrc

или (рекомендуется ), добавьте (или измените )строку в./inputrc:

set editing-mode vi

Это установит режим редактирования readline, который используется несколькими другими программами помимо bash.

Обе опции легко отключить:

shopt -ou vi emacs

Чтобы установить один, либо:

set -o vi

Или

shopt -os vi

То же самое для emacs. Установка viснимает emacsс охраны и наоборот.

Список состояний:

$ shopt -op emacs
set +o emacs

$ shopt -op vi
set -o vi

Или оба сразу:

$ shopt -op emacs vi
set +o emacs
set -o vi

Чтобы проверить, установлен ли vi:

shopt -oq vi      &&   echo vi is set

Или (синтаксис ksh):

[[ -o vi ]]        &&   echo vi is set

емакс:

shopt -oq emacs   &&   echo emacs is set

Или:

[[ -o emacs ]]    &&   echo emacs is set

или, чтобы проверить, что опция не установлена ​​:

! ( shopt -oq emacs || shopt -oq vi ) && echo no option is set
7
27.01.2020, 19:59

Кset:

set -o vi

или:

set -o emacs

(установка одного отключает другое. Вы можете выполнить set -o vi +o vi, чтобы снять обе)

Для проверки:

if [[ -o emacs ]]; then
  echo emacs mode
elif [[ -o vi ]]; then
  echo vi mode
else
  echo neither
fi

Этот синтаксис взят из ksh. set -o vi— это POSIX. set -o emacsне является (, поскольку Ричард Столлман возражал против режима emacs, определяемого POSIX ), но очень распространенного среди реализаций оболочки. Некоторые оболочки поддерживают дополнительные режимы редактирования. [[ -o option ]]не является POSIX, но поддерживается ksh, bash и zsh. [ -o option ]поддерживается bash, kshиyash(обратите внимание, что -oтакже является бинарным оператором ИЛИ для[).

18
27.01.2020, 19:59

Существует также bind -V | grep editing-mode.

man bashогромен, но его стоит прочитать подробно.

4
27.01.2020, 19:59

Теги

Похожие вопросы