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

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.


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.


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


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!


> 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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.