Форма курсора изменения (или цвет) для указания на vi режим в ударе

Mac OS X 10.6 может скомпилировать исходный код (уже упомянутый) книга Усовершенствованное Программирование в UNIX® Environment, Второй Выпуск если _POSIX_C_SOURCE и _DARWIN_C_SOURCE флаги препроцессора включены (см., разделяют (5) страница справочника и здесь). Таким образом, мой ответ был бы 'Да!'.

Исходный код этого может заказать (так или иначе) быть скомпилированным в Windows также?

(Ре подобное Linux пространство пользователя: предварительно скомпилированные двоичные файлы Mac OS X GNU findutils пакет и другие инструменты GNU доступны по rudix.org).

31
14.10.2011, 02:12
5 ответов

Я не имею, находят действительное решение, но возможно это могло помочь Вам (или кто-то еще) найти лучшего.

Необходимо создать сценарий (например, kmtest.sh)

#!/bin/bash
# Script "kmtest.sh"

TEST=`bind -v | awk '/keymap/ {print $NF}'`
if [ "$TEST" = 'vi-insert' ]; then
   echo -ne "\033]12;Green\007"
else
   echo -ne "\033]12;Red\007"
fi

и после добавляют его к Вашему PS1, чему-то как:

export PS1="\u@\h \$(kmtest.sh)> "

но поскольку я сказал, это не то, что Вы хотите, вызываете его, курсор изменений окрашивает только после cr.Удачи

ГБ

2
27.01.2020, 19:38
  • 1
    Это на самом деле работало на Вас? Это не работало на меня; это просто сделало курсор красным. Я не думаю, что kmtest.sh выполняется каждый раз, когда я переключаюсь между вставкой и командными режимами. Кажется, что это было бы только выполнено на создании подсказки. –  joecan 11.11.2011, 04:42

Я задал тот же вопрос некоторое время назад на AskUbuntu, когда я переходил от Gvim до Консольного Vim.

Я получил один ответ, но он включил переключение настроек терминала гнома и этих настроек, примененных через терминалы. Таким образом для курсора терминала гнома было возможно застрять в неправильном состоянии время от времени.

Я все еще интересуюсь тем, получаете ли Вы удовлетворительное решение, но со временем я корректировался к отсутствию информации о состоянии режима в курсоре. Возможно, я просто нажимаю Escape чаще (например, esc для обеспечения я нахожусь в командном режиме; esc i для обеспечения я нахожусь в режиме вставки); возможно, я смотрю на состояние, отображенное внизу экрана; возможно, я только что усвоил режим.

0
27.01.2020, 19:38
  • 1
    Просто для уточнения Вы - вопрос, не то же как мой. Вы спросили, как изменить курсор в Vim на консоли. Это хорошо документируется на Vim Wiki. Я хочу знать, как сделать это в vi-режиме Bash. –  joecan 13.10.2011, 20:45

Похоже, что может быть способ сделать это посредством взламывания readline. Возможно, мы могли стремиться к нему для получения mainstreamed?

Вот мой ответ на ТАК https://stackoverflow.com/a/12201092/255961, который я обновлю, если я получу больше информации.

1
27.01.2020, 19:38
[113645]Скопировано отсюда - [114117]Редактирование в командной строке в стиле vim

Должно быть доступно в [114119]bash[114120] 4. 3 - смотрите [114121]changelog[114122] -

bash[114124] 4.3 в настоящее время находится на стадии [114125]rc[114126], вы должны быть в состоянии получить пакеты для большинства дистрибутивов без компиляции из исходных текстов, хотя и не в основных репозиториях. Eg. Ubuntu (amd64) [114127] здесь[114128] и Debian (experimental repo) [114129] здесь[114130].[113650].

4
27.01.2020, 19:38

Хотя это не совсем то, что вам нужно (динамическое изменение курсора), bash 4.4 / readline 7.0 добавит поддержку динамического изменения подсказки . Вы сможете указать пользовательские индикаторы режима для режимов вставки/команды (Это отличается от текущей опции show-mode-in-prompt, которая жестко закодирована на использование + и :).

К сожалению, эти версии в настоящее время находятся в стадии бета-тестирования и, похоже, еще не все ошибки устранены. В них также отсутствует возможность указать, где в подсказке вы хотите видеть индикатор режима.

Тем временем я опубликовал исправленные версии bash 4.3 / readline 6.3 на github с этой функциональностью.

1
27.01.2020, 19:38

Теги

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