Nie chcę, aby iBooks zawsze wklejał „Fragment z” tego, co skopiowałem

30

Czytam w iBooks oraz niektórych innych zasobach i zbieram notatki w EverNote. Kiedy kopiuję tekst z iBooks, aby zachować go jako notatkę w innej aplikacji zewnętrznej, takiej jak EverNote, wkleja informacje źródłowe, które są tak denerwujące, i muszę je usuwać po każdym wklejeniu. Na przykład:

“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
źródło
2
Nie możesz tego uniknąć. Apple zaprogramowało to w ten sposób ze względu na prawo i prawa autorskie. Tak złe wieści, bo musisz się do tego przyzwyczaić. :-(
konqui
możesz zbudować skrypt Automatora - ale nie jestem pewien, czy możesz edytować tekst Kopiuj + Wklej proces ...
bMalum,
3
To naprawdę denerwujące, kiedy masz prawo do kopiowania fraz : „(
Rubens Mariuzzo
1
Przybył tutaj, ponieważ wklejanie z przykładów książek Swift jest do bani. Jeszcze jeden powód, aby zdobyć literaturę z iBooks, ale wszystkie książki o programowaniu na Kindle.
Dirk Bester
2
@konqui Wiedzą, że możemy to usunąć. To nie jest bardzo sprytne. Jest to irytująca płyta główna do podstawowego zadania.
atilkan

Odpowiedzi:

11

Ten post na blogu zawiera przykład tego, jak to zrobić, używając skryptu Automator ze skrótem klawiaturowym.

W programie Automator utwórz nową usługę, która nie otrzyma żadnych danych wejściowych. Podaj te trzy działania:

  1. Uzyskaj zawartość schowka
  2. Uruchom skrypt powłoki
  3. Skopiuj do schowka

Umieść to w akcji Uruchom skrypt powłoki:

# 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'

Usługa „Usuń cytat iBooks” w Automatorze

Po zapisaniu usługi możesz przypisać skrót do tej akcji, na przykład Iw Preferencjach systemowych> Klawiatura> Skróty> Usługi. Następnie naciśnij ten skrót przed wklejeniem, jeśli chcesz pozbyć się tekstu dodanego przez iBooks.

Amir Raminfar
źródło
Dzięki Amir, bardzo pomocny, to mnie wkurzało od wieków!
GGx - Przywróć Monikę Cellio
Czy to naprawdę nie jest naprawdę problematyczne? Co się stanie, jeśli istnieje dopasowanie wyrażenia regularnego dla czegoś innego, co skopiowałeś i wkleiłeś?
t0mgs
@ t0mgs, po prostu nie używasz przypisanego skrótu przed wklejeniem
Martin
Uzasadnione, jak sądzę. Dzięki!
t0mgs
5

Możesz użyć Keyboard Maestro, aby uruchomić następujący 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

Z Keyboard Maestro utworzyłbyś nowe makro, uruchamiane przez naciśnięcie klawisza (być może Command-Option-V), a pierwszym krokiem byłoby „Wykonaj AppleScript” (w sekcji Wykonaj) przy użyciu powyższego skryptu. Następnym krokiem będzie „Wklej” (w sekcji Schowek). Skopiujesz tekst, następnie klikniesz w miejscu, w którym chcesz go wkleić, a następnie naciśnij Command-Option-V, aby wkleić go bez dwóch ostatnich akapitów.

Inne programy makr również działałyby, o ile wiedzą, jak wykonać AppleScript.

Christian Boyce
źródło
Użyłem twojego rozwiązania, ale końcowy wynik zawiera znak cudzysłowu. Jak się tego pozbyć, aby usunąć otaczające znaki cudzysłowu?
Michael Jaq,
Nie powinieneś nawet potrzebować zewnętrznego programu - umieść AppleScript w usłudze automatyzatora, a następnie ustaw usługę automatyzacji na skrót klawiaturowy.
Wowfunhappy
@MichaelJaq Moja odpowiedź zawiera makro dla Keyboard Maestro, które również usuwa znaki cudzysłowu.
Rory O'Kane
@MichaelJaq możesz użyć tej metody ze skryptem powłoki w tym wątku, aby usunąć cytat. Zmień „Wykonaj AppleScript” na „Wykonaj skrypt powłoki”. Ten AppleScript nie usunął ich, więc tylko częściowy wynik.
MarkBTomlinson
3

Utworzyłem skrypt dla ClipMenu (narzędzie schowka MacOS), aby usunąć niechciane informacje:

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

Zapisz jako /Users/USERNAME/Library/Application Support/ClipMenu/script/action/iBooks.js

Filip Suk
źródło
3

Poniżej znajdują się kroki kopiowania tekstu z iBooks:

  1. Zaznacz fragmenty, które chcesz skopiować.
  2. Wyskakujące okienko zostanie otwarte automatycznie lub musisz je otworzyć, klikając prawym przyciskiem myszy wybrane fragmenty.
  3. Wybierz opcję „Dodaj notatkę” z wyskakującego okienka.
  4. Wybrany / podświetlony tekst zostanie wyświetlony w lewym okienku.
  5. Kliknij prawym przyciskiem myszy fragmenty na lewym panelu i wybierz opcję „Kopiuj”.

Stworzyłem film, aby pokazać, jak to działa: https://youtu.be/ZQLl_Gl9TMw

Miłego kodowania!

Renish Dadhaniya
źródło
> Wybrany / podświetlony tekst zostanie wyświetlony w lewym okienku. Jaka lewa szyba? To jest źle. Nie ma żadnych lewych okien
Zielony
3

Oto jak skonfigurować makro Keyboard Maestro, aby usunąć dodatkowy tekst, w tym cudzysłowy, w momencie kopiowania tekstu z iBooks.

Najpierw utwórz grupę makr o nazwie „Mapowanie specyficzne dla iBooków” i dodaj iBooks w „Dostępne w tych aplikacjach”. (W nowszych wersjach systemu macOS aplikacja będzie nosić nazwę Książki zamiast iBooks).

Grupa „mapowanie specyficzne dla iBooków” w Keyboard Maestro

Następnie utwórz makro o nazwie „Kopiuj bez cytowania”. Przypisz to klawisz skrótu C. Podaj makro następujące działania:

  1. Schowek> Kopiuj
  2. Schowek> Wyszukaj i zamień
    • Szukaj: Schowek systemowy
    • dla: Wyrażenie regularne (wielkość liter ma znaczenie)
      • ^“
    • i zamień na:
      • (zostawić puste)
  3. Schowek> Wyszukaj i zamień
    • Szukaj: Schowek systemowy
    • dla: Wyrażenie regularne (wielkość liter ma znaczenie)
      • ”\s*Excerpt.*Books\.\s?$
    • i zamień na:
      • (zostawić puste)

Tak to będzie wyglądać w Keyboard Maestro:

Makro „Kopiuj bez cytowania” w Keyboard Maestro

Teraz każdy tekst w iBookach skopiowany przy użyciu tego skrótu klawiaturowego będzie pozbawiony dodatkowego tekstu z obu końców.

Rory O'Kane
źródło
Dzięki odpowiedzi Filipa Suka na wyrażenia regularne.
Rory O'Kane
Dla tych, których iBooks został zastąpiony przez „Książki”, wystarczy zmodyfikować ostatni RegEx za pomocą”\s*Excerpt.*Books\.\s?$
Tim N.
@TimN. Dzięki. Zaktualizowałem odpowiedź i zrzuty ekranu, aby użyć tego wyrażenia regularnego, ponieważ to wyrażenie powinno działać dla obu nazw aplikacji.
Rory O'Kane
1

z odpowiedzi Amira Raminfara. jest to sposób, jeśli chcesz skopiować bezpośrednio bez polecenia C, aby zapisać zawartość na tablicy.

wystarczy zmienić Workflow otrzymuje prąd na: „tekst” w „Books.app” i wyłączyć pobieranie zawartości Schowka.

Long Vu
źródło
Witamy w Zapytaj inaczej. To jest komentarz do poprzedniej odpowiedzi, a nie samodzielna odpowiedź. To nie powinna być jego własna odpowiedź. Proszę zobaczyć Jak odebrać porady na temat udzielania odpowiedzi tutaj. - Z recenzji
fsb