Не хочу, чтобы iBooks всегда вставлял «Отрывок из» того, что я скопировал

30

Я читаю на iBooks и некоторых других ресурсах и собираю свои заметки в EverNote. Когда я копирую текст из iBooks, чтобы сохранить его в виде заметки в каком-то другом внешнем приложении, например EverNote, он продолжает вставлять информацию об источнике, которая так раздражает, и мне приходится удалять ее после каждой вставки копии. Например:

“To bind this class using Ninject, I specify the value of the constructor parameter using the WithConstructorArgument method in the AddBindings method, as shown in Listing 6-20.”

Excerpt From: Adam Freeman. “Pro ASP.NET MVC 5.” iBooks. https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewBook?id=4CB3769B56E7D2A905C0332D53D7E31D
EricFromSouthPark
источник
2
Вы не можете избежать этого. Apple запрограммировал это таким образом из-за юридических и авторских прав. Так что плохие новости для вас нужно привыкнуть к этому. :-(
Конки
Может быть, вы можете создать скрипт Automator - но я не уверен, что вы можете редактировать Text Copy + Paste Process ...
bMalum
3
Это действительно раздражает, когда вы на самом деле имеете право копировать фразы : '(
Рубенс Мариуццо
1
Пришел сюда, потому что склеивание примеров из книги Свифта - отстой. Еще одна причина, чтобы получить литературу из iBooks, но все книги по программированию на Kindle.
Дирк Бестер
2
@konqui Они знают, что мы можем удалить это право. Это не очень умно. Это надоедливый шаблон для основной задачи.
Atilkan

Ответы:

11

Этот пост в блоге дает пример того, как сделать это, используя скрипт Automator с сочетанием клавиш.

В Automator создайте новый сервис, который не получает входных данных. Дайте ему эти три действия:

  1. Получить содержимое буфера обмена
  2. Запустить Shell Script
  3. Скопировать в буфер обмена

Поместите это в действие Run Shell Script:

# strip out iBooks citation
sed -E -e 's/^[ ]?[0-9]* //g' | sed -E -e 's/“[ ]?[0-9]?[ ]?//g' | sed -E -e 's/”$//g'  | sed -E -e 's/^(Excerpt From).*//g'

Услуга «Удалить цитату из iBooks» в Automator

После сохранения службы вы можете назначить ярлык для этого действия, например I, в Системные настройки> Клавиатура> Ярлыки> Службы. Затем вы нажимаете этот ярлык перед вставкой, если хотите избавиться от текста, добавленного iBooks.

Амир Раминфар
источник
Спасибо, Амир, очень любезный, это беспокоило меня целую вечность!
GGx - Восстановить Монику Челлио
Разве это не действительно действительно проблематично? Что произойдет, если есть совпадение с регулярным выражением для другой вставленной вами копии?
t0mgs
@ t0mgs, тогда вы просто не используете назначенный ярлык перед вставкой
Мартин
Законный я полагаю. Благодарность!
t0mgs
5

Вы можете использовать Keyboard Maestro для запуска следующего AppleScript:

set original_clipboard to the clipboard
set paragraph_count to count of paragraphs of original_clipboard
-- assuming the last two paragraphs are what you want to strip out--
-- that is, the blank line and the attribution
set new_clipboard to paragraphs 1 thru -2 of original_clipboard as string
set the clipboard to new_clipboard
-- now you can paste

С Keyboard Maestro вы создадите новый макрос, запускаемый некоторым нажатием клавиши (возможно, Command-Option-V), и первым шагом будет «Выполнить AppleScript» (в разделе «Выполнение») с использованием приведенного выше сценария. Следующим шагом будет «Вставить» (в разделе «Буфер обмена»). Вы должны скопировать свой текст, затем щелкнуть туда, куда хотите вставить его, а затем нажать Command-Option-V, чтобы вставить его без двух последних абзацев.

Другие макропрограммы тоже будут работать, если они знают, как выполнить AppleScript.

Кристиан Бойс
источник
Я использовал ваше решение, но конечный результат включает кавычку. Как мне избавиться от этого, чтобы окружающие кавычки были удалены?
Майкл Джак
Вам даже не понадобится внешняя программа - поместите AppleScript в службу автоматизатора, затем установите для службы автоматизатора комбинацию клавиш.
Wowfunhappy
@MichaelJaq Мой ответ содержит макрос для Keyboard Maestro, который также удаляет кавычки.
Рори О'Кейн
@MichaelJaq, вы можете использовать этот метод со сценарием оболочки в этой теме, и он удалит цитату. Измените «Выполнить AppleScript» на «Выполнить сценарий оболочки». Этот AppleScript не удалил их, поэтому это только частичный результат.
Марк Б. Томлинсон
3

Я создал скрипт для ClipMenu (утилита буфера обмена MacOS) для удаления нежелательной информации:

return clipText.replace(/^“/, '').replace(/”\s*Excerpt.*iBooks\.\s?$/, '');

Сохранить как /Users/USERNAME/Library/Application Support/ClipMenu/script/action/iBooks.js

Филип Сук
источник
3

Ниже приведены инструкции по копированию текста из iBooks.

  1. Выделите отрывки, которые вы хотите скопировать.
  2. Всплывающее окно будет открыто автоматически, или вы должны открыть всплывающее окно, используя щелчок правой кнопкой мыши на выбранных местах.
  3. Выберите опцию «Добавить заметку» во всплывающем окне.
  4. Выбранный / выделенный текст будет показан на левой панели.
  5. Щелкните правой кнопкой мыши на отрывках на левой панели и выберите «Копировать».

Я создал видео, чтобы показать, как это работает: https://youtu.be/ZQLl_Gl9TMw

Удачного кодирования!

Рениш Дадхания
источник
> Выбранный / выделенный текст будет показан на левой панели. Какая левая панель? Это не правильно. Никаких левых панелей
Green
3

Ниже описано, как настроить макрос Keyboard Maestro для удаления лишнего текста, включая кавычки, в момент копирования текста из iBooks.

Сначала создайте группу макросов, которая называется «Отображение для iBooks», и добавьте iBooks в «Доступно в этих приложениях». (В более поздних версиях macOS приложение будет называться Books вместо iBooks.)

Группа «Отображение для iBooks» в Keyboard Maestro

Затем создайте макрос с именем «Копировать без цитирования». Назначьте ему горячую клавишу C. Дайте макросу следующие действия:

  1. Буфер обмена> Копировать
  2. Буфер обмена> Поиск и замена
    • Поиск: Системный буфер обмена
    • для: регулярное выражение (с учетом регистра)
      • ^“
    • и заменить на:
      • (оставьте пустым)
  3. Буфер обмена> Поиск и замена
    • Поиск: Системный буфер обмена
    • для: регулярное выражение (с учетом регистра)
      • ”\s*Excerpt.*Books\.\s?$
    • и заменить на:
      • (оставьте пустым)

Вот как это будет выглядеть в Keyboard Maestro:

Макрос «Копировать без цитирования» в Keyboard Maestro

Теперь любой текст в iBooks, скопированный с помощью этого сочетания клавиш, будет лишен лишнего текста с обоих концов.

Рори О'Кейн
источник
Спасибо ответу Филипа Сука за регулярные выражения.
Рори О'Кейн
Для тех, чьи iBooks были заменены на «Книги», просто измените последний RegEx с помощью”\s*Excerpt.*Books\.\s?$
Тим Н.
@TimN. Спасибо. Я обновил ответ и снимки экрана, чтобы использовать это регулярное выражение, поскольку это регулярное выражение должно работать для обоих имен приложений.
Рори О'Кейн
1

из ответа Амира Раминфара. это способ, если вы хотите копировать напрямую без команды C для сохранения содержимого в буфер обмена.

просто измените Workflow, получающий текущий: «text» в «Books.app», и отключите получение содержимого буфера обмена.

Лонг Ву
источник
Добро пожаловать, чтобы спросить другого. Это комментарий к предыдущему ответу, а не отдельный ответ. Это не должен быть его собственный ответ. Пожалуйста, смотрите Как ответить для подсказок по предоставлению ответов здесь. - Из обзора
ФСБ