MultiClipboard#

Podstawowe informacje#

Instalacja#

Przebiega w sposób standardowy. Finalnie na całą wtyczkę składają się następujące pliki:

Menu wtyczki#

U góry na Pasku menu plugin tworzy następujące menu wtyczki:

MultiClipboard - menu wtyczki

Rysunek. MultiClipboard - menu wtyczki

Opis#

Wtyczka tworzy jedno dokowalne okno i drugie specjalne okno (jako popup) z listą ostatnio skopiowanych danych tekstowych, które trafiły do własnego schowka:

MultiClipboard - panel MultiClip Viewer (lewy kontener) i popup MultiClipboard Paste (na środku)

Rysunek. MultiClipboard - panel MultiClip Viewer (lewy kontener) i popup MultiClipboard Paste (na środku)

Dla uproszczenia dalszych opisów zwrot "kopiowanie danych" oznacza także operację "wycinanie danych", bo obie te czynności wypełniają schowek nowymi wpisami.

Podstawowe informacje na temat wtyczki i skrótowy opis poszczególnych jej poleceń można znaleźć w oknie przywoływanym za pomocą polecenia About.. z menu wtyczki.

MultiClipboard - okno About z podstawowymi informacjami o wtyczce

Rysunek. MultiClipboard - okno About z podstawowymi informacjami o wtyczce

Całość bliźniaczo przypomina wbudowane w Notepad++ okno Historia schowka, ale wtyczka MultiClipboard pozwala szerzej operować na danych tekstowych ze schowka oraz daje większą kontrolę nad zachowaniem samego schowka.

Własny schowek#

Wtyczka posiada własny schowek # i utrzymuje dla niego osobną historię, które są niezależne od systemowego schowka. Po uruchomieniu programu Notepad++ wszystkie dane tekstowe skopiowane z dowolnego programu lub samego NPP (zależnie od ustawień) trafiają do własnego schowka. Odbywa się to nawet przy zamkniętym oknie MultiClip Viewer. Wraz z zamknięciem programu NPP stan własnego schowka jest kasowany bądź zapamiętywany (zależnie od ustawień). Zapamiętane wpisy i odpowiadające im dane tekstowe są przetrzymywane w pliku NPP\plugins\Config\MultiClipboardSession.dat. Plik ten ma swój własny format danych. Istotne jest to, że stan tego pliku jest zapisywany dopiero przy prawidłowym zamknięciu programu, dlatego też ręczną jego modyfikację należy przeprowadzać w odpowiedni sposób.

Można szybko przeczyścić historię schowka kasując wspomniany plik lub klikając na przycisk szybkiego dostępu Delete All Items.

MultiClip Viewer#

Okno MultiClip Viewer wprowadza do programu Notepad++ możliwość przeglądania i operowania na wpisach znajdujących się we własnym schowku. Okno to dzieli się na dwie osobne części w układzie góra-dół:

Dla uproszczenia wszystkie charakterystyczne obszary tego okna można zobrazować za pomocą opisowej grafiki #:

MultiClipboard - okno MultiClip Viewer z przykładową zawartością w układzie góra-dół

Rysunek. MultiClipboard - okno MultiClip Viewer z przykładową zawartością w układzie góra-dół

Można zmieniać rozmiar okna MultiClip Viewer poprzez standardowe przeciąganie jego krawędzi lub rogów, i po ponownym uruchomieniu NPP nowe wartości są zapamiętywane. Można także zmieniać proporcję podziału między częścią górną a dolną tego okna poprzez przeciągnięcie poziomego paska separacji w nowe miejsce. Niestety po ponownym uruchomieniu NPP nowe proporcje podziału nie są zapamiętywane i wszystko powraca do domyślnych rozmiarów, tj. część górna i część dolna są sobie równe.

Interesujące jest to, że po ustawieniu pewnej szerokości okna MultiClip Viewer, które nie jest zadokowane w kontenerze, samoczynnie przejdzie ono z układu góra-dół do układu lewo-prawo, gdzie po lewej stronie znajdą się przyciski szybkiego dostępu i lista skopiowanych danych, po prawej stronie znajdzie się podgląd skopiowanych danych, a nad nimi wszystkimi wyląduje belka tytułowa.

MultiClipboard - okno MultiClip Viewer z przykładową zawartością w układzie lewo-prawo

Rysunek. MultiClipboard - okno MultiClip Viewer z przykładową zawartością w układzie lewo-prawo

W przypadku okna zadokowane w kontenerze układ podziału wynika wprost z zastosowanego kontenera i nie podlega zmianie. Dla kontenera lewego i prawego mamy układ w stanie góra-dół, a dla kontenera górnego i dolnego mamy układ w stanie lewo-prawo.

MultiClipboard - panel MultiClip Viewer z przykładową zawartością w dolnym kontenerze i w układzie lewo-prawo

Rysunek. MultiClipboard - panel MultiClip Viewer z przykładową zawartością w dolnym kontenerze i w układzie lewo-prawo

Będąc wewnątrz okna MultiClip Viewer możemy się przełączać między listą skopiowanych danych a podglądem skopiowanych danych tylko i wyłącznie za pomocą lewego/prawego przycisku myszy. Ogólnie rzecz biorąc użytkowanie wtyczki w większości przypadków odbywa się za pośrednictwem myszy, co niekoniecznie musi odpowiadać osobom, które nie lubią zbyt często odrywać rąk od klawiatury.

Belka tytułowa#

Belka tytułowa znajduje się na samej górze okna MultiClip Viewer (patrz opisowa grafika). Wyświetla ona nazwę okna "MultiClip Viewer" oraz czerwony przycisk X służący do jego zamknięcia.

Przyciski szybkiego dostępu#

Okno MultiClip Viewer pod swoją belką tytułową udostępnia osiem przycisków dla najczęściej wykonywanych operacji (patrz opisowa grafika). Gdy szerokość okna MultiClip Viewer jest zbyt mała by pomieścić wszystkie przyciski, to niewidoczne przyciski zostaną zwinięte do jednej listy dostępnej pod ostatnim przyciskiem reprezentowanym przez wskaźnik >>.

MultiClipboard - okno MultiClip Viewer z przyciskami szybkiego dostępu

Rysunek. MultiClipboard - okno MultiClip Viewer z przyciskami szybkiego dostępu

Poniżej zamieszczam opis każdego przycisku szybkiego dostępu zgodnie z kolejnością występowania w oknie MultiClip Viewer:

Lista skopiowanych danych#

Lista skopiowanych danych znajduje się pod przyciskami szybkiego dostępu w oknie MultiClip Viewer (patrz opisowa grafika). Elementami listy są wpisy reprezentujące każdy skopiowany tekst, które znajdują się we własnym schowku wtyczki. Domyślnie lista zawiera tylko 10 najbardziej aktualnych wpisów, ale w opcjach wtyczki można ustawić dowolną ich ilość. Wpisy nie muszą wyglądać identycznie jak przetrzymywane przez nie rzeczywiste dane, które są prezentowane w podglądzie skopiowanych danych. Na pierwszej pozycji w liście zawsze znajduje się ostatnio skopiowany tekst. Lista zawiera tylko i wyłącznie unikatowe wpisy, dlatego próba skopiowania tego samego tekstu, który występuje gdzieś na dalszych miejscach listy, nie przyniesie żadnego efektu. Jeśli liczba wpisów jest większa niż wysokość listy skopiowanych danych to pojawia się pionowy pasek przewijania. Poziomy pasek przewijania nigdy nie występuje i przy zbyt wąskim oknie MultiClip Viewer wpisy są przysłaniane.

Dla dużej liczby wpisów i ustawionej za małej wysokości w liście skopiowanych danych wtyczka nie pokazuje prawidłowo wpisu znajdującego się na ostatniej pozycji tejże listy, chociaż jest on tam obecny i można go wybrać klawiszami. Problemem jest poziomy pasek separacji rozdzielający obie listy, który potrafi przesłonić ostatni wpis, jak również dolną strzałkę na pionowym pasku przewijania (kiedy pasek się pojawi).

MultiClipboard - lista skopiowanych danych z błędnym wyświetlaniem ostatniego wpisu

Rysunek. MultiClipboard - lista skopiowanych danych z błędnym wyświetlaniem ostatniego wpisu

Przy użyciu myszy lub klawiatury możemy wykonywać pewne operacje na elementach z listy skopiowanych danych. Oto kilka możliwych wariantów:

Warto przypomnieć, że przyciski szybkiego dostępu także wykonują pewne operacje na wpisach z listy skopiowanych danych.

Trzeba wyraźnie zaznaczyć, że przy kopiowaniu danych tekstowych do własnego schowka zapamiętywane są wszystkie znaki (włącznie z białymi znakami i znakami końca linii), choć reprezentowane przez nie wpisy na liście skopiowanych danych zawsze zajmują jedną linię. Przy wstawianiu tekstu wszystkie te znaki zostaną prawidłowo odtworzone.

Podgląd skopiowanych danych#

Podgląd skopiowanych danych znajduje się pod listą skopiowanych danych w oknie MultiClip Viewer (patrz opisowa grafika). Pole to wyświetla dane tekstowe w rzeczywistej postaci (tj. włącznie z białymi znakami i znakami końca linii), które są powiązane z aktualnie zaznaczonym wpisem na liście skopiowanych danych. Po pierwszym uruchomieniu programu Notepad++ pole to jest nieaktywne (wyszarzone) aż do momentu, kiedy nie wybierzemy chociaż raz jakiegoś wpisu z listy skopiowanych danych. Podgląd ma zawsze widoczne paski przewijania (pionowy i poziomy), ale robią się one aktywne dopiero wtedy, gdy dane tekstowe nie mieszczą się w aktualnych rozmiarach pola. Przy dwóch aktywnych paskach przewijania kółko myszy przesuwa pionowy pasek przewijania.

MultiClipboard - okno MultiClip Viewer z zablokowanym (wyszarzonym) podglądem skopiowanych danych

Rysunek. MultiClipboard - okno MultiClip Viewer z zablokowanym (wyszarzonym) podglądem skopiowanych danych

W ujęciu praktycznym podgląd skopiowanych danych to w zasadzie wielowierszowe pole tekstowe, które pozwala wykonywać standardowe operacje na wyświetlanych w nim danych tekstowych. Aby było to możliwe najpierw należy aktywować to pole np. poprzez dwukrotne kliknięcie lewym przyciskiem myszy w dowolnym miejscu tego pola. Stan prawidłowej aktywacji pola najłatwiej rozpoznać poprzez miganie kursora w jego wnętrzu.

MultiClipboard - podgląd skopiowanych danych z aktywnymi paskami przewijania i z umieszczonym kursorem w jego wnętrzu

Rysunek. MultiClipboard - podgląd skopiowanych danych z aktywnymi paskami przewijania i z umieszczonym kursorem w jego wnętrzu

Po aktywacji podglądu możemy dowolnie modyfikować zawarte w nim dane tekstowe, pod warunkiem, że nie została nałożona blokada na edycję dużych fragmentów tekstu. Przy nieaktywnej blokadzie wszystkie wprowadzone przez nas zmiany zostaną od razu zapamiętane. Działają wszystkie standardowe mechanizmy operowania na tekście wykonywane myszą lub klawiaturą (zaznaczanie, wklejanie, wycinanie, kopiowanie, przesuwanie kursora, itd.). Działa także standardowe menu kontekstowe przewidziane dla pól tekstowych. Istotne jest to, że dane skopiowane z tego pola nie trafiają do własnego schowka, tylko wprost do systemowego schowka.

MultiClipboard - standardowe menu kontekstowe dla podglądu skopiowanych danych

Rysunek. MultiClipboard - standardowe menu kontekstowe dla podglądu skopiowanych danych

MultiClipboard Paste#

Wtyczka oferuje specjalne okno (jako popup), które przywołujemy poleceniem MultiClipboard Paste (domyślny skrót Ctrl+Shift+V) dostępnym w menu wtyczki, pod warunkiem, że opcja Use paste menu... jest włączona. W przeciwnym razie polecenie od razu wstawia dane tekstowe w aktualne położenie kursora Obszaru edycji na takiej zasadzie, że cykliczne wywołanie tego polecenia iteruje kolejno po wszystkich danych tekstowych znajdujących się we własnym schowku.

Przypominam, że można sobie dodać polecenie MultiClipboard Paste do menu kontekstowego Obszaru edycji.

Popup wyświetl wszystkie wpisy jakie znajdują się we własnym schowku. Całość jest bardzo podobna do listy skopiowanych danych, a główna różnica objawia się dodatkową indeksacją przy wpisach w popupie (można wyłączyć). Przy domyślnych ustawieniach szerokość popupa wyświetla maksymalnie do 40 początkowych znaków w każdym wpisie, ale wartość tę można dowolnie zmieniać.

MultiClipboard - popup MultiClipboard Paste z 10-oma przykładowymi wpisami

Rysunek. MultiClipboard - popup MultiClipboard Paste z 10-oma przykładowymi wpisami

Położenie popupu zależy od sposobu wywołania jego polecenia przywołującego:

Przy zbyt dużej liczbie wpisów popup wyświetla górną i dolną strzałkę przewijania. Indeksy z lewej strony wpisów (jeśli zostały włączone) początkowo są cyframi 1-9 (włącznie z 0), potem dużymi literami A-Z, następnie znakami [, \, ], ^, _, `, potem małymi literami a-z i znów znakami {, , }, ~, i na samym końcu znakiem, którego nie jestem w stanie rozpoznać. Po wyczerpani wspomnianych znaków (łącznie 73) kolejne wpisy nie otrzymują już żadnego indeksu. Działanie indeksów jest zależne od ich rodzaju:

Zastosowanie znaku ↓ jako indeksu wydaje się błędne, bo jego wprowadzenie wymaga kombinacji klawiszy Lewy Alt+25 (z klawiatury numerycznej), a wciśnięcie lewego/prawego klawisza Alt domyślnie zamyka wszystkie pootwierane popupy w programie NPP.

MultiClipboard - popup MultiClipboard Paste z wyczerpanymi wszystkimi indeksami dla wpisów

Rysunek. MultiClipboard - popup MultiClipboard Paste z wyczerpanymi wszystkimi indeksami dla wpisów

Przy wyłączonych indeksach działa standardowe klawiszowe wybieranie w oparciu o pierwszy znak danego wpisu, i w zależności od tego pierwszego znaku wszystko odbywa się na tych samych zasadach, jak wspomniano wyżej.

Wybranie i zatwierdzenie (myszą lub klawiaturą) jakiegoś wpisu z popupu wprowadza przetrzymywane przez niego dane tekstowe w aktualne położenie kursora Obszaru edycji. Daje zatem podobny efekt, jak przycisk szybkiego dostępu Paste Item lub dwuklik na dowolnym wpisie z listy skopiowanych danych, i na tym jego rola się kończy. Jedyna istotna różnica jest taka, że wstawianie tekstu poprzez popup przenosi odpowiadający mu wpis na pierwszą pozycję w historii własnego schowka, i jest to automatycznie odzwierciedlane w samym popupie, jak i w liście skopiowanych danych. Jeśli nie potrzebujemy dokładniejszej kontroli nad wpisami i ich danymi tekstowymi to możemy całkowicie wyłączyć okno MultiClip Viewer i zamiast niego korzystać tylko z popupu.

MultiClipboard Options#

Wtyczka daje większą kontrolę nad zachowaniem własnego schowka za pośrednictwem okna MultiClipboard Options, które przywołujemy poleceniem MultiClipboard Options dostępnym w menu wtyczki. Alternatywnie można skorzystać z identycznie działającego przycisku szybkiego dostępu MultiClipboard Options.

MultiClipboard - okno MultiClipboard Options w domyślnym stanie

Rysunek. MultiClipboard - okno MultiClipboard Options w domyślnym stanie

Po najechaniu na daną opcję pojawia się jej opis w dolnej części okna MultiClipboard Options (tuż nad przyciskami OK i Cancel). Po wprowadzeniu zmian ich zatwierdzenie następuje dopiero po kliknięciu na przycisku OK. Ustawienia są przetrzymywane w pliku konfiguracji # NPP\plugins\Config\MultiClipboard.xml. Istotne jest to, że stan tego pliku jest zapisywany dopiero przy prawidłowym zamknięciu programu, dlatego też ręczną jego modyfikację należy przeprowadzać w odpowiedni sposób. Można też całkowicie usunąć ten plik, co przywróci całą konfigurację do domyślnych wartości.

Poniżej zamieszczam dokładniejszy opis wszystkich opcji z okna MultiClipboard Options zgodnie z kolejnością występowania. Lista prezentuje domyślne wartości każdej z opcji, ich angielskie opisy z dolnej części okna a także dodatkowe uwagi w naszym rodzimym języku:

Alternatywa#

Ogólnie rzecz biorąc przy długotrwałej pracy z tekstem wtyczka oferuje ciekawe i przydatne rozwiązania. Niestety autor zaprzestał dalszego rozwoju wtyczki i ostatnia jej aktualizacja pochodzi z 9 września 2011 roku. Mimo upływu tylu lat wtyczka wciąż działa prawidłowo, a największa jej ułomność (wynikająca z oczywistych powodów) to brak wersji 64-bitowej. Były próby przeportowania na nowszą architekturę, ale bez większego sukcesu. Jeśli nie mamy dużych wymagań to można wypróbować wbudowane w Notepad++ okno Historia schowka, ewentualnie sięgnąć po jakiś zewnętrzny program typu Ditto.

Może w przyszłości ktoś pokusi się o dalszy rozwój tego niezwykle użytecznego projektu. Na stronie domowej wtyczki autor wypisał kilka planowanych nowości i odnalezionych błędów, których nie udało się wprowadzić/rozwiązać. Warto je tutaj przytoczyć w oryginalnej postaci:

Planned

The following are features planned for the continual development of MultiClipboard 2. While they are planned, they are by no means guaranteed to be delievered due to any problems/constraints.

  • Tooltip of popup menu displays full clip text.
  • Auto-highlight of 2nd item in pop-upmenu.
  • For paste all, allow customisable text in between items.
  • Improve the options dialog. It doesn't scale well when more options are added.
  • Drag and drop of text within MultiClip Viewer listbox to rearrange items. Implement listbox as OLE drop target.
  • Remember the position of the splitter in the MultiClip Viewer across sessions.
Known issues
  • When the document is converted from one EOL type to another in Notepad++, the clipboard text aren't updated.
  • When keymapping of paste is changed from Ctrl-V or Shift-Insert to something else, MultiClipboard will not be able to hook into the paste operation. This is a limitation of Notepad++, because it does not notify plugins of paste operations nor expose its shortcut mappings to plugins.
Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

MultiClipboard (H1) Podstawowe informacje (H2) Instalacja (H2) Menu wtyczki (H2) Opis (H2) Własny schowek (H3) MultiClip Viewer (H3) Belka tytułowa (H4) Przyciski szybkiego dostępu (H4) Lista skopiowanych danych (H4) Podgląd skopiowanych danych (H4) MultiClipboard Paste (H3) MultiClipboard Options (H3) Alternatywa (H2)