burli
Anmeldungsdatum: 27. April 2007
Beiträge: 9001
Wohnort: Petersberg
|
Ich möchte auf einem Odroid-N2 Software für Embedded Devices in Rust programmieren. Das System soll komplett ohne grafische Oberfläche auskommen. Abgesehen von Vim (bzw in meinem Fall neovim), welche Programme sind da noch sinnvoll und hilfreich? Ich denke an sowas wie Ranger zur Dateiverwaltung oder lazygit für... naja, git eben. Insbesondere suche ich nach einem Browser, den man halbwegs sinnvoll nutzen kann. Mit Lynx hatte ich bisher wenig Erfolg. Ich kann mich damit nichtmal hier einloggen (vielleicht mache ich auch was falsch). Was gibt es sonst noch für nützliche Software?
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12822
|
burli schrieb: Ich möchte auf einem Odroid-N2 Software für Embedded Devices in Rust programmieren. Das System soll komplett ohne grafische Oberfläche auskommen. Abgesehen von Vim (bzw in meinem Fall neovim), welche Programme sind da noch sinnvoll und hilfreich?
Ich denke, Du brauchst auf jeden Fall ein Build-Tool - je nach Projekt make, cmake, ant, maven...
Ich denke an sowas wie Ranger zur Dateiverwaltung oder lazygit für... naja, git eben.
Oder Midnight Commander oder eins der anderen konsolebasierten Dateinamater. Es gibt auch noch mehr.
Insbesondere suche ich nach einem Browser, den man halbwegs sinnvoll nutzen kann. Mit Lynx hatte ich bisher wenig Erfolg. Ich kann mich damit nichtmal hier einloggen (vielleicht mache ich auch was falsch).
Mit lynx und links kannst Du auf Webseiten heutzutage nicht mehr viel erreichen - vor allem, weil diese Browser kein JavaScript unterstützen. Das ist auch ein Grund, warum Du Dich hier nicht einloggen kannst.
Was gibt es sonst noch für nützliche Software?
Wenn Du auf REST-APIs zugreifen musst, dann ist curl zum Testen sicherlich nützlich. Hilfreich ist bestimmt auch ein Source-Code-Formatierer wie rustfmt.
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11179
Wohnort: München
|
Was ich in auf einer Konsole auf jeden Fall dazu nehmen würde, ist ein Terminal-Multiplexer wie tmux, damit man mehrere Shell bzw. Programme nebeneinander nutzen kann und zwischen ihnen wechseln kann. burli schrieb: Ich denke an sowas wie Ranger zur Dateiverwaltung oder lazygit für... naja, git eben.
Vim bringt doch netrw mit (https://shapeshed.com/vim-netrw/), für Git ist tpope/vim-fugitive ziemlich gut, wenn man ohne störende Kontextwechsel Dinge ins Git bringen will. Ansonsten könnte man auch an Emacs mit evil-mode (für die VIM-Keybindings, da muss man ggf. etwas nacharbeiten, damit die Tastenbelegung 1:1 passt), dired als Dateimanager und Magit als Git-Frontend denken - dann hat man alles unter einem Dach (und mit org-mode kann man die TODOs, Zeiterfassung und Projektnotizen gleich mit machen). Im GUI-Modus kann man es es außerdem als PDF-Reader nutzen (vedang/pdf-tools). Ich mag textbasierte Interfaces, aber IMHO macht man sich das Leben ausschließlich auf einer Konsole ohne X-Server bzw. Wayland IMHO unnötig schwer:
ausgereifte Konsolen-Browser mit HTML5 und JavaScript Unterstützung gibt es soweit ich weiß nicht komplexere Tastenkombinationen funktionieren oft nur eingeschränkt erklärende Videos oder auch Animationen sind nicht sinnvoll darstellbar, das Rendern und Scrollen von Text im Framebuffer reicht qualitativ nicht an das heran, was unter X/Wayland möglich ist (das betrifft nicht nur Sachen wie PDF-Darstellung, sondern auch auch das Terminal - so Sachen wie alacritty, kitty usw. sind schon nett).
Was oft bequemer ist, wenn man auf einem Rechner ohne GUI Code entwickeln will, ist sich über SSH zu verbinden (mit vim ist das etwas sperrig, Emacs kann das mit TRAMP, für VS-Code gibt es eine passende Erweiterung) und für den Rest kann man dann einen ordentlichen Rechner nutzen. rklm schrieb: Ich denke, Du brauchst auf jeden Fall ein Build-Tool - je nach Projekt make, cmake, ant, maven...
rust in der Hinsicht ein cargo-Kult: https://doc.rust-lang.org/cargo/commands/cargo-build.html - da gibt es eine Cargo.toml Datei pro Projekt mit den Metadaten und damit kommt man ziemlich weit, solange man nicht zusätzlichen Code bauen will, der in anderen Sprachen geschrieben wurde (das kann man dann über eine build.rs umsetzen: https://doc.rust-lang.org/cargo/reference/build-scripts.html).
|
Neral
Anmeldungsdatum: 3. Oktober 2007
Beiträge: 229
|
Für (neo)vim ist auch ein LanguageClient-Plugin sehr hilfreich, zum Beispiel CoC mit Rust-Analyzer-Support. Ab v0.5 hat neovim das auch eingebaut. rust-analyzer selbst natürlich auch noch.
Mit Rust ist Crosscompiling relativ angenehm, man kann also auch das meiste an einem starken Rechner machen und muss nicht zwingend alles auf dem Zielsystem erledigen. Einen Terminaldateimanager und -gitclient brauche ich persönlich nicht, insbesondere git ist auf der Konsole IMHO recht angenehm zu bedienen, wenn man die Tricks kennt (*hust* -p ). Ansonsten kann ich mich seahawk1986 nur anschließen: Auf einem „richtigen“ Rechner den Browser laufen zu lassen und über SSH zu entwickeln ist mir lieber als ein Textbrowser (funktionieren die Rust-Docs überhaupt ohne JS?)
|
tuxifreund
Projektleitung
Anmeldungsdatum: 7. November 2020
Beiträge: 1162
|
Ich habe folgende Programme recht gut laufen: tmux als Terminalmultiplexer Vim als Editor mit folgenden Plugins: Vimwiki - zum Organisieren von Notizen, Todo-Listen, Ideen etc. indentLine - weil das das Lesen von Code teilweise stark vereinfacht autopairs - zum Vervollständigen von Klammern NerdTree, aber der mitgelieferte Dateimanager tut es auch bisschen was damit Vim netter aussieht 😉
Git habe ich meistens in einem separaten tmux-Pane offen, weil ich das einfacher finde
seahawk1986 schrieb: Ich mag textbasierte Interfaces, aber IMHO macht man sich das Leben ausschließlich auf einer Konsole ohne X-Server bzw. Wayland IMHO unnötig schwer:
ausgereifte Konsolen-Browser mit HTML5 und JavaScript Unterstützung gibt es soweit ich weiß nicht komplexere Tastenkombinationen funktionieren oft nur eingeschränkt erklärende Videos oder auch Animationen sind nicht sinnvoll darstellbar, das Rendern und Scrollen von Text im Framebuffer reicht qualitativ nicht an das heran, was unter X/Wayland möglich ist (das betrifft nicht nur Sachen wie PDF-Darstellung, sondern auch auch das Terminal - so Sachen wie alacritty, kitty usw. sind schon nett.
Da gäbe es Browsh, im Hintergrund läuft ein headless Firefox. Die Grafiken sind dann aber natürlich semioptimal, ansonsten soll (ich habe es aber nicht getestet) JS und HTML5 möglich sein. Ich weiß aber nicht, ob ich mir das täglich antuen wollen würde.
|
burli
(Themenstarter)
Anmeldungsdatum: 27. April 2007
Beiträge: 9001
Wohnort: Petersberg
|
Als Editor nehme ich neovim 0.5. Der ist dank LuaJit, eingebautem Lsp und Treesitter etwas flotter. Nötige Plugins werde ich nach und nach einbauen (so wenig wie möglich, damit es nicht überladen wird). tmux ist schon installiert, wobei ich auch kein Problem habe, mit Alt+FX zwischen Terminals zu wechseln. Würde ich bei einem grafischen Desktop auch machen. Der Tipp mit Browsh könnte aber Gold wert sein. Ich brauche keine Videos, Bilder oder Ton. Es reicht mir, wenn ich Texte lesen kann. Ich mache das aus mehreren Gründen: zum einen braucht es weniger Ressourcen, zum zweiten will ich mehr über die vielen Linux Befehle lernen und wie man sie anwendet. Last but not least denke ich, dass ich mich dadurch besser fokussieren kann und mich nicht ablenken lassen. Wer noch mehr nützliche Programme kennt oder andere Tipps hat, immer her damit.
|
Doc_Symbiosis
Anmeldungsdatum: 11. Oktober 2006
Beiträge: 4390
Wohnort: Göttingen
|
Um mal schnell Überblick über ein git-Repo zu erhalten, finde ich den Kommandozeilen-Client tig ganz praktisch...
|
tuxifreund
Projektleitung
Anmeldungsdatum: 7. November 2020
Beiträge: 1162
|
Was auch ganz nett im Zusammenspiel mit Github ist, ist deren CLI. Viele Funktionen sind unnötig, weil sie nur ein Gitwrapper sind, aber sowas wie gh issue list zum Anzeigen der offenen Tickets ist ganz nett, finde ich, weil man dann nicht die Webseite öffnen muss.
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11179
Wohnort: München
|
burli schrieb: tmux ist schon installiert, wobei ich auch kein Problem habe, mit Alt+FX zwischen Terminals zu wechseln. Würde ich bei einem grafischen Desktop auch machen.
Mit tmux hat man den Vorteil, dass es eine Zwischenablage gibt, die man auch gut mit VIM integrieren kann (roxma/vim-tmux-clipboard), so dass man da leichter Code aus der Dokumentation, Browser, Notizen usw. an die gewünschte Stelle bringen kann als wenn man zwischen TTYs hin- und herwechselt. Ein durchsuchbarer Scrollback-Buffer kann auch sehr praktisch sein, gerade wenn man schauen will, über was der Rust-Compiler alles meckert. burli schrieb: Ich mache das aus mehreren Gründen: zum einen braucht es weniger Ressourcen,
Wenn man so ein Schwergewicht wie den Firefox laufen lässt, stört ein X-Server mit i3-wm auch nicht mehr wirklich... Von der Performance her ist Browsh IMHO ziemlich mies - und Seiten wie Ubuntuusers.de kann man nur eingeschränkt nutzen (es hilft, wenn man weiß, was auf den Buttons stehen würde), das Zitieren von Beiträgen funktioniert nicht und das Einfügen von Text klappt nicht zuverlässig (egal ob man über die Zwischenablage von X oder von tmux geht, da werden nur ein paar Zeichen eingefügt - der Bug ist seit Jahren bekannt und ungelöst browsh-org/browsh/issues/44). zum zweiten will ich mehr über die vielen Linux Befehle lernen und wie man sie anwendet.
Niemand hält einen davon ab möglichst viel in einem oder mehreren Terminal-Fenstern zu machen. Last but not least denke ich, dass ich mich dadurch besser fokussieren kann und mich nicht ablenken lassen.
Das würde ich unbedingt mal evaluieren, ob das für dich einen merklichen Effekt hat (ein Window Manager wie i3-wm mit ausgeblendetem Panel bietet ja praktisch nichts, was ablenken würde und mit passend gewählten bzw. Konfigurierten Anwendungen ohne Toolbar und Menüleiste kommt man da kaum in Verlegenheit sich von der GUI ablenken zu lassen und mit mehreren Workspaces und ggf. Fenstern im Scratchpad funktioniert die Methode "Aus den Augen aus dem Sinn" ziemlich gut) - ich habe das mit Raspberry Pis vor ein paar Jahren auch mal rein mit der Konsole probiert (weil mich im Hochsommer das Surren der Lüfter von Laptop und Desktop genervt hat), aber abgesehen vom Schreiben von Texten ohne besondere Ansprüche an die Formatierung mit Wordgrinder (das bietet weniger Ablenkungspotential durch Konfigurationsspielereien als vim + junegunn/goyo.vim oder Emacs mit dem olivetti-Mode) hat sich das für mich nicht wirklich bewährt.
- Bilder
|
burli
(Themenstarter)
Anmeldungsdatum: 27. April 2007
Beiträge: 9001
Wohnort: Petersberg
|
seahawk1986 schrieb: Wenn man so ein Schwergewicht wie den Firefox laufen lässt, stört ein X-Server mit i3-wm auch nicht mehr wirklich...
Ich kann Firefox theoretisch auch auf einem anderen Rechner laufen lassen und mich per SSH verbinden. Ist so weit ich das verstanden habe auch die Grundidee von Browsh. Irgend ein Rechner läuft hier immer.
Das würde ich unbedingt mal evaluieren, ob das für dich einen merklichen Effekt hat (ein Window Manager wie i3-wm mit ausgeblendetem Panel bietet ja praktisch nichts, was ablenken würde und mit passend gewählten bzw. Konfigurierten Anwendungen ohne Toolbar und Menüleiste kommt man da kaum in Verlegenheit sich von der GUI ablenken zu lassen und mit mehreren Workspaces und ggf. Fenstern im Scratchpad funktioniert die Methode "Aus den Augen aus dem Sinn" ziemlich gut)
Ich meine weniger die Ablenkung durch den Desktop selbst sondern die Möglichkeit, zB einen Browser zu öffnen und YouTube zu schauen oder oder irgend einen anderen Blödsinn zu machen, der auf der Konsole schlicht nicht möglich ist.
ich habe das mit Raspberry Pis vor ein paar Jahren auch mal rein mit der Konsole probiert (weil mich im Hochsommer das Surren der Lüfter von Laptop und Desktop genervt hat), aber abgesehen vom Schreiben von Texten ohne besondere Ansprüche an die Formatierung mit Wordgrinder (das bietet weniger Ablenkungspotential durch Konfigurationsspielereien als vim + junegunn/goyo.vim oder Emacs mit dem olivetti-Mode) hat sich das für mich nicht wirklich bewährt.
Mir geht es rein um das Programmieren. Wenn ich da mal nicht weiter komme kann ich jederzeit auf einen normalen Rechner zurückgreifen
|