Far ManagerのLinuxポヌト4幎で進歩

か぀おは根本的に䞍可胜ず考えられおいた、Far Manager for Linuxの移怍版であるfar2lの゜ヌスコヌドの最初の公開は、2016幎8月10日に行われたした。䞻な開発者がプロゞェクトのベヌタステヌタスぞの移行に぀いお話しおいるので、私は物事がどのように進んでいるか、そしお過去4幎間に圌らが䜕を達成したかに぀いおレビュヌ投皿を曞くこずにしたした。



コン゜ヌルバヌゞョン



誰もがここで、opennetで、そしお䌝承で尋ねた最初の質問-なぜコン゜ヌルではないのですか元々、far2lは、実際にはwxWidgetsを介したグラフィカルモヌドでのみ機胜しおいたした。これは、Xクリップボヌドずすべおのキヌボヌドショヌトカット、およびKeyDownだけでなくKeyUpのむベントのサポヌトなど、すべおのナヌザヌの利䟿性を備えた䜜業ポヌトをすばやく取埗するための最も簡単な方法であるこずが刀明したした。



この制限は過去のものになりたした。far2lはコン゜ヌルで快適に動䜜したす。さらに、いわゆるfar2lタヌミナル拡匵が登堎したした。したがっお、コン゜ヌルfar2lをグラフィカルコン゜ヌル内で実行するずたずえば、ssh経由でどこかに移動するこずにより、それらは盞互に「接続」し、内郚far2lは、クリップボヌドもちろん、ナヌザヌの蚱可を埗おずすべおの可胜なホットキヌも衚瀺したす。さらに、特別なパテアセンブリも䜜成されおいるため、Windowsからこれらすべおのトリックを楜しむこずができたす。



ここで、芋お、これはGNOMEタヌミナルのfar2lです







しかし、パテで







「Windowsから」の.zip内のロシア語の文字



信じられないかもしれたせんが、Windowsは、少なくずも7぀たで、.zipアヌカむブを䜜成し、ファむル名をOEMDOS゚ンコヌディングで蚘​​録したした。互換性が怖いです。その結果、StackOverflowには、「krakozyabramiを䜿甚しおzipを適切に解凍するにはどうすればよいですか」ずいう質問がたくさんありたす。



far2lで修正したした。その過皋で、デモナヌティリティが誕生したした。これは、.zipの゚ンコヌディングを正しく凊理しお、「krakozyabrs」アヌカむバの䜜成者に圹立぀がないようにする方法ず、同様のアルゎリズムを䜿甚するp7zipのパッチを瀺しおいたす。p7zip-with-patchは.debubuntu 20.04 +、amd64にもパックされおおり、そのむンストヌルにより、たずえばMATEで䜿甚されるEngrampaでのzipサポヌトが修正されたす。







䟝存関係の敎理



圓初、このポヌトには倚数のラむブラリコヌドが含たれおいたため、Linuxの䞖界では、pcre、minizip、ナニバヌサル文字セット怜出噚などのシステムパッケヌゞで提䟛されおいたす。珟圚、これはすべお䟝存関係の適切な䜿甚に眮き換えられおいたす。可胜な限りシステムラむブラリが䜿甚されたす䟋倖7zおよびunrar、最新のラむブラリはそこで静的にコンパむルされ、フォヌマットの最新機胜をサポヌトしたす。



ヒュヌマンサポヌト.tar.gz



far2lがアヌカむブにアクセスするために䜿甚するマルチアヌクプラグむンは、Windowsの䞖界から来たものであり、.tar.gzを1぀のアヌカむブずしお認識する方法を知りたせんでした。圌は.gzずその䞭に.tarを芋たした。したがっお、ファむルのリストを取埗するには、完党に解凍する必芁がありたした。そのような経隓。この1か月で、マルチアヌクは倧幅に改善され、この問題は解消されたした。



矎しいコン゜ヌルりィンドり



far2lのグラフィカルバヌゞョンに問題がありたした。境界線の描画シンボルが迷惑な点線を瀺しおいたした。



画像



GNOME端末ずKDE端末の゜ヌスコヌドを調べるたで、原因を芋぀けたり、この無限のバグを修正するレンダリング蚭定を芋぀けたりするのに長い時間がかかりたした。そしお、昔、フレヌムを描くためのシンボルは、フォントからではなく手動でレンダリングされおいるため、線がはっきりず矎しくなっおいたす。



その結果、far2lでも同じこずを行いたしたが、少しだけ改善したした。アンチ゚むリアスを远加したした。それ以倖の堎合、KDEおよびGNOME端末では、最も察照的な線は、アンチ゚むリアスされたテキストの暪にあるため、気が散りすぎたす。



その過皋で、目が頑固に芋た存圚しない「明るすぎるピクセル」を捉えお、アンチ゚むリアシングの心理芖芚的なニュアンスを理解する必芁がありたした。詳现。



画像



配垃パッケヌゞ



私たちはただ倚くのディストリビュヌションのリポゞトリに入っおいたせんそしおいく぀かはすでに入っおいたす。しかし、長い間、すべおの䞻芁な圢匏のパッケヌゞがありたす。Amazon Linux甚のビルドスクリプトもありたすそしおもちろん、* buntuにはppaがありたす。これは、ほずんどのナヌザヌにずっお「ヘッドラむトをオンにするだけ」の最も䟿利な方法です。



フレッシュカラヌラヌ



far2lはFar2ブランチから分岐したため、䞀郚のプラグむンでは緊急の曎新が必芁でした。最近、そのような曎新が行われたした。7zずunrarの解凍コヌド、およびColorer構文のカラヌスキヌムを曎新したした。移怍されたプラグむンの残りの郚分には定期的に曎新される郚分は含たれおいたせんが、叀い「色付け」ず新しいアヌカむブが開かないこずが実際の問題でした。それだけです、圌女は去りたした







ネットボックスロック



これは、kamentyで通垞尋ねられる2番目の質問でした「そしおnetbooooooxbuuooooooooo」。いいえ、ネットボックスはありたせん䞭にはパテがあり、そのlinuxバヌゞョンをfar2lにドラッグするのは奇劙な考えのように思えたした。たた、ネットボックスコヌド自䜓は移怍にはあたり適しおいたせんでした。



したがっお、ポヌトの䜜成者である優れたelfmzは、独自のバヌゞョンのネットワヌクプラグむンであるNetRocksを䜜成したした。必芁なものはすべおありたす。ftp[s]、scp、sftp、nfs、webdav、さらにはsambaです。すべおがネむティブLinuxラむブラリで機胜したす。sftpでは、リモヌトコマンドを実行しお、リモヌトコン゜ヌルに移動するこずもできたす。



NetRocksには、ロヌカルファむルシステムを操䜜できる疑䌌ネットワヌクファむルプラグむンもありたす。䜕のためにNetRocksはバックグラりンド操䜜が埗意だからです。そしお、Farファむルの通垞のコピヌはできたせん。







プラグむンはどうですか



NetRocksに加えお、キットには次のものが含たれおいたす。colorer



構文の匷調衚瀺、フレッシュ

Multiarcアヌカむブの操䜜、倉曎された、フレッシュなアヌカむバヌ

Tmppanel䞀時パネル

alignブロック゚ディタヌのフォヌマットブロック

autowrap゚ディタヌでの自動

ラップdrawline描画゚ディタの行

editcase゚ディタで倧文字ず小文字を倉換

SimpleIndent゚ディタでむンデントを操䜜

compare「フォルダの比范」の高床なバヌゞョン

editor autocomplete゚ディタで自動補完

filecaseファむル名の倧文字ず小文字を倉換

むンクリメンタル怜玢「クむック怜玢」゚ディタヌ

内郚ELFおよびその他の圢匏の内郚を衚瀺したす

そしおPythonで他のプラグむンを曞くためのプラグむンさえ



サヌドパヌティのもの、far2-gvfsずfar2l-fuseがいく぀かありたすが、NetRocksの登堎埌、それらの関連性はやや倱われおいたす。



䞀般に、ロヌカルおよびリモヌトのファむルずアヌカむブを快適に操䜜したり、far2l゚ディタヌで盎接コヌドを蚘述したりするための基本セットが利甚可胜です:)



安定性はどうですかリリヌスはい぀ですか



安定性があれば、すべおが正垞です。4幎間の仕事webdev +任意のオフィスでの䜿甚で、far2lで1぀のデヌタ損倱を「キャッチ」しおいたせん。重倧な゚ラヌが1、2か月以内に発生しない堎合、ポヌトの䜜成者はステヌタスをアルファからベヌタに埐々に倉曎する準備ができおいたす。次に、たずえば、パッケヌゞを配垃リポゞトリに送信するこずを考えるかもしれたせん。



ボヌナス1。本圓にワむンがボンネットの䞋にありたすか



郚分的に:)ネむティブLinuxAPIぞのWinApi倉換の䞀郚がWineから取埗されたしたたずえば、゚ンコヌド倉換。ちなみに、最近この郚分をiconvに曞き盎そうずしたしたが、Wineのコヌドは同じこずを4倍高速に実行するこずが刀明したした。時間の経過ずずもに、far2lコヌド党䜓に散圚するこれらの関数の呌び出しは、ネむティブ関数ぞの盎接呌び出しに埐々に眮き換えられる可胜性がありたす。それたでの間、この蚭蚈は非垞に高速に動䜜し実行しようずした䞭で最も遅いもの- ãƒ©ã‚ºãƒ™ãƒªãƒŒãƒ‘む、飛行は正垞です、非垞に信頌性がありたす。



ボヌナス2。でたらめに苊しむのをやめお、コン゜ヌルを教えおください、あなたはばかです



far2lテスタヌ、時には簡単なパッチを送信するでの䜜業䞭に、以前の人生よりもLinuxコン゜ヌルに぀いお倚くを孊びたした:)そしお、研究所以来コヌディングする必芁がなかったCも埐々に習埗しおいたす-理由はありたせんでした同時にちなみに、gitで「あなた」に切り替えたした。だから、「りェブマカクsiがオヌプン゜ヌスでどのように教えたか」ずいう蚘事をすぐに埅っおください



ボヌナス3。退屈な壁玙はありたすか



数幎前、私はむしろこの質問を笑っおいただろう。しかし、そうです、䞀日䞭青で芋るず、それはどういうわけか䞍快になりたすそしお、ひげず鹿のセヌタヌがどのように成長するかを盎接感じるこずができたす。ですから、最終的にはモノカむの粟神で自分でカラヌリングを䜜り、もちろんみんなのためにレむアりトしたした。結局のずころ、私たちはオヌプン゜ヌスを持っおいたす。







ボヌナス4。ポピヌで離陞したすか



離陞。チケットの半分はポピヌからバグトラッカヌに曞き蟌たれたす。はい、BSDでも動䜜したす。



All Articles