2

У меня есть этот тестовый код в моем файле Bash:

gtest() {
    echo 'hello'
}

bind '"\C-g\C-x": "$(gtest)\e\C-e"'

Когда я начинаю набирать что-то вроде vim " , а затем нажимаю Cg Cx , я получаю vim hello вместо vim "hello .

Если я vim """sometext а затем нажму Cg Cx, я получу vim sometexthello вместо vim """sometexthello .

Есть ли способ сохранить цитаты?

1 ответ1

3
bind '"\C-g\C-x": "\C-u$(gtest)\e\C-e\C-a\C-y\C-e"'

Проблема была в том, что \e\C-e оценивает строку. Это хорошо для выполнения $(gtest) но это , очевидно , может связываться с "

Хитрость заключается в том, чтобы сохранить строку с помощью C-u , оценить только $(gtest) , поместить курсор в начало (C-a), восстановить сохраненную строку (C-y) и, наконец, поместить курсор в конец (C-e).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .