Linux за българи: Форуми

Нетехнически теми => Идеи и мнения => Темата е започната от: Naka в Dec 28, 2021, 09:48



Титла: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: Naka в Dec 28, 2021, 09:48
Трябва ми някакъв обикновен текстови редактор, който да разделя екрана на две, да отваря два различни файла, но да ги показва синхронно.
1-вия ред да съответства на 1-вия ред на другия файл, 2-2 1248990-1248990 и т.н.

Ето тук един пример, за тази функционалност която търся:
https://www.linguee.com/english-bulgarian/search?query=christmas&source=auto

Може да е конзолно, може да е графично, нещо подобно на diff/kdiff но без сравнениете - само показване. Щеше да е добре ако less например имаше такава възможност...да разделя екрана и да показва два файла синхронно ама няма.

Тук описват подобно нещо: (Displaying Files Side by Side)
https://www.baeldung.com/linux/files-display-compare
но с pr -m -t inventory-1.txt inventory-2.txt не става защото тази команда изчита целите два файла и прави сливане, което показва и скача на края. А на мен ми трябва функционалност като на less - само да им видиш началото и да превъртиш ако трябва. А Файловете са много големи 1Gb++

Най-доброто до което се добрах засега е:
Код:
vim -O +'windo set scrollbind' en.txt bg.txt

При редакторите наричат тази функция още sync scroll. Любимото ми kate, може да разделя екрана всякък, но няма заключване на скрола.





Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: kingfisher в Dec 28, 2021, 10:14
vimdiff file1 file2 ?


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: Naka в Dec 28, 2021, 10:21
vimdiff file1 file2 ?

Абсолютно всеки ред на file1 и file2 е тотално различен. Всичко свети в червено, Щеше да е хубаво ако я нямаше тази функционалност на diff. А и освен това забавя, щото сравнява всеки ред.
Подобни редактори предполагам, че може да използват при преводите на субтитрите на филмите. Пробвах и Qtlinguist, Lokalize...но те са за преводи(локализация) на програмите и не искат да отварят обикновен txt файл.

За Notepad++ под windows на няколко пъти чета, чета че имало такава възможност: To achieve this, go to View -> Synchronize Vertical Scrolling (or Synchronize Horizontal Scrolling). че и бутончета имало.
Толкова ли няма такова нещо на някой линукски редактор???

----
PS: търся аз в Гого...Няма нищо съществено, обаче на втора страница, след има няма 1 час, Гого вече услужливо ми предлага да видя в linux-bg.org
Цитат
Viewer/Editor който да показва 2 файла синхронно един до ...
https://www.linux-bg.org › forum
1 публикация · 1 автор
При редакторите наричат тази функция още sync scroll. Любимото ми kate, може да разделя екрана всякък, но няма заключване на скрола

https://www.google.com/search?q=linux+editor+Synchronize++Scrolling&client=firefox-b-e&ei=J9LKYfmKJ9qSxc8PzIuT-Aw&start=10&sa=N&ved=2ahUKEwi5utXpkIb1AhVaSfEDHczFBM8Q8NMDegQIARBN&biw=1920&bih=984&dpr=1


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: kingfisher в Dec 28, 2021, 11:02
Цветовете се махат с :diffoff!
По добре :setlocal nodiff


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: Naka в Dec 28, 2021, 11:54
малка доработка:
Код:
vi -O +'windo set noma wrap number scrollbind' file1 file2

с опции:
noma - без модификация (по добре от readonly, предпазва от натискане на insert)
wrap - пренасяне на дългите редове
number - номериране на редовете, в жълти цифри..много полезно
scrollbind - заключване на скрола.


Обаче......скрола пак не е съвсем синхроннен ред по ред. Размества го, често и до 100 реда после пак се намества....Не работи правилно.


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: remotexx в Dec 28, 2021, 11:57
Аз също не мисля че дифа ще свърши работа /с цвят или без/ - винаги ще се намерят два реда с нещо подобно напр. някое число - макар и различно и то ще мачне амнайсти ред със сто и амнайсти и отиде скрола на кино...

Атом има добавки /които аз лично не съм ползвал/ но виж напр. тази

https://atom.io/packages/scroll-sync

Също така може би и вижуъл студио код може да има... нищо че не е баш редактор за текст.

П.П. аз не разбрах - ти искаш и да ги редактираш или само да ги четеш/гледаш/сравняваш?

Инак за търсене в супер големи файлове много съм доволен от
https://glogg.en.softonic.com/


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: remotexx в Dec 28, 2021, 12:02
Само от любопитство - ако махнеш wrap т.е. го направиш nowrap пак ли ги  омотва редовете? Предполагам че напр. вижда зор да синхронизира напр. Ред 15 wrap-нат на 10 редa с другия ред 15 ама на 20 реда


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: Naka в Dec 28, 2021, 12:32
Да и без wrap пак ги омотва.

Търсих го този atom  (редактор), но го няма в репотата на центос. Този атом стандартен/иползван редактор ли е за линукс. Дебиан?
Най-много искам да ги разглеждам....редактирането не е задължително.


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: ddantgwyn в Dec 28, 2021, 13:17
Търсих го този atom  (редактор), но го няма в репотата на центос. Този атом стандартен/иползван редактор ли е за линукс. Дебиан?

Код:
[root@amasing ~]# dnf search atom
Last metadata expiration check: 5:41:25 ago on Tue 28 Dec 2021 07:33:11 AM EET.
==================================================================== Name Exactly Matched: atom ====================================================================
atom.x86_64 : A hackable text editor for the 21st Century.

fedora 35 ::)

може дa погледнеш на сайта им дали няма готов rpm пакет за centos.

https://atom.io/download/rpm


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: Naka в Dec 28, 2021, 13:30
Код:
vi -O +'windo set noma wrap number scrollbind' file1 file2

има и още някаква 'подобна' (на scrollbind ) команда.
Код:
:syncbind
която като я напиша и почти спира да го размества, само от долу по 1-2 реда. отгоре е вече синхронно и с wrap.
но не е ясно какво точно прави:
Цитат
:syncbind
Force all 'scrollbind' windows to have the same
         relative offset.  I.e., when any of the 'scrollbind'
         windows is scrolled to the top of its buffer, all of
         the 'scrollbind' windows will also be at the top of
         their buffers.

и това :syncbind не е опция, а команда? как мога да я въведа в командния ред, така че да не пиша всеки път?


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: remotexx в Dec 28, 2021, 21:57
Atom е голям ГУИ и не знам плъгина дали ще се справи с големи файлове 3ГБ и нагоре /с малки не се и съмнявам че работи/

Имам и друга идея - диф с опция за look ahead/behind 0 реда
Ако не става директно от vim/vimdiff давай директно с diff от конзолата - който ще ти направи 3 ГБ диф файл който после отваряш с vim с опцията за обезцветяване...
Дано работи - аз досега не съм срещал диф вюър който да размества сравняваните редове...само че винаги съм я наглася тая опция от Г/УИ та не знам как се казва за конзолното
т.е. ти де факто му указващ да сравнява ред по ред без да търси напред/назад за съвпадения а само с текущия ред - е верно всичките ще са различни ама пък ти ще го гледаш с опцията за обезцветяване....

П.П. Сега като се замисля може и да я няма конзолния diff тая опция - беше много отдавна и тогава трябваше да го побутна (3rd party дали не беше) GUI tool-a наобратно т.е. да гледа напред (+няколкостотин К реда напред) та да види че една функция е преместена от началото в края на файла (че иначе все ми даваше изтрита в началото и добавена в края но не ги свързваше със стрелка че всъщност е преместено - и като му дигнах lookahead на няколкостотин К и се оправи) - не мога да се сетя с коя утилка го правих навремето, но за съжаление е ГУИ и вероятно ще иска да зареди всичко у РАМта 2х1.5ГБ


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: remotexx в Dec 28, 2021, 23:30
С VSCode може да пробваш някой от тези добавки

https://github.com/mupchrch/split-diff
https://marketplace.visualstudio.com/items?itemName=dqisme.sync-scroll
https://stackoverflow.com/questions/59187587/vs-code-how-to-scroll-split-panels-simultaneously


ето го и в действие - нищо че ще дава всички редове различни (може да има опция да не оцветява редовете)
но.. може да иска да зареди цлите файлове в паметта, и ако има активен wrap може малко да ги размества но пък лесно се изключва  :D
https://github.com/Microsoft/vscode/issues/34762


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: jet в Dec 29, 2021, 01:58
diff -y  file1 file2  |  less


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: remotexx в Dec 29, 2021, 11:06
Хе-хе добрият стар  coreutils е пълен с изненади

https://www.gnu.org/software/coreutils/manual/html_node/paste-invocation.html#paste-invocation

The paste utility is a member of GNU Coreutils package, therefore it’s available on all Linux distros.

The paste command just does one thing: Merge lines of files. It’s exactly what we need to solve our problems.



Или пък ги вкарваш в БД /че ексела ще гръмне/ и после  всеки туул дето чете от БД ще ги мачва вярно на 100 % щото ще са в две колони и по ред на номерата....


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: Naka в Dec 29, 2021, 13:06
С VSCode може да пробваш някой от тези добавки

https://marketplace.visualstudio.com/items?itemName=dqisme.sync-scroll

Инсталирах го това VSCode по центос7 с инструкциите от тук:
https://linuxize.com/post/how-to-install-visual-studio-code-on-centos-7/

МС си имат много яко репо за линукс. всичко им е подредено..Инсталира се с yum-а без никакви засечки...3 пакета по 100Мб.

Отваря много бързо големите тxт файлове.....Дотук добре..Обаче този  екстенжън за sync-scroll не работи. И той се инсталира без оплаквания, обаче не иска да си покзва опциите и не работи.

Пробвах и един друг:
https://marketplace.visualstudio.com/items?itemName=masakit.synchronized-scrolling

Който също се инсталира без проблеми, има опции...обаче и той не работи.
Сигурно по виндовс и двата ектенжъна ще работят ама тук НЕ.


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: Naka в Dec 29, 2021, 17:46
Тоя атом голям запек. Изобщо с голямо съмнение се отнасям към програми, които не си обявяват версиите във сайта. atom.x86_64.rpm
Много ми заприлича на скайпа.
Абе инсталирай това което ти даваме и не задавай много въпроси. Много на комерсилно бие.

Така първата  atom.x86_64.rpm се оказа версия 1.58 и даде такива глупави депендаси под центос.....
Втората която намерих, по-ниската беше 1.57. Тя се инсталира без оплаквания от рпм-а. Обаче не тръгна. Ни вопъл ни стон. Ни оплакване....просто отива на нов ред и не тръгва.

Нямам време да се занимавам.  И двете версия изцвъкани през 2 месеца през 2021. Ако от сега е така....какво остава за самата програма ако тръгне.

Цитат
Sorry to say, but over time, Atom has become increasingly incompatible with CentOS 7 (which was first released in 2014 and is mostly stable since then -- a lot of old dependencies there).

Atom actually doesn't compile on CentOS 7 anymore (there are errors during compile) or run on CentOS 7 anymore. See these discussions for info about why:

    https://github.com/atom/atom/discussions?discussions_q=centos
    Particularly: #22568

Furthermore, as to the specific problem you are reporting in this GitHub issue, Atom's .rpm package now won't install when your rpm installer program is too old. We started using boolean dependencies in #22076; boolean dependencies are only supported in rpm 3.14 or newer. CentOS 7 appears to have rpm 3.11 (https://pkgs.org/search/?q=rpm).

So, there are multiple reasons that make it difficult to build, install, and/or actually use Atom on CentOS 7. I would recommend staying on an older version of Atom if you want to keep using Atom on CentOS 7, or try to update to a newer OS if you can.





Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: remotexx в Dec 29, 2021, 22:31
Съжалявам колега...
Ами значи ти остава само вградения /плъгин/

т.е. вграденото сравняване - трябва да работи

https://stackoverflow.com/questions/59187587/vs-code-how-to-scroll-split-panels-simultaneously

Но ако размества редове - само paste /from coreutils/ ще работи с всякой редактор /е верно read only - ама па ти така го искаш/


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: Naka в Dec 30, 2021, 09:53
т.е. вграденото сравняване - трябва да работи

Да работи, много бързо ги отваря и превърта. Файловете са с 1 200 000 реда.
Обаче не е много интуитивно отварянето. Не може да ги отвориш по нормалния начин с 'Оpen' в два панела пък след това да им кажеш компаре.

А трябва:
Open folder
file1 -> Select For Compare (нищо не се случва)
file2 -> Compare With Selected (е сега ги отваря и двата)

синхронно, превърта и почти всичко е наред, обаче изписва съобщение:
"Cannot compare files because one file is too large."

Което и точно това ми трябва....да не може да ги сравнява...- никакъв diff не се включва, няма оцветяване на файловете - само да ги превърта синхронно. :)

Да благодарим на МС, че не може да прави diff на толкова големи файлове.

Обаче има и проблем с Visual Studio Code, че word wrap-a не работи на големи файлове. Независимо дали ги отваряш по нормалния начин, или за compare. Пробвах го на малки - работи си.

Както и да е, това с VSCode за сега е спасение на ситуацията.


Титла: Re: Viewer/Editor който да показва 2 файла синхронно един до друг.
Публикувано от: Naka в Dec 30, 2021, 11:40
Решение с vi:

gvim -O  -c 'autocmd VimEnter * syncbind | colorscheme koehler' +'windo set noma wrap number relativenumber scrollbind' file1 file2

Оказа се че има пакет vim-X11 в който има графичното gvim.
предимство е, че е по висока резолюцията отколкото конзолата, може да сменяш шрифта....има менюта и изглежда почти като текстови редактор.

опциите:
noma - без модификация (по добре от readonly, предпазва от натискане на insert)
wrap - пренасяне на дългите редове
number - номериране на редовете, в жълти цифри..много полезно
relativenumber - още по полезно и приятно номериране
като се включат и двете number + relativenumber става нещо което наричат
хибридно номериране. https://jeffkreeftmeijer.com/vim-number/
браво на този дето го е измислил!!!
scrollbind - заключване на скрола. Но не е достатъчно. трябва и команда :syncbind

Автоматичното стартиране на команди става с това:
-c 'autocmd VimEnter * syncbind | colorscheme koehler'

https://stackoverflow.com/questions/6821033/vim-how-to-run-a-command-immediately-when-starting-vim
https://stackoverflow.com/questions/8679742/vim-execute-command-after-multiple-files-loaded

Цялата работа е да може да не се набира на ръка :syncbind - което вече наистина прави синхронизиран скрол. Но ако не става и се размества по време на работа може да се набира по едно профилактично :syncbind
Тук VimEnter е някакъв event на vi-то който се запуска най-най-накрая, след зареждането на всичките файлове.
| - е разделител на команди
:colorscheme koehler - може и без това


цялата тази измъчена 'красота' се слага в един алиас:

alias {2less,less2}="gvim -O  -c 'autocmd VimEnter * syncbind | colorscheme koehler' +'windo set noma wrap number relativenumber scrollbind'"

и във файл /etc/profile.d/viZZZ-alias.sh
за да е постоянно и за всички, но може да се сложи и в ~/.bashrc

използване:
2less file1 file2
или
less2 file1 file2

Превключването между двата ляв и десен прозорец става с ctrl+w Синхронизирания скрол работи само ако фокуса на мишката е във текущия прозорец - иначе размества. Но щом се върне в текущия прозорец и се превърти скрола малко нагоре - пак се намества. Това наместване без командата :syncbind не става!

Та те така. Но все още търся по-нормален редактор с такава функционалност.