Как и обещал:
Скрипты для Linux (my $HOME/util
находятся в my$PATH
):
~/util ❯❯❯ cat linux_pb/pbcopy ✘ 130 master b28083b $ ◼
#!/bin/bash
# pbcopy impl for linux!
# pipe the stdin to a file using cat. Not using bash builtins due to concerns
# about NULs.
FILE="$HOME/.clipboard"
touch $FILE
chmod 600 $FILE
cat > $FILE
~/util ❯❯❯ cat linux_pb/pbpaste master b28083b $ ◼
#!/bin/bash
# pbpaste impl for linux!
# just use the content of the file.
cat ~/.clipboard
Привязки vim:
vnoremap y :w !pbcopy
" the leader y works like normal yy (but for my clipboard)
nnoremap y :.w !pbcopy
nnoremap p :read !pbpaste
Идемпотентный сценарий псевдонима оболочки (Я беру этот псевдоним скрипта из bash и zsh):
if [ "$(uname)" = Linux ] && ! [[ "$PATH" = *"/linux_pb"* ]]; then
PATH="$PATH:$HOME/util/linux_pb"
fi
Я, скорее всего, еще более конкретизирую конфигурацию Linux, когда начну использовать настоящий Linux с X, чтобы также воспользоваться его буфером вставки. Потребуется какой-то механизм для создания pbcopy
и pbpaste
программ, подобных этой .
Этот подход основан на единообразии на программном уровне, поэтому Vim может использовать функциональные возможности точно так же, как я теперь могу использовать командную оболочку.