LINUX.ORG.RU

fish и буфер обмена

 , ,


0

1

При стирании слова слева от курсора с помощью ^W удаленное слово попадает в буфер обмена и затирает то, что там было. В итоге копируешь что-нибудь чтобы вставить в команду как параметр, выбираешь ее из истории, делаешь ^W над старым аргументом и ... всё. Бесит жутко. Как починить?

★★★★★

Там наверняка kill-ring как у emacs'а. То есть разу после C-y можно нажать M-y (Alt-y, Esc y) и вставить предыдущее содержимое буфера, потом ещё раз M-y — ещё более предыдущее и т.д. :)

LeninGad
()
Ответ на: комментарий от Suntechnic

Мета (либо альт, либо винкей, если ничего из перечисленного не работает — то сначала Escape, потом модифициуемый символ).

Можно подробнее про «не пашет»? Встаньте на начало ком.строки, сотрите её, скажем, Ctrl+K, теперь пройдитесь по истории, выберите непустую команду, сотрите слово через Ctrl+W, а теперь вставляем Ctrl+Y (вставляется НЕПРАВИЛЬНОЕ, т.е. последний стёртый кусок) и сразу жмем Escape y (или Alt+y, или Win+y, но Escape y наверняка сработает). На последнем шаге неправильный вставленный кусок не заменяется на правильный, т.е. предыдущий?

LeninGad
()
Ответ на: комментарий от LeninGad

Не работает. Ну да, вон анон дает ссылку на ман где написано что так все и есть... Короче вопрос стоит наверно ставить так - почему у меня это не работает. Т.е. почему не работает Meta+y, Esc y в том числе. Все сочетания просто печатают «y».

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от Suntechnic

Даже escape-потом-игрек печатает игрек?

Проверьте в bash или zsh, там то же самое должно работать так же — там тоже печатает «y»? Если нет, то проблема в fish (давайте версию, какой дистрибутив, как собирали, если сами собирали, конфиги и настройки, если настраивали). Если да, то проблема в *term или где-то около (какой эмулятор терминала, какая версия, как собран, из какого дистрибутива?).

LeninGad
()
Ответ на: комментарий от LeninGad

Даже escape-потом-игрек печатает игрек?

Да, да. Именно поэтому между игриком и эскейпом нет плюса. Я понимаю, что ПОТОМ, а не вместе.

А вот в bash работает. А я не знал. Но в bash при этом не затирается системный буфер, вставка из которого по Ctrl+Shift+v. А в fish Ctrl+Shift+v и Ctrl+y - одно и то же.

fish_default_key_bindings не помогает.

> fish -v
fish, version pre_ast_parser-219-g29ddb68

Бинарная версия fishfish 0.9.1+2.0-SNAPSHOT201402121000-rev29ddb68~precise из убунтовского ppa работающая в Guake 0.4.2-7 установленная в Ubutnu 12.04. Но в обычном fish поставленном в Ubutnu 13.10 ровно та же проблема - тему я открывал днем с ноута именно на 13.10 с fish. Ubuntu/Unity-проблема? Но ведь в bash работает...

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от Suntechnic

Подождём кого-нибудь с более близкой версией. Я проверял на fish 2.0.0-1 из debian/sid, там работает.

Вот кстати. Команда, которая висит на M-y, называется yank-pop. Что говорит bind | grep yank, там есть yank-pop в выводе или нет? (Если есть, оттуда же узнаем, как её вызывать с клавиатуры). Или даже так: что говорит bind --function-names | grep yank-pop? Если ничего не находит, скорее всего придётся обновиться.

LeninGad
()
Ответ на: комментарий от LeninGad

Ура. Работает. Короче биндинг на Esc не пашет. Спасибо!

Suntechnic ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.