Scripts discussion (3)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 282
Joined: Thu Sep 10, 2015 9:53 am
Location: Deutschland

Post by sexy96 »

Tak. Chodzi ci o przeciąganie tekstu za pomocą myszy?
Windows 7 64-bit

Mam np. 3 linie tekstu jedna pod drugą.
Jak zamienić miejscami 3 linię z poprzednią linią (przeciągnij i upuść)?

Zawsze ustawia się w drugiej linii przed znajdującym się tam tekstem z drugiej linii,
tworząc jedną długą linie zawierającą tekst z 3 linii i z 2.

Musiałbym za każdym razem tworzyć pustą linię przed drugą i usuwać pustą po trzeciej.

Dziękuję za wcześniejszą poradę. Do przesuwania tekstu na razie mam dwie ikony ze strzałkami i ctrl+Up oraz ctrl+Down.
Jednak wszędzie używam myszki do przesuwania i byłoby dobrze gdyby to działało też w AkelPad.
Byłby dla mnie ten edytor idealny.

Testowałem już:
EditPadPro
EditPlus 3
EmEditor
Notepad++
RJ TextEd
SynWrite
TextPad

i ten jest najlepszy, tylko te przesuwanie linii jest problemem.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

sexy96
Musisz zaznaczać wiersz/wiersze wraz ze znakiem końca wiersza.
Żeby to działało przy przesuwaniu ostatniego wiersza z tekstem w górę, to za tym wierszem też musi być znak końca wiersza (pusta linia).
Dwa sposoby szybkiego zaznaczania całego wiersza łącznie ze znakiem końca wiersza przy pomocy myszy:
- klik na lewym marginesie (sprawdź czy jest włączone: Główne menu->Ustawienia->Opcje->Edytor 2->Lewy klik na marginesie zaznacza wiersz),
- potrójny klik na dowolnym znaku w wierszu.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Instructor wrote:Kley
Хм. Добавлен последний вариант.
This function does not sort alphabetically:

Code: Select all

aFiles.sort(function(a, b)
{
  if (a.toLowerCase() == b.toLowerCase()) return 0;
  if (a.toLowerCase() > b.toLowerCase()) return 1;
  return -1;
});
Maybe it is better to use lstrcmpi for comparison:

Code: Select all

aFiles.sort(function(a, b)
{
  return oSys.Call("Kernel32::lstrcmpiW", a, b);
});

Offline
Posts: 282
Joined: Thu Sep 10, 2015 9:53 am
Location: Deutschland

Post by sexy96 »

wszystko włączone;
v Lewy klik na marginesie zaznacza wiersz
v Zaznaczanie myszą Rich Edit
v Przeciąganie myszą
v Prawy klik przenosi kursor

Brak: "potrójny klik na dowolnym znaku w wierszu" w wersji 4.9.4 i 4.9.5
Przy Hiperłącza jest tylko podwójne kliknięcie i to mam wybrane.

Gdy klikam na marginesie kursor ustawia się prawidłowo za ostatnią literą wiersza (na końcu linii).

przed przesunięciem wgląda tak:
1.linia
2.linia
3.linia
4.linia

po zaznaczeniu całej linii i przesunięciu 3 na 2 wygląda tak:
1.linia
3.linia2.linia

4.linia

Mam Windows 7 64-bit
AkelPad 4.9.4 (x86)

Zainstalowałem na próbę nowy (czysty) Windows 7 i też to samo.
Próbowałem też przesuwanie w ostatniej wersji 4.9.5 x64 i też to samo.
Wersji 4.9.5 x64 nie da się używać, ale to temat na inny post.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

sexy96 wrote:Brak: "potrójny klik na dowolnym znaku w wierszu" w wersji 4.9.4 i 4.9.5
Takiej opcji nie ma w ustawieniach. Chodziło mi o to, że potrójnym klikiem w obrębie wiersza możesz zaznaczyć cały wiersz, podobnie jak pojedynczym klikiem na lewym marginesie.
Gdy klikam na marginesie kursor ustawia się prawidłowo za ostatnią literą wiersza (na końcu linii).
Już widzę w czym jest problem. Kursor (karetka) powinien być ustawiony za końcem wiersza, czyli na początku następnego. Tak żeby zaznaczenie obejmowało rónież znak końca wiersza (EOL).
Jeśli klik na marginesie zaznacza wiersz bez EOL, to mogą być dwie przyczyny:
1. Włączona funkcja NoSelEOL plugina SmartSel (SmartSel::NoSelEOL).
2. Włączona ukryta opcja "16 - Triple click and left margin click selects line without newline character(s)." w parametrze MouseOptions.

Zajmijmy się najpierw pierwszym przypadkiem.
Otwórz dialog "Ustawienia->Wtyczki (Pluginy)" i sprawdź, czy funkcja "SmartSel::NoSelEOL" jest włączona, Jeśli tak, to wyłącz ją na stałe.
Następnie zaznacz wiersz przez kliknięcie (zwróć uwagę, czy również EOL jest zaznaczony) i przeciągnij go. Czy teraz działa poprawnie?

-----
PS
Znak końca wiersza EOL, jako znak specjalny, jest zwykle niewidoczny, tak jak spacja lub Tab. Żeby wyświetlić znaki specjalne włącz plugin SpecialChar (funkcja "SpecialChar::Main").

Offline
Posts: 282
Joined: Thu Sep 10, 2015 9:53 am
Location: Deutschland

Post by sexy96 »

funkcja "SmartSel::NoSelEOL" była włączona
po wyłączeniu przesuwanie działa super. Wielkie dzięki.
Tego znaku EOL na końcu nie widać.
Mam włączone takie pluginy:
http://home.arcor.de/guciu/Plugins.jpg

Jak włączę Plugins -> Special characters -> New line and End of line
to na końcu wierszy jest kwadracik z wpisanym rn i na końcu tekstu kwadracik z wpisanym eof.
Ale widoczność tego EOL jest chyba nie potrzebne.

A jeśli idzie o wersję 4.9.5 x64 to mam taki komunikat:
http://home.arcor.de/guciu/AkelPad3.jpg

Dzieje się to po otwarciu skryptu vbs.
Coś z kodu wyłącza Akel Pad.
Próbuję to wykryć i podejrzewam wpis
Wscript.Quit

Ale po interwencji Windowsa na razie jest spokój

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

sexy96
EOL może być widoczny jako "rn", "r" lub "n" w zależności od ustawionego formatu nowego wiersza.
Dla systemu Windows typowy jest "rn". W edytorze tekstowym pokazywany jest jako pojedynczy znak, ale faktycznie na dysku zapisywane są dwa znaki: "r" = CR = hex 0xD i "n" = LF = hex 0xA.

W wersji AkelPad 4.9.5 nie działa poprawnie plugin XBrackets. Autor plugina nie dostosował go jeszcze do nowej wersji AkelPada, czekamy na aktualizację. Jeśli chcesz uzywać tej wersji, wyłącz plugin XBrackets.
Jeśli potrzebujesz XBrackets, to używaj AkelPad w wersji 4.9.4.

Poza tym możesz wyłączyć pluginy, których nie potrzebujesz lub nie wiesz do czego służą.
Przeczytaj dokumentację programu i pluginów, jest w katalogu ...\AkelPad\AkelFiles\Docs\ (w języku angielskim i rosyjskim). Można czytać za pomocą skryptu AkelPadDocsView.js.

Offline
Posts: 282
Joined: Thu Sep 10, 2015 9:53 am
Location: Deutschland

Post by sexy96 »

Dziękuję.

Offline
Site Admin
Posts: 6411
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

KDJ wrote:This function does not sort alphabetically
Can you give example of session names that not alphabetically sorted?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Instructor
This applies only to the non-Latin characters. Eg. Polish alphabet contains 32 characters (23 Latin: abcdefghijklmnoprstuwyz and 9 non-Latin: ąćęłńóśźż).
The order of the letters is as follows:
aąbcćdeęfghijklłmnńoóprsśtuwyzźż - lower case,
AĄBCĆDEĘFGHIJKLŁMNŃOÓPRSŚTUWYZŹŻ - upper case.
If we have an array:

Code: Select all

ąąą
zzz
aaa
after sorting we get:

Code: Select all

aaa
zzz
ąąą
and it should be:

Code: Select all

aaa
ąąą
zzz
Similarly, in case of the Russian alphabet:

Code: Select all

абвгдеёжзийклмнопрстуфхцчшщъыьэюя
after sorting:

Code: Select all

абвгдежзийклмнопрстуфхцчшщъыьэюяё

Offline
Site Admin
Posts: 6411
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

KDJ
I see, you mean match locale comparison. Why not.

Offline
Posts: 282
Joined: Thu Sep 10, 2015 9:53 am
Location: Deutschland

Post by sexy96 »

To tu nic nie da się zrobić, aby sortować wg. polskich znaków?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

sexy96
Dwa posty wyżej Instructor napisał, że właśnie to zrobił.

Offline
Posts: 282
Joined: Thu Sep 10, 2015 9:53 am
Location: Deutschland

Post by sexy96 »

Jaka tam jest data i godzina postu, czytałem to przed południem i teraz też nie widzę nic na temat sortowania tylko Find i Replace :D

Szukałem wyszukiwarką we wszystkich postach i też nic nie znalazłem
na temat sortowania po polsku.

Miałem te skrypty w katalogu i sortowanie działa tylko przez wywołanie skryptów a nie z menu.
Można coś z tym zrobić, aby nie wyskakiwały te okienka?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Locked