Vim 8 und vim-hug-neovim-rpc Teil 2
Submitted by Christian Schneider on Mi, 2019-11-27 01:25
Nachdem ich vor einiger Zeit schonmal Probleme mit Deoplete hatte, heulte Vim 8.1 heute mal mit
[vim-hug-neovim-rpc] rpc method [nvim_set_client_info] not implemented in pythonx/neovim_rpc_methods.py.rum. Als - wenn auch ekligen - Workaround kann man aber
Please send PR or contact the mantainer.
pip3 install --user pynvim==0.3.2
verwenden. Dann klappts auch wieder mit Deoplete
i3: So long and thanks for all the fish
Submitted by Christian Schneider on Mi, 2019-11-20 21:19
Sodala.. nachdem ich vor gut einem Jahr auf i3(-gaps) umgestiegen bin, hat jetzt auch i3 ausgedient. Mir hat ein Fullscreen-Mode gefehlt; es gibt zwar die Möglichkeit ein Programm mit WorkspaceTag geöffnet. Ich musste kaum Keybindings umbiegen, sondern konnte mein gewohntes Layout beibehalten. Das einzige das ich bisher vermisse, ist die Systray; es gibt zwar einen Patch dazu, aber ich kann mich nicht wirklich dazu aufraffen den hinzuzufügen. Jetzt geht es erstmal ans Feintuning, das Anpassen von rofi und dem lernen der Keybindings.
$mod-f
zu maximieren, allerdings verdeckt das Ding dann die Statusbar. Dazu kamen noch einige Kleinigkeiten wie z. B. das für mich zu umständliche Handling der Fenster. Geworden ist es jetzt dwm; und zwar ohne irgendwelche Patches. Die wichtigsten Programme werden via ~/.xinitrc gestartet und mittels der rules automatisch auf dem vorgegebenem Videoueberwachung in China
Submitted by Christian Schneider on Di, 2019-10-15 09:35
Wer mal sehen will, wie es um die Privatsphäre in China durch die Ü-Cams bestellt ist, sollte sich mal folgenden Link ansehen: http://sh-meet.bigpixel.cn/
in Politik/Presse, Software
|
Noch keine Kommentare
|
Keine Trackbacks
Tags für diesen Artikel: china, ueberwachung
Nur Ausreden.. Nix wie Ausreden
Submitted by Christian Schneider on Mo, 2019-06- 3 19:21
Im Eintrag Dieses Blog geht demnaechst offline habe ich angedroht das ich auf Jekyll umsteige. So weit, so gut.. Installiert war Jekyll relativ schnell, dokumentiert ist es ebenfalls mehr als ausreichend und Themes gibt es auch genügend. Von denen hat mir nur keins so richtig gefallen, also hab ich mir einige Themen als Anreiz genommen und selbst ein Layout zusammengemurkst. Das hat auch problemlos funktioniert und das Grundgerüst stand innerhalb relativ kurzer Zeit, aber dann...
Die statischen Seiten (/about, /zsh, /rtfm, ..) sind weniger das Problem, da ich die direkt einbinden kann. Was mir wirklich auf die Eier geht, ist die Formatierung des Blogs; sprich die Übersichtsseite, auf der alle Einträge aufgeführt sind und die Blogposts; also der komplette Eintrag. Diese wird in Liquid geschrieben und dann als HTML ausgegeben; weder HTML, noch Liquid ist das Problem; das ist ein viel trivialeres: Ich habe schlicht und einfach nicht die geringste Lust! Null. Niente. ноль. صفر. Aber weniger als überhaupt keine.
Aber.. das hat auch seine Vorteile. Ich hatte jetzt wenigstens mal die Zeit mir eine neue Status-Line für tmux zu bauen, meinen bisherigen PS1 der Zsh gegen powerlevel10k zu wechseln, mir mit New Tab Override ein Startpage für Firefox zurecht zu bauen und anzufangen ~/.zsh/zshfunctions in einzelne functions() aufzusplitten um den Start zu beschleunigen. Das alles selbstverständlich erst, nachdem ich Vim um einige Plugins und Keybindings erweitert hab. Nicht das ich doch noch Lust bekomme um an der Homepage weiter zu bauen.
Die statischen Seiten (/about, /zsh, /rtfm, ..) sind weniger das Problem, da ich die direkt einbinden kann. Was mir wirklich auf die Eier geht, ist die Formatierung des Blogs; sprich die Übersichtsseite, auf der alle Einträge aufgeführt sind und die Blogposts; also der komplette Eintrag. Diese wird in Liquid geschrieben und dann als HTML ausgegeben; weder HTML, noch Liquid ist das Problem; das ist ein viel trivialeres: Ich habe schlicht und einfach nicht die geringste Lust! Null. Niente. ноль. صفر. Aber weniger als überhaupt keine.
Aber.. das hat auch seine Vorteile. Ich hatte jetzt wenigstens mal die Zeit mir eine neue Status-Line für tmux zu bauen, meinen bisherigen PS1 der Zsh gegen powerlevel10k zu wechseln, mir mit New Tab Override ein Startpage für Firefox zurecht zu bauen und anzufangen ~/.zsh/zshfunctions in einzelne functions() aufzusplitten um den Start zu beschleunigen. Das alles selbstverständlich erst, nachdem ich Vim um einige Plugins und Keybindings erweitert hab. Nicht das ich doch noch Lust bekomme um an der Homepage weiter zu bauen.
Systemd: Mehr als 1,2 Millionen Zeilen Code
Submitted by Christian Schneider on Fr, 2019-05-24 19:28
Wie aus einer Auswertung von Phoronix hervorgeht, besteht das ursprünglich als Alternative für init vorgestellte systemd aus mehr als 1,2 Millionen Zeilen Code.
Systemd ist ein Daemon für Linux-Systeme, der als init-Prozess als erster Prozess zum Starten, Überwachen und Beenden weiterer Prozesse dient. Das System wurde von Lennart Poettering und Kay Sievers initiiert und findet mittlerweile einen breiten Einsatz in vielen Distributionen. Nachdem die meisten großen Linux-Anbieter Systemd in ihre Produkte aufgenommen hatten, hatten auch andere Systeme über eine Umstellung nachgedacht.
Gänzlich unumstritten ist der Einsatz von Systemd allerdings nicht. Kritiker bemängeln unter anderem, dass die neue Lösung viele Ansätze von Unix verwerfe und einen monolithischen, kaum zu überblickenden Block darstelle, der stetig an Komplexität zunehme, ohne merkliche Vorteile zu bringen. So nennen beispielsweise die Kritiker Systemd einen zweiten Kernel, der sich über das komplette Linux-Okösystem ausbreitet und immer mehr Funktionalität in sich vereine.
Doch auch aus der Sicht anderer Systeme erweist sich Systemd als eine Linux-Insellösung als wenig optimal. So setzen inzwischen einige Anwendungen auf Komponenten von Systemd auf, was beispielsweise die Entwickler unter BSD in Bedrängnis bringt. Denn ohne Systemd lassen manche Anwendungen einige Funktionen missen - im schlimmsten Fall lassen sie sich allerdings nicht einmal starten.
Wie mächtig Systemd mittlerweile geworden ist, zeigt eine Auswertung des Nachrichtenportals »Phoronix«. Wie die Seite diese Woche berichtet, besteht die Alternative für Init mittlerweile aus mehr als 1,2 Millionen Zeilen Code. Noch vor knapp fünf Jahren waren es 600.000 und 2013, drei Jahre nach dem Start von systemd, gerade mal 200.000. Lennart Poettering ist dabei weiterhin die treibende Kraft hinter Systemd. Knapp 37 Prozent der Commits stammen von ihm. Insgesamt haben sich aber bereits 142 Personen sich an der Entstehung von Systemd beteiligt.
Quelle: https://www.pro-linux.de/news/1/27094/systemd-mehr-als-12-millionen-zeilen-code.html
Kann sich noch jemand an die Zeiten von Linux 2.4-2.6.* erinnern? Also als Linux noch wirklich brauchbar und geil war? Der Abfall schafft sich schneller ab als ich gehofft habe.
Vim, Tmux, bracketed paste mode, italics und Easteregg
Submitted by Christian Schneider on Do, 2019-05- 9 20:07
Für diejenigen, die nicht wissen was bracketed paste ist, hier die Kurzversion: Das Terminal bzw. Programm erkennt und unterscheidet zwischen Tastatureingabe(n) und dem paste. Wenn man z. B. einen Textabschnitt mit Tabs/Einrückungen/$whatever von einer Homepage oder einem anderem Programm kopiert und das dann in den Editor kopiert (mittlere Maustaste oder Strg+v), dann erkennt der Editor das und ändert nichts an der Formatierung.
Voraussetzung ist allerdings ein Terminal das dieses Feature unterstützt, allerdings kommt sogar xterm damit klar, also sollte das kein Problem sein. Vim kann das nämlich schon seit .. k/a.. 7.irgendwas. Man muss also nicht erst lange
Voraussetzung ist allerdings ein Terminal das dieses Feature unterstützt, allerdings kommt sogar xterm damit klar, also sollte das kein Problem sein. Vim kann das nämlich schon seit .. k/a.. 7.irgendwas. Man muss also nicht erst lange
:set paste
eingeben, den Text einfügen und dann :set nopaste
aufrufen, sondern kann unabhängig vom aktuellen Mode etwas kopieren und einfügen. Sollte Tmux rumzicken, kann man dem mit folgendem Eintrag in der ~/.vimrc abhelfen:if &term =~ '^screen'Voraussetzung dafür ist aber, das in der ~/.tmux.conf der Eintrag für default-terminal dementsprechend gesetzt ist; bei mir ist das
let &t_BE="\<Esc>[?2004h"
let &t_BD="\<Esc>[?2004l"
let &t_PS="\<Esc>[200~"
let &t_PE="\<Esc>[201~"
endif
set-option -g default-terminal "screen-256color"
. Wenn man dann schon dabei ist, kann man auch gleich italics aktivieren (Kursivschrift). Dazu erstellt man einfach eine Datei mit folgendem Inhalt:screen-256color|screen with 256 colors and italic,und installiert diese dann mit
sitm=\E[3m, ritm=\E[23m,
use=screen-256color,
tic dateiname
. Anschließend muss Tmux noch gestartet werden und danach kann man mitecho -e "\e[1mbold\e[0m"prüfen ob alles richtig dargestellt wird. Sollte das alles funktionieren, einfach mal
echo -e "\e[3mitalic\e[0m"
echo -e "\e[4munderline\e[0m"
echo -e "\e[9mstrikethrough\e[0m"
vim -c :smile
eingeben.
Fehlermeldungen richtig lesen und beheben
Submitted by Christian Schneider on Di, 2019-04-23 10:44
Im Beitrag Vim 8 und vim-hug-neovim-rpc hab ich geschrieben das das Problem die (falsch) gesetzte Variable PYTHONPATH war und gestern bekam ich eine Mail, in der ich gefragt wurde wie ich darauf kam. Das is eigentlich relativ simpel.
Zuerst gebe ich die exakte Fehlermeldung bei einer Suchmaschine ein bzw. schau auf der Herstellerseite (in dem Fall bei GitHub) nach, ob das ein bereits bestehendes Problem ist. Hier war dem nicht so und Bing/SearX warfen keine brauchbaren Ergebnisse aus; ergo ist Handarbeit angesagt. In der Konfigurationsdatei meiner Shell habe ich dafür mehrere Aliase:
Vim ignoriere ich jetzt erst mal, da auch ein
In der Problemdatei geht man dann exakt gleich vor; sprich es wird alles kommentiert, nach und nach auskommentiert und bei jedem Mal eine neue Shell gestartet und geprüft ob die Änderungen sich auf die neue Shell ausgewirkt haben. Geht mit Tmux+Vim und ein paar Plugins sehr schnell und einfach.
Zuerst gebe ich die exakte Fehlermeldung bei einer Suchmaschine ein bzw. schau auf der Herstellerseite (in dem Fall bei GitHub) nach, ob das ein bereits bestehendes Problem ist. Hier war dem nicht so und Bing/SearX warfen keine brauchbaren Ergebnisse aus; ergo ist Handarbeit angesagt. In der Konfigurationsdatei meiner Shell habe ich dafür mehrere Aliase:
# start mutt/vim/zsh/jed without any setup
alias null-mutt='mutt -n -f /dev/null -F /dev/null'
alias null-zsh='zsh -f'
alias null-vim='vim -u NONE'
alias null-jed='jed -n'
alias null-irssi='irssi --config=/dev/null'
alias null-screen="screen -c /dev/null"
Vim ignoriere ich jetzt erst mal, da auch ein
pythonx import neovim
in der Shell nicht funktioniert. Ergo gibt es zwei Optionen: Entweder Python oder die Shell. Python stinkt zwar, aber die Defaultinstallation ist so gut wie nie defekt, also wird erstmal null-zsh eingegeben und die Zsh ohne irgendwelche Konfigurationsdatei(en) gestartet und siehe da.. funktioniert. Dann kurz Vim gestartet und auch da funktioniert es, also muss es an der Konfiguration der Shell liegen. Die ist bei mir zwar sehr umfangreich, aber auch in mehrere Dateien aufgesplittet; also wieder raus aus der null-zsh und dann ans Eingemachte. Hier kommen die Vorteile von Tmux und Vim zu Tage (bei letzterem in Verbindung mit dem Plugin NERD Commenter). Da ich i. d. R. kaum freie Window bei Tmux laufen habe, wird mit C-A c eins geöffnet, dort vim ~/.zshrc
eingegeben und dann erstmal mit GG an die erste Zeile gesprungen und von da aus mit } weiter zur ersten leeren Zeile. Dort dann mit V}\cc den ersten Abschnitt kommentieren; danach F3 drücken (ist bei mir auf :w ge'map't) um die Datei zu speichern. Jetzt mit C-A v ein neues Window öffnen, pythonx import neovim
eingeben und schauen ob das Problem noch immer besteht. Wenn ja, das Window wieder schließen, erneut V}\cc drücken, speichern, neues Window öffnen, usw. Das ganze macht man dann so lange, bis man das Problem auf eine Datei eingegrenzt hat. Die Änderungen in der ~/.zshrc macht man anschließend mit u wieder rückgängig (oder man verwendet mbbill/undotree) oder kommentiert sie einfach wieder aus. Mit dem Nerd Commenter geht das im Visual Mode mit \c<Space>.In der Problemdatei geht man dann exakt gleich vor; sprich es wird alles kommentiert, nach und nach auskommentiert und bei jedem Mal eine neue Shell gestartet und geprüft ob die Änderungen sich auf die neue Shell ausgewirkt haben. Geht mit Tmux+Vim und ein paar Plugins sehr schnell und einfach.
Neues Terminal zu Ostern
Submitted by Christian Schneider on Fr, 2019-04-19 12:23
Nachdem ich ein paar Einträge zuvor schon geschrieben habe, das ich mich nach einem neuem Terminal umsehe, bin ich auch fündig geworden. Terminals gibt es ja zur Genüge; Peter hat mir alacritty empfohlen, welches ebenfalls in die nähere Auswahl kam. Geworden ist es dann letztendlich kitty; zumal ich ja eine Katze habe die Kittykatz heißt.. ich hab auch noch eine zweite, aber ich konnte kein Terminal finden das "Durchgeknallte, massenmordende Psychokatze" hieß, also..
Für kitty hab ich mich nicht entschieden weil es deutlich besser ist als alle anderen, sondern weil es einige Features enthält, die ich bei keinem anderem Terminal gefunden habe. Zum einen ist da die einfache Eingabe von Unicode und zum anderen die Möglichkeit sog. kittens zu verwenden. Die Keybindings sind mit CTRL+SHIFT+$foo deklariert und kommen mir somit nicht bei i3-gaps in die Quere. Der Scrollback-Buffer ist ebenfalls vorhanden und die URLs können ebenfalls sehr einfach aufgerufen werden (ohne Rumklicken).
Alles in allem: works for me
Für kitty hab ich mich nicht entschieden weil es deutlich besser ist als alle anderen, sondern weil es einige Features enthält, die ich bei keinem anderem Terminal gefunden habe. Zum einen ist da die einfache Eingabe von Unicode und zum anderen die Möglichkeit sog. kittens zu verwenden. Die Keybindings sind mit CTRL+SHIFT+$foo deklariert und kommen mir somit nicht bei i3-gaps in die Quere. Der Scrollback-Buffer ist ebenfalls vorhanden und die URLs können ebenfalls sehr einfach aufgerufen werden (ohne Rumklicken).
Alles in allem: works for me
getmail + spamassassin + Arch Linux
Submitted by Christian Schneider on Mo, 2019-04-15 15:20
Liebe drogensüchtigen Developer und Packager: Es ist zwar das eine wenn ihr /usr/lib/perl5/$version/vendor_perl/ vorgebt,
Ich habe was besseres zu tun, als 2342 Verzeichnisse zu $PATH hinzuzufügen und jedes Mal zu überprüfen ob sich nicht doch was geändert hat. HALTET EUCH VERFICKT NOCHMAL AN DEN FHS! Es muss nicht jeder sein eigenes Süppchen kochen um was besonderes zu sein! Nehmt euch ein Beispiel an *BSD: Einfach, simpel, effektiv und funktioniert!
perl -V:vendorarch
/usr/lib/perl5/5.28/vendor_perl anzeigt und die Executables von z. B. SpamAssassin unter /usr/bin/vendor_perl rumliegen, aber wenn dann nach einem Update so lustige Fehlermeldungen wieWarning: filter Filter_external spamassassin (allow_root_commands="True", arguments="()", command="spamassassin", exitcodes_drop="('99', '100')",zu lesen sind, kann das doch ganz leicht nervig sein.
exitcodes_keep="('0',)", group="None", ignore_header_shrinkage="False", ignore_stderr="False", path="/usr/bin/vendor_perl/spamassassin", unixfrom="False", user="None")
returned fewer headers (36) than supplied (38)
msg 1/1 (7172 bytes) from <SRS0=OpHF=SN=httpd.web1.neessen.net=strcat.de@neessen.net> delivered to Maildir /home/dope/MuttMail/INBOX/, deleted
1 messages (7172 bytes) retrieved, 0 skipped
Ich habe was besseres zu tun, als 2342 Verzeichnisse zu $PATH hinzuzufügen und jedes Mal zu überprüfen ob sich nicht doch was geändert hat. HALTET EUCH VERFICKT NOCHMAL AN DEN FHS! Es muss nicht jeder sein eigenes Süppchen kochen um was besonderes zu sein! Nehmt euch ein Beispiel an *BSD: Einfach, simpel, effektiv und funktioniert!
Vim 8 und vim-hug-neovim-rpc
Submitted by Christian Schneider on Mi, 2019-04-10 10:01
Ich nutze u. a. das Plugin Deoplete, welches wiederum vim-hug-neovim-rpc benötigt. Das jedoch wirft seit .. keine Ahnung .. einiger Zeit die sagenhaft aufschlussreiche Fehlermeldung
Gleiche Fehlermeldung kommt auch, wenn man
Python.. wieso ist das eigentlich noch legal?!
// Nachtrag:
Mir wurde gesagt das man PYTHONPATH auch ohne Probleme auf /bin/python setzen kann; also PYTHONPATH=/bin/python. Nach kurzem Test funktioniert das auch.
[vim-hug-neovim-rpc] failed executing: pythonx import neovimin den Messagebuffer. So weit, so schlecht. Ein
[vim-hug-neovim-rpc] Vim(pythonx):Traceback (most recent call last):
pythonx import neovim
kotzt dann folgende Fehlermeldung in den Errorbuffer von Vim 8.1:Traceback (most recent call last):
File "/home/dope/.local/lib/python3.7/site-packages/pynvim/msgpack_rpc/event_loop/asyncio.py", line 20, in <module>
import asyncio
File "/usr/lib/python3.7/asyncio/__init__.py", line 8, in <module>
from .base_events import *
File "/usr/lib/python3.7/asyncio/base_events.py", line 18, in <module>
import concurrent.futures
File "/usr/lib/python2.7/site-packages/concurrent/futures/__init__.py", line 8, in <module>
from concurrent.futures._base import (FIRST_COMPLETED,
File "/usr/lib/python2.7/site-packages/concurrent/futures/_base.py", line 414
raise exception_type, self._exception, self._traceback
^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/dope/.local/lib/python3.7/site-packages/neovim/__init__.py", line 5, in <module>
import pynvim
File "/home/dope/.local/lib/python3.7/site-packages/pynvim/__init__.py", line 11, in <module>
from .msgpack_rpc import (ErrorResponse, child_session, socket_session,
File "/home/dope/.local/lib/python3.7/site-packages/pynvim/msgpack_rpc/__init__.py", line 8, in <module>
from .event_loop import EventLoop
File "/home/dope/.local/lib/python3.7/site-packages/pynvim/msgpack_rpc/event_loop/__init__.py", line 10, in <module>
from .asyncio import AsyncioEventLoop
File "/home/dope/.local/lib/python3.7/site-packages/pynvim/msgpack_rpc/event_loop/asyncio.py", line 23, in <module>
import trollius as asyncio
File "/usr/lib/python2.7/site-packages/trollius/__init__.py", line 21, in <module>
from .base_events import *
File "/usr/lib/python2.7/site-packages/trollius/base_events.py", line 39, in <module>
from . import coroutines
File "/usr/lib/python2.7/site-packages/trollius/coroutines.py", line 16, in <module>
from . import futures
File "/usr/lib/python2.7/site-packages/trollius/futures.py", line 19, in <module>
from . import executor
File "/usr/lib/python2.7/site-packages/trollius/executor.py", line 12, in <module>
import concurrent.futures
File "/usr/lib/python2.7/site-packages/concurrent/futures/__init__.py", line 8, in <module>
from concurrent.futures._base import (FIRST_COMPLETED,
File "/usr/lib/python2.7/site-packages/concurrent/futures/_base.py", line 414
raise exception_type, self._exception, self._traceback
^
SyntaxError: invalid syntax
Gleiche Fehlermeldung kommt auch, wenn man
python -c 'import neovim'
direkt in die Shell eingibt. Schuld daran ist bzw. war die Variable PYTHONPATH, welche - bei mir - auf /usr/lib/python2.7/site-packages/ gezeigt hat und somit auch auf die falsche Version von Python. Ich habe nämlich Python 2.7.16 und Python 3.7.3 installiert. Wieso die Variable gesetzt ist, weiß kein Schwein; weder in meiner Zsh-Konfiguration, noch unter /etc/* taucht diese Variable irgendwo auf. Wenn man sie aber auf /usr/lib/python3.7/site-packages umbiegt oder gleich ganz löscht, funktioniert es wieder.Python.. wieso ist das eigentlich noch legal?!
// Nachtrag:
Mir wurde gesagt das man PYTHONPATH auch ohne Probleme auf /bin/python setzen kann; also PYTHONPATH=/bin/python. Nach kurzem Test funktioniert das auch.
Last ten comments: