<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>blog.kanedo.net</title>
 <link href="https://blog.kanedo.net/rss.xml" rel="self"/>
 <link href="https://blog.kanedo.net/"/>
 <updated>2026-01-29T11:05:35+00:00</updated>
 <id>https://blog.kanedo.net</id>
 <author>
   <name>Gabriel Bretschner</name>
   <email>markdotto@gmail.com</email>
 </author>

 
 <entry>
  
  <title>Brotlog 29.01.2026: Weizenvollkornbrot continued</title>
  
   <link href="https://blog.kanedo.net/2026/01/29/brotlog-29.01.2026-weizenvollkornbrot-continued.html"/>
   <updated>2026-01-29T10:48:49+00:00</updated>
   <id>https://blog.kanedo.net/2026/01/29/brotlog-29.01.2026-weizenvollkornbrot-continued</id>
   <content type="html"> 
  
  
  


&lt;div&gt;
	&lt;img class=&quot;thumbnail&quot; itemprop=&quot;image&quot; src=&quot;/assets/images/generated/2026-01-29-11-47-10-brotlog-29.01.2026-weizenvollkornbrot-continued-420-06919215b.jpg&quot; alt=&quot;Brotlog 29.01.2026: Weizenvollkornbrot continued&quot; srcset=&quot;/assets/images/generated/2026-01-29-11-47-10-brotlog-29.01.2026-weizenvollkornbrot-continued-840-06919215b.jpg 1.0x, /assets/images/generated/2026-01-29-11-47-10-brotlog-29.01.2026-weizenvollkornbrot-continued-1260.0-06919215b.jpg 1.5x, /assets/images/generated/2026-01-29-11-47-10-brotlog-29.01.2026-weizenvollkornbrot-continued-1680-06919215b.jpg 2.0x&quot;&gt;

&lt;/div&gt;



  
  &lt;p&gt;Das &lt;a href=&quot;/2026/01/24/brotlog-24.01.2026-weizenvollkornbrot.html&quot;&gt;letzte Brot&lt;/a&gt; ist schon wieder weg; also musste ein neues her. Die Kinder mochten das letzte Vollkornbrot so sehr, dass wir es einfach noch mal gebacken haben. Dieses Mal hat die Große mitgeholfen. Den Fenstertest kann sie schon mal.&lt;/p&gt;


  </content>
 </entry>
 
 <entry>
  
  <title>Brotlog 24.01.2026: Weizenvollkornbrot</title>
  
   <link href="https://blog.kanedo.net/2026/01/24/brotlog-24.01.2026-weizenvollkornbrot.html"/>
   <updated>2026-01-24T08:49:54+00:00</updated>
   <id>https://blog.kanedo.net/2026/01/24/brotlog-24.01.2026-weizenvollkornbrot</id>
   <content type="html"> 
  
  
  


&lt;div&gt;
	&lt;img class=&quot;thumbnail&quot; itemprop=&quot;image&quot; src=&quot;/assets/images/generated/2026-01-24-09-49-54-brotlog-24.01.2026-weizenvollkornbrot-420-70745b54c.jpg&quot; alt=&quot;Brotlog 24.01.2026: Weizenvollkornbrot&quot; srcset=&quot;/assets/images/generated/2026-01-24-09-49-54-brotlog-24.01.2026-weizenvollkornbrot-840-70745b54c.jpg 1.0x, /assets/images/generated/2026-01-24-09-49-54-brotlog-24.01.2026-weizenvollkornbrot-1260.0-70745b54c.jpg 1.5x, /assets/images/generated/2026-01-24-09-49-54-brotlog-24.01.2026-weizenvollkornbrot-1680-70745b54c.jpg 2.0x&quot;&gt;

&lt;/div&gt;



  
  &lt;p&gt;Gestern kam die 25kg Mehllieferung an. Da macht es immer besonders Spaß zu backen.&lt;/p&gt;

  </content>
 </entry>
 
 <entry>
  
  <title>Italy 2025</title>
  
   <link href="https://blog.kanedo.net/2025/08/29/italy-2025.html"/>
   <updated>2025-08-29T13:37:11+00:00</updated>
   <id>https://blog.kanedo.net/2025/08/29/italy-2025</id>
   <content type="html"> 
  
  
  


&lt;div&gt;
	&lt;img class=&quot;thumbnail&quot; itemprop=&quot;image&quot; src=&quot;/assets/images/generated/20250829-0001-420-754ed31a1.jpg&quot; alt=&quot;Italy 2025&quot; srcset=&quot;/assets/images/generated/20250829-0001-840-754ed31a1.jpg 1.0x, /assets/images/generated/20250829-0001-1260.0-754ed31a1.jpg 1.5x, /assets/images/generated/20250829-0001-1680-754ed31a1.jpg 2.0x&quot;&gt;

&lt;/div&gt;



  
  &lt;p&gt;&lt;img src=&quot;/assets/images/generated/20250829-0002-800-77a821de3.jpg&quot; srcset=&quot;/assets/images/generated/20250829-0002-400-77a821de3.jpg 400w, /assets/images/generated/20250829-0002-600-77a821de3.jpg 600w, /assets/images/generated/20250829-0002-800-77a821de3.jpg 800w, /assets/images/generated/20250829-0002-1000-77a821de3.jpg 1000w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/generated/20250829-0003-800-4d3589e9f.jpg&quot; srcset=&quot;/assets/images/generated/20250829-0003-400-4d3589e9f.jpg 400w, /assets/images/generated/20250829-0003-600-4d3589e9f.jpg 600w, /assets/images/generated/20250829-0003-800-4d3589e9f.jpg 800w, /assets/images/generated/20250829-0003-1000-4d3589e9f.jpg 1000w&quot; /&gt;&lt;/p&gt;


  </content>
 </entry>
 
 <entry>
  
  <title>Notiz vom 19.03.2025: Kleiner iOS-App-Tipp: Geotag Alpha. Mit...</title>
  
   <link href="https://blog.kanedo.net/notes/2025-03-19-pvlzn.html"/>
   <updated>2025-03-19T08:41:36+00:00</updated>
   <id>https://blog.kanedo.net/notes/PVLZN</id>
   <content type="html"> 
  
  
  




  
  &lt;p&gt;Kleiner iOS-App-Tipp: &lt;a href=&quot;https://apps.apple.com/app/id6450585140&quot;&gt;Geotag Alpha&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Mit dieser App erhalten (relativ neue) Sony-Mirrorless-Kameras GPS-Koordinaten für jedes Bild. Ein Feature, das - wie ich feststellen musste - die Nutzung meiner Kamera deutlich erhöht hat.&lt;/p&gt;

&lt;p&gt;Mir ist erst durch diese App aufgefallen, wie groß die mentale Hürde war, die GPS-Koordinaten (circa) nachzutragen. Es ist nun aber so, dass der Ort eines Bildes zusammen mit der Zeit die wichtigsten und nützlichsten Metadaten sind.&lt;/p&gt;

&lt;p&gt;Das Gute an Geotag Alpha ist, dass es einfach funktioniert. Einmal eingerichtet muss ich nur noch das iPhone dabei haben, und der Rest funktioniert ohne Interaktion (und wir wissen alle: Das ist die beste Interaktion).&lt;/p&gt;

&lt;p&gt;Diese App kann man zwei Wochen lang kostenlos testen und dann entweder als Abo oder einmaligen Kauf freischalten.&lt;/p&gt;

  </content>
 </entry>
 
 <entry>
  
  <title>Notiz vom 17.02.2025: A year of uv: pros,...</title>
  
   <link href="https://blog.kanedo.net/notes/2025-02-17-bqlhc.html"/>
   <updated>2025-02-17T11:02:41+00:00</updated>
   <id>https://blog.kanedo.net/notes/bqlHc</id>
   <content type="html"> 
  
  
  




  
  &lt;p&gt;&lt;a href=&quot;https://www.bitecode.dev/p/a-year-of-uv-pros-cons-and-should&quot;&gt;A year of uv: pros, cons, and should you migrate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Eine gute Übersicht über &lt;a href=&quot;https://docs.astral.sh/uv/&quot;&gt;uv&lt;/a&gt; und alle Vor- und Nachteile.&lt;/p&gt;

&lt;p&gt;Das tl;dr des Artikels fasst es recht gut zusammen:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;My conclusion is: if your situation allows it, always try uv first. Then fall back on something else if that doesn’t work out.&lt;/p&gt;

  &lt;p&gt;It is the Pareto solution because it’s easier than trying to figure out what you should do and you will rarely regret it. Indeed, the cost of moving to and from it is low, but the value it delivers is quite high.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ich benutze uv auch immer mehr und es ist so viel schneller als alle anderen tools.&lt;/p&gt;

  </content>
 </entry>
 
 <entry>
  
  <title>Notiz vom 08.02.2025: jekyll.nvim hat ein kleines Feature...</title>
  
   <link href="https://blog.kanedo.net/notes/2025-02-08-uncpr.html"/>
   <updated>2025-02-08T08:58:46+00:00</updated>
   <id>https://blog.kanedo.net/notes/UNcPR</id>
   <content type="html"> 
  
  
  




  
  &lt;p&gt;&lt;a href=&quot;https://github.com/kanedo/jekyll.nvim&quot;&gt;jekyll.nvim&lt;/a&gt; hat ein kleines Feature dazugelernt: Drafts und Promote.&lt;/p&gt;

&lt;p&gt;Hat Spass gemacht, ein bisschen mehr lua und neovim zu lernen. Dass ich so einfach einen file-picker mit telescope einbinden kann, war eine nette Überraschung.&lt;/p&gt;

  </content>
 </entry>
 
 <entry>
  
  <title>Homeassistant Blueprint: Light Toggle with Majority Vote</title>
  
   <link href="https://blog.kanedo.net/2025/02/07/homeassistant-blueprint-light-toggle-with-majority-vote.html"/>
   <updated>2025-02-07T12:32:33+00:00</updated>
   <id>https://blog.kanedo.net/2025/02/07/homeassistant-blueprint-light-toggle-with-majority-vote</id>
   <content type="html"> 
  
  
  




  
  &lt;p&gt;Wir benutzen zu Hause Homeassistant, um eine handvoll Lichter zu steuern. Ich mische da wild ESPHome-basierte Relays und Zigbee-Lampen.
Das wichtigste Feature an Homeassistant ist uns eine Gruppe an Lampen gemeinsam zu steuern.&lt;/p&gt;

&lt;p&gt;Das geht auch sehr leicht und relativ günstig mit den Ikea Tradfri Schaltern. Solange die auch nur An/Aus schalten ist alles wohldefiniert und funktioniert sehr zuverlässig.&lt;/p&gt;

&lt;p&gt;Im Wohnzimmer allerdings benutzen wir eine Fernbedienung, die toggled (Soweit ich das sehe, gibt es die gar nicht mehr bei Ikea… schade) und schon seit jeher den &lt;a href=&quot;https://community.home-assistant.io/t/zha-ikea-five-button-remote-for-lights/253804&quot;&gt;Blueprint von frenck&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Es gibt dabei aber einen Edge-Case, wenn ein oder mehrere der Zigbee-Lampen den Schuss nicht hört. Dann sind manche Lampen an und manche aus. Toggled man diese jetzt, dann springen sie nur hin und her.&lt;/p&gt;

&lt;p&gt;Das ist aber nie das gewünschte Verhalten. Jedenfalls bei uns nicht. Ich habe es heute endlich geschafft, den Blueprint so anzupassen, dass die Mehrheit der Lampen entscheidet, was der nächste State ist.&lt;/p&gt;

&lt;p&gt;Wenn also mehr als die Hälfte der Lampen angeschaltet sind, wird der Toggle alle ausschalten. Sind genau gleich viele an und aus, werden alle angeschaltet.&lt;/p&gt;

&lt;p&gt;Die Logik ist sehr einfach, aber die Blueprint/Homeassistant-Dokumentation ist so spartanisch und die Debugging-Tools auch, dass ich bis heute gebraucht habe, um es endlich umzusetzen.&lt;/p&gt;

&lt;p&gt;Ich habe den Blueprint für alle als &lt;a href=&quot;https://gist.github.com/kanedo/913217eb8ae2040a48b63afa57161456&quot;&gt;Gist auf Github veröffentlicht&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Um ihn zu benutzen, einfach auf Blueprint hinzufügen klicken und als URL &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://gist.github.com/kanedo/913217eb8ae2040a48b63afa57161456&lt;/code&gt; angeben.&lt;/p&gt;

  </content>
 </entry>
 
 <entry>
  
  <title>Notiz vom 05.02.2025: Flavors of overfitting However, I...</title>
  
   <link href="https://blog.kanedo.net/notes/2025-02-05-rxex7.html"/>
   <updated>2025-02-05T10:40:54+00:00</updated>
   <id>https://blog.kanedo.net/notes/rxeX7</id>
   <content type="html"> 
  
  
  




  
  &lt;p&gt;&lt;a href=&quot;https://www.argmin.net/p/flavors-of-overfitting&quot;&gt;Flavors of overfitting&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;However, I still think we can use the Soviet Tank Problem as a machine-learning Aesop fable. Is this a parable of overfitting? What word would we use here to describe that the machine learning algorithm is latching on to the wrong “concepts” in the train/test corpus? The &lt;strong&gt;issue here seems to be the data is not fully representative of how we will evaluate the algorithm in the field.&lt;/strong&gt;
[…] 
The problem is you collected data that was insufficient to pin down the prediction problem for a machine learning system. Because pattern recognition is atheoretical, the only way we can articulate our evaluation expectations is to declare data is representative and sufficient for statistical pattern recognition. In other words, the Soviet Tank Problem is an evaluation problem.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This! This happens all the time.&lt;/p&gt;

  </content>
 </entry>
 
 <entry>
  
  <title>Jekyll Neovim Plugin</title>
  
   <link href="https://blog.kanedo.net/2025/01/30/jekyll-neovim-plugin.html"/>
   <updated>2025-01-30T09:43:39+00:00</updated>
   <id>https://blog.kanedo.net/2025/01/30/jekyll-neovim-plugin</id>
   <content type="html"> 
  
  
  




  
  &lt;p&gt;Ich blogge mit Jekyll und benutze zwei Posttypes: Posts und Notes. Posts haben einen Titel und sind im Allgemeinen etwas länger. Notes sind nur kleine Snippets.&lt;/p&gt;

&lt;p&gt;Um einen neuen Post oder Note anzulegen, muss ich Dateien im richtigen Format mit dem richtigen Namen erzeugen. Bei den Posts ist es das Datum und der Titel, bei Notes das Datum mit einem random slug.&lt;/p&gt;

&lt;p&gt;Um die Neovim API besser zu lernen, habe ich kurzerhand ein kleines Plugin geschrieben. Das erzeugt zwei UserCommands &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;:JekyllPost&lt;/code&gt; und &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;:JekyllNote&lt;/code&gt;.
Im Grunde ist das Plugin ein einfaches Template/Snippet Plugin und vermutlich hätte ich das mit einem anderen Plugin auch lösen können. So ist es ein kleines Plugin geworden und ich habe viel über die lua API von Neovim gelernt.&lt;/p&gt;

&lt;p&gt;Wer es auch benutzen möchte, findet es auf Github &lt;a href=&quot;https://github.com/kanedo/jekyll.nvim/&quot;&gt;kanedo/jekyll.nvim&lt;/a&gt;. Es war das erste mal, dass ich mehr als zwei Zeilen lua geschrieben habe. Das Plugin ist Null Konfigurierbar und ich glaube auch nicht, dass ich das ändern werde.&lt;/p&gt;

  </content>
 </entry>
 
 <entry>
  
  <title>Spellchecking in Neovim</title>
  
   <link href="https://blog.kanedo.net/2025/01/28/spellchecking-in-neovim.html"/>
   <updated>2025-01-28T12:33:43+00:00</updated>
   <id>https://blog.kanedo.net/2025/01/28/spellchecking-in-neovim</id>
   <content type="html"> 
  
  
  




  
  &lt;p&gt;Ich versuche gerade mehr zu schreiben. Mir fiel das schon in der Uni schwer und jetzt habe ich wenig Gelegenheit zum Üben. Damit ich wenig Ausreden habe und einfach überall Schreiben kann möchte ich Neovim als meinen Editor benutzen.&lt;/p&gt;

&lt;p&gt;Vim per Default auch schon ein sehr guter Editor um Prosa zu schreiben, aber Rechtschreibung und Grammatik war noch nie meine Stärke.&lt;/p&gt;

&lt;p&gt;Aber natürlch gibt es ein Spellchecker-Plugin für Neovim. Of course …&lt;/p&gt;

&lt;h2 id=&quot;ltex-language-server&quot;&gt;ltex language server&lt;/h2&gt;

&lt;p&gt;Wir benutzen als LSP &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ltex&lt;/code&gt; (ich verwalte alle LSPs mit &lt;a href=&quot;https://github.com/williamboman/mason.nvim&quot;&gt;mason.nvim&lt;/a&gt;). Das funktioniert auch out-of-the-box.
Allerdings schreibe ich diesen Blog ja in Deutsch, aber die meisten anderen markdown Texte in Englisch.&lt;/p&gt;

&lt;p&gt;Damit ich zwischen den Sprachen wechseln kann habe ich mir zwei keymappings gebaut:&lt;/p&gt;

&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;    &lt;span class=&quot;n&quot;&gt;lspconfig&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ltex&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;setup&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;settings&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;ltex&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;n&quot;&gt;language&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;en-US&quot;&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;on_attach&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;vim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;keymap&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;n&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&amp;lt;leader&amp;gt;mse&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
          &lt;span class=&quot;n&quot;&gt;vim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;opt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;spelllang&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;en&quot;&lt;/span&gt;
          &lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ltexSettings&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;vim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lsp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_active_clients&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;ltex&quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;})[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;settings&lt;/span&gt;
          &lt;span class=&quot;n&quot;&gt;ltexSettings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ltex&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;language&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;en-US&quot;&lt;/span&gt;
          &lt;span class=&quot;n&quot;&gt;vim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lsp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;buf_notify&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;workspace/didChangeConfiguration&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;settings&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ltexSettings&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;vim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;keymap&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;n&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&amp;lt;leader&amp;gt;msd&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
          &lt;span class=&quot;n&quot;&gt;vim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;opt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;spelllang&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;de&quot;&lt;/span&gt;
          &lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ltexSettings&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;vim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lsp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_active_clients&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;ltex&quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;})[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;settings&lt;/span&gt;
          &lt;span class=&quot;n&quot;&gt;ltexSettings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ltex&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;language&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;de-DE&quot;&lt;/span&gt;
          &lt;span class=&quot;n&quot;&gt;vim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lsp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;buf_notify&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;workspace/didChangeConfiguration&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;settings&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ltexSettings&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Jetzt kann ich mittels &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;leader&amp;gt;msd&lt;/code&gt; das Spellchecking auf Deutsch umstellen und mit &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;leader&amp;gt;mse&lt;/code&gt; zurück auf Deutsch.&lt;/p&gt;

&lt;p&gt;Wenn die Markdown Dokumente ein YAML Frontmatter haben, kann man LanguageTool auch sagen welche Sprache das Dokument hat. Das geht ganz einfach mit&lt;/p&gt;

&lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nn&quot;&gt;---&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;post&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;Spellchecking&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;Neovim&quot;&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;date&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;2025-01-28 13:33:43 +0100&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;de-DE&lt;/span&gt;
&lt;span class=&quot;nn&quot;&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

  </content>
 </entry>
 

</feed>
