<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Doomemacs on かおるのブログ</title>
    <link>https://blog.kaorubb.org/ja/categories/doomemacs/</link>
    <description>Recent content in Doomemacs on かおるのブログ</description>
    <generator>Hugo -- 0.147.8</generator>
    <language>ja</language>
    <lastBuildDate>Sat, 12 Apr 2025 13:52:00 +0900</lastBuildDate>
    <atom:link href="https://blog.kaorubb.org/ja/categories/doomemacs/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Doom Emacs &amp; Mac へのSKK導入ガイド</title>
      <link>https://blog.kaorubb.org/ja/posts/skk_guide/</link>
      <pubDate>Sat, 12 Apr 2025 13:52:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/skk_guide/</guid>
      <description>&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/skk_engineer.jpeg&#34;/&gt; 
&lt;/figure&gt;

&lt;h2 id=&#34;この記事で分かること&#34;&gt;この記事で分かること&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;SKKとは何か&lt;/li&gt;
&lt;li&gt;AquaSKKのインストールと設定方法&lt;/li&gt;
&lt;li&gt;Doom EmacsでのSKK（ddskk）の導入方法&lt;/li&gt;
&lt;li&gt;SKK導入における障壁とその解決方法&lt;/li&gt;
&lt;li&gt;SKKを長期間使用した感想と評価&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;skkとは&#34;&gt;SKKとは&lt;/h2&gt;
&lt;p&gt;SKK（Simple Kana to Kanji conversion program）は、日本語入力システムの一種です。
一般的なIMEとは異なり、入力モードの切り替えが明示的で、変換候補を選ぶ際にも独特の操作方法を持っています。
特徴として：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;変換時に送り仮名を明示的に指定する&lt;/li&gt;
&lt;li&gt;辞書が自己学習し、使うほど自分専用の辞書になっていく&lt;/li&gt;
&lt;li&gt;キーボードから手を離さずに日本語入力ができる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;が挙げられます。&lt;/p&gt;
&lt;h2 id=&#34;skkとわたし&#34;&gt;SKKとわたし&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;昨年8月に参加した&lt;a href=&#34;https://tokyo-emacs.connpass.com/event/321255/&#34;&gt;東京Emacs勉強会 サマーフェスティバル2024&lt;/a&gt; でSKKの存在を知り、そこでSKKをちょっと使ってみるも、何が良いのかわからず、いつのまにか存在を忘れる&lt;/li&gt;
&lt;li&gt;約2ヶ月後の&lt;a href=&#34;https://tokyo-emacs.connpass.com/event/330572/&#34;&gt;東京Emacs勉強会 オクトーバーフェスティバル2024&lt;/a&gt; で再度SKKの話題になる。
参加者の過半数がSKKを使用しており、その空間ではSKKを使っていない方がマイノリティであることを知り、すぐにSKKを導入。全然思うように使えず、生産性が爆下がりする&lt;/li&gt;
&lt;li&gt;しかし、日本のEmacser多くの方々が使っているからには、何かしら良いところがあるはずだと考え、キーボード自体の設定を変えたりしながら、徐々にSKKに適応していく&lt;/li&gt;
&lt;li&gt;使い始めてから5ヶ月ほど経ち、SKK関連の設定も安定。試行錯誤の結果の設定を共有したいと思いこの記事を書くに至る&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;aquaskkの導入&#34;&gt;AquaSKKの導入&lt;/h2&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;インストール&lt;/p&gt;
&lt;p&gt;Homebrewを使って簡単にインストールできます：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;brew install --cask aquaskk
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;です。&lt;/p&gt;
&lt;p&gt;nix&amp;amp;flake&amp;amp;home-managerを使っている方は、以下を適切にimportするとインストールできます：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-nix&#34; data-lang=&#34;nix&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;homebrew&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;casks &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;aquaskk&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;基本設定&lt;/p&gt;
&lt;p&gt;こういうのは基本的にデフォルトのままで使いたい派の自分ですが、日本語入力の切り替えキーだけは変えました。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;AquaSKK/keymap.conf&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff&#34; data-lang=&#34;diff&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;- SKK_JMODE		ctrl::j
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;+ SKK_JMODE		ctrl::shift::j
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;（理由は後述します）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;設定の同期&lt;/p&gt;
&lt;p&gt;複数のデバイス間で辞書やキーマップの設定を同期させるために、AquaSKKのディレクトリをDropboxに配置し、 &lt;code&gt;~/Library/Application Support/&lt;/code&gt; 内にシンボリックリンクを作成しました：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ln -s ~/Dropbox/AquaSKK ~/Library/Application&lt;span style=&#34;color:#ae81ff&#34;&gt;\ &lt;/span&gt;Support/AquaSKK
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Macのデフォルト入力切替キー無効化&lt;/p&gt;</description>
    </item>
    <item>
      <title>emacs の indirect buffer が便利だった</title>
      <link>https://blog.kaorubb.org/ja/posts/emacs_indirect_buffer/</link>
      <pubDate>Fri, 28 Mar 2025 09:36:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/emacs_indirect_buffer/</guid>
      <description>&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.kaorubb.org/kaorunoblog/ox-hugo/indirect_buffer_demo.gif&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;Emacsを使っていると、「このファイルの一部だけを別のウィンドウで編集したい…」「同じ内容だけど、表示モードを変えて見比べたい…」と思うことはありませんか？&lt;/p&gt;
&lt;p&gt;自分は、よくありました。
そんな時に発見して感動した機能が、 &lt;strong&gt;Indirect Buffer&lt;/strong&gt; です！&lt;/p&gt;
&lt;p&gt;この記事では、Indirect Bufferの基本的な概念から、使い方、注意点までを解説します。&lt;/p&gt;
&lt;h2 id=&#34;indirect-bufferとは&#34;&gt;Indirect Bufferとは？&lt;/h2&gt;
&lt;p&gt;Indirect Bufferは、Emacsの特殊なバッファの一種で、別のバッファ(&lt;strong&gt;ベースバッファ&lt;/strong&gt; と呼ばれます)の内容を「共有」するものです。
ファイルシステムのシンボリックリンクのようなもの、と言えばイメージしやすいかもしれません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;内容の共有:&lt;/strong&gt;
Indirect Bufferは、ベースバッファのテキスト内容（文字だけでなく、文字の色やフォントなどの &lt;strong&gt;テキストプロパティ&lt;/strong&gt; も含む）を完全に共有します。一方での変更は、もう一方に即座に反映されます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;独立性:&lt;/strong&gt;
内容は共有しますが、それ以外の点（バッファ名、カーソル位置、表示モードなど）は、Indirect Bufferとベースバッファでそれぞれ独立して設定できます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ファイルとの関連:&lt;/strong&gt;
Indirect Buffer自体はファイルを直接開きませんが、ベースバッファはファイルを開くことができます。Indirect Bufferを保存しようとすると、実際にはベースバッファが保存されます。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;indirect-bufferの作り方&#34;&gt;Indirect Bufferの作り方&lt;/h2&gt;
&lt;p&gt;自分が調べた限りでは、 Indirect Bufferを作成する方法は、以下の3つでした。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;M-x make-indirect-buffer&lt;/code&gt;:
&lt;ul&gt;
&lt;li&gt;より汎用的な作成方法です。&lt;/li&gt;
&lt;li&gt;ミニバッファを使って、ベースバッファとIndirect Bufferの名前を指定します。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;M-x clone-indirect-buffer&lt;/code&gt; またはdoom emacs で &lt;code&gt;SPC B c&lt;/code&gt; (&lt;code&gt;clone-indirect-buffer-other-window&lt;/code&gt; または &lt;code&gt;SPC B c&lt;/code&gt;):
&lt;ul&gt;
&lt;li&gt;現在開いているバッファをベースバッファとするIndirect Bufferを、素早く作成する方法です。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SPC B c&lt;/code&gt; は、新しいウィンドウでIndirect Bufferを開きます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;(org-mode内で) &lt;code&gt;M-x org-tree-to-indirect-buffer&lt;/code&gt; (&lt;code&gt;z n&lt;/code&gt;):
&lt;ul&gt;
&lt;li&gt;現在の subtree をIndirect Bufferとして開きます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;M-x doom/widen-indirectly-narrowed-buffer&lt;/code&gt; (&lt;code&gt;z N&lt;/code&gt;)で、元のバッファに戻る&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;個人的には、1の方法は全く使わず、 2と3をよく使います。
手軽にIndirect Bufferを作れて、とても便利です！&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
