для меня, в том числе « stdc ++. 6.0.9.dylib » вместо « stdc ++. Dylib » в зависимости исправили ошибки компоновщика
Personally, I run everything inside GNU screen. This gives me tons of functionality across all terminal-based programs, not just readline-based ones. It has its own paste buffer(s), which are shared between all screens in your current session, and can read/write an exchange file (configurable with bufferfile
).
Then all you need are little helpers to synchronize /tmp/screen-exchange
and the X selection. Something as simple as this would work.
# ~/.screenrc (or entered at C-a : command prompt)
bind '{' exec sh -c 'xclip -o>~/.screen_exchange'
bind '}' exec sh -c 'xclip -i ~/.screen_exchange'
Of course some nicer bindings and macros would make life easier (this requires C-a { C-a < C-a ]
to paste X selection to the terminal), but it's completely up to you.
Bash 4.0 вводит некоторые новые функции:
Команда, назначенная последовательности клавиш с помощью `
bind -x
', теперь устанавливает два новых переменные в окружении выполняемой команды:READLINE_LINE_BUFFER
иREADLINE_POINT
. Команда может изменить текущую строку чтения и положение курсора, изменивREADLINE_LINE_BUFFER
иREADLINE_POINT
, соответственно.
Файл NEWS
кажется неточным; READLINE_LINE
(нет _BUFFER
) - это то, что задокументировано в другом месте и действительно работает.
Следующее будет имитировать поведение существующего Ctrl + ( U в Bash) | K | Y ), но влияет на выбор X, хотя я использую Meta / Esc , потому что мне не нравится перезапись существующих функций.
_xdiscard() {
echo -n "${READLINE_LINE:0:$READLINE_POINT}" | xclip
READLINE_LINE="${READLINE_LINE:$READLINE_POINT}"
READLINE_POINT=0
}
_xkill() {
echo -n "${READLINE_LINE:$READLINE_POINT}" | xclip
READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}"
}
_xyank() {
READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}$(xclip -o)${READLINE_LINE:$READLINE_POINT}"
}
bind -m emacs -x '"\eu": _xdiscard'
bind -m emacs -x '"\ek": _xkill'
bind -m emacs -x '"\ey": _xyank'
Мне все еще нравится screen
, но это лучше отвечает на ваш вопрос - если единственное приложение для чтения, которое вас интересует, это Bash.
Я хотел бы предложить следующее функцию
_xyank ()
на основе ответа на эфемиента:
_xyank() {
CLIP=$(xclip -o)
COUNT=$(echo -n "$CLIP" | wc -c)
READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}${CLIP}${READLINE_LINE:$READLINE_POINT}"
READLINE_POINT=$(($READLINE_POINT + $COUNT))
}
Что это делает для перемещения курсора в конец текста , что делает его более согласованным с другими встроенными командами.