<?xml version="1.0" encoding="UTF-8"?><feed
	xmlns="http://www.w3.org/2005/Atom"
	xmlns:thr="http://purl.org/syndication/thread/1.0"
	xml:lang="ja"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>
	<title type="text">inabamasaki.com</title>
	<subtitle type="text">生活を便利にするライフハックや技術系や投資の話題などを記事にしています。</subtitle>

	<updated>2018-09-30T06:42:49Z</updated>

	<link rel="alternate" type="text/html" href="https://www.inabamasaki.com" />
	<id>https://www.inabamasaki.com/feed/atom/</id>
	<link rel="self" type="application/atom+xml" href="https://www.inabamasaki.com/feed/atom/" />

	<generator uri="https://wordpress.org/" version="6.4.1">WordPress</generator>
<link rel="hub" href="https://pubsubhubbub.appspot.com" /><link rel="hub" href="https://pubsubhubbub.superfeedr.com" /><link rel="hub" href="https://websubhub.com/hub" />	<entry>
		<author>
			<name>Masaki Inaba</name>
					</author>

		<title type="html"><![CDATA[[Mac] Snagit のスクロールキャプチャができない件の解決方法]]></title>
		<link rel="alternate" type="text/html" href="https://www.inabamasaki.com/archives/2658" />

		<id>https://www.inabamasaki.com/?p=2658</id>
		<updated>2018-09-04T08:25:51Z</updated>
		<published>2018-09-04T08:10:00Z</published>
		<category scheme="https://www.inabamasaki.com" term="trouble" /><category scheme="https://www.inabamasaki.com" term="Mac" /><category scheme="https://www.inabamasaki.com" term="Snagit" /><category scheme="https://www.inabamasaki.com" term="Tips" /><category scheme="https://www.inabamasaki.com" term="tad" />
		<summary type="html"><![CDATA[Snagitという便利な画面キャプチャーソフトがあります。その機能にブラウザの画面に表示していない部分もキャプチャーできる「スクロールキャプチャ」があります。 便利に使っていたこの機能ですが、ある日からエラーが表示されて使えなくなり困っていました。しかし対応方法がわかりましたのでご紹介します。 Snagitのスクロールキャプチャー機能とは Snagitのスクロールキャプチャー機能の解説は公式動画を見てもらうのが早いです。 スクロールキャ...]]></summary>

					<content type="html" xml:base="https://www.inabamasaki.com/archives/2658"><![CDATA[<p> Snagitという便利な画面キャプチャーソフトがあります。その機能にブラウザの画面に表示していない部分もキャプチャーできる「スクロールキャプチャ」があります。<br /> </p>

<p> 便利に使っていたこの機能ですが、ある日からエラーが表示されて使えなくなり困っていました。しかし対応方法がわかりましたのでご紹介します。<br /> </p>



<div id="outline-container-org04d4107" class="outline-2">
<h2 id="org04d4107">Snagitのスクロールキャプチャー機能とは</h2>
<div class="outline-text-2" id="text-org04d4107">
<p> Snagitのスクロールキャプチャー機能の解説は公式動画を見てもらうのが早いです。<br /> </p>

<div class="emb_video"><iframe width="630" height="354" src="https://www.youtube.com/embed/jL2ULh3l6hY" allowfullscreen></iframe></div>
</div>
</div>

<div id="outline-container-org10c2f6c" class="outline-2">
<h2 id="org10c2f6c">スクロールキャプチャー時のエラー解消法</h2>
<div class="outline-text-2" id="text-org10c2f6c">
<p> Google Chromeでスクロールキャプチャーを実行すると、「スクロールキャプチャーは利用できません。パノラマスクロールキャプチャーを利用してください」といったエラーメッセージが表示されることがあります。もちろんパララマなんちゃらを使っても良いのですが、こちらは手動で画面をスクロールする必要があり、全画面キャプチャーにはやや不便です。<br /> </p>

<p> そこでスクロールキャプチャーのエラーを解消させます。<br /> </p>

<p> Google Chromeのメニューから「表示」→「開発／管理」→「Apple Events からの JavaScriptを許可」にチェックを入れます。これだけで解決できます。<br /> <a href="https://www.inabamasaki.com/wp-content/uploads/howto-resolve-scrolling-capture-failed-with-snagit.gif"><img decoding="async" src="https://www.inabamasaki.com/wp-content/uploads/howto-resolve-scrolling-capture-failed-with-snagit.gif" alt="howto-resolve-scrolling-capture-failed-with-snagit.gif" /></a><br /> </p>
</div>
</div>

<div id="outline-container-org142c399" class="outline-2">
<h2 id="org142c399">まとめ</h2>
<div class="outline-text-2" id="text-org142c399">
<p> ちなみにこの対処法は、Mac環境でのものです。公式ページに解説がありますので合わせてどうぞ。<br /> </p>

<iframe style="width:100%;height:190px;max-height:250px;margin:10px 0px;display:block;" src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fsupport.techsmith.com%2Fhc%2Fen-us%2Farticles%2F219245257-Snagit-Mac-Scrolling-Capture-Failed" class="embed-card embed-blogcard" height="190" width="500" frameborder="0" scrolling="no"></iframe>
</div>
</div>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Masaki Inaba</name>
					</author>

		<title type="html"><![CDATA[SQLite のバックアップ方法色々(DB丸ごと、dumpしてSQLに、データのみ抜き出し)]]></title>
		<link rel="alternate" type="text/html" href="https://www.inabamasaki.com/archives/2640" />

		<id>https://www.inabamasaki.com/?p=2640</id>
		<updated>2018-01-25T10:35:13Z</updated>
		<published>2018-01-25T08:07:00Z</published>
		<category scheme="https://www.inabamasaki.com" term="DB" /><category scheme="https://www.inabamasaki.com" term="SQLite" /><category scheme="https://www.inabamasaki.com" term="Tips" /><category scheme="https://www.inabamasaki.com" term="tad" />
		<summary type="html"><![CDATA[SQLiteのバックアップ方法が色々あるのでそのまとめ記事。単純な方法からコマンドラインを活用したものまで。 SQLiteの基本 SQLiteにはユーザーの概念が無く、DB自体も単一ファイルです。 というわけでDBに接続するのも簡単で、ファイル名を指定するだけです。 % sqlite3 db-filename これで接続できるので後は直接SQLを叩けます。RubyとかPHPといったプログラムから接続する場合もそれぞれの書式に則る必要があ...]]></summary>

					<content type="html" xml:base="https://www.inabamasaki.com/archives/2640"><![CDATA[<p> SQLiteのバックアップ方法が色々あるのでそのまとめ記事。単純な方法からコマンドラインを活用したものまで。<br /> </p>



<div id="outline-container-org4349417" class="outline-2">
<h2 id="org4349417">SQLiteの基本</h2>
<div class="outline-text-2" id="text-org4349417">
<p> SQLiteにはユーザーの概念が無く、DB自体も単一ファイルです。<br /> </p>

<p> というわけでDBに接続するのも簡単で、ファイル名を指定するだけです。<br /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% sqlite3 db-filename
</pre>

<p> これで接続できるので後は直接SQLを叩けます。RubyとかPHPといったプログラムから接続する場合もそれぞれの書式に則る必要があるものの、基本的にはファイル名を指定するだけです。<br /> </p>


<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>

</div>
</div>

<div id="outline-container-org9d117ed" class="outline-2">
<h2 id="org9d117ed">単純簡単なバックアップとリストア方法</h2>
<div class="outline-text-2" id="text-org9d117ed">
<p> SQLiteはバックアップも簡単です。先ほど書いた通り「DB自体も単一ファイル」なので、バックアップは「そのDBファイルをコピーするだけ」です。非常に簡単ですね。<br /> </p>

<p> 他のDBだとバックアップやリストアはそれなりに難しかったりするので嬉しい所です。例えば毎日cronでDBファイルをコピーするだけで日次バックアップが取れます。また前日のファイルをコピーするだけで最悪前日まではリストアできます（前日に既に壊れていなければ）。<br /> </p>
</div>
</div>

<div id="outline-container-orgc1af0ee" class="outline-2">
<h2 id="orgc1af0ee">SQLiteの.backup/.resotreコマンドでのバックアップとリストア</h2>
<div class="outline-text-2" id="text-orgc1af0ee">
<p> ファイルコピー以外にコマンドでのバックアップも可能です。さっきの要領でSQLiteに接続し、sqlite&gt; のプロンプトで 「.backup」 コマンドを実行します。<br /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
sqlite&amp;gt; .backup backup-filename
</pre>

<p> リストアは逆に「.restore」コマンドを使うだけです。こちらはバックアップとリストアの一連の流れの例です。<br /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
sqlite&amp;gt; .backup test-backup
sqlite&amp;gt; .quit

% sqlite3 test
SQLite version 3.8.10.2 2015-05-20 18:17:19
Enter &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;.help&quot;&lt;/span&gt; for usage hints.
sqlite&amp;gt; .tables
sqlite&amp;gt;
sqlite&amp;gt; .restore test-backup
tbl_test
sqlite&amp;gt; drop table tbl_test;
sqlite&amp;gt; .tables
sqlite&amp;gt;
sqlite&amp;gt; .restore test-backup
sqlite&amp;gt; .tables
tbl_test
sqlite&amp;gt;
</pre>


<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>

</div>
</div>

<div id="outline-container-orgee3c9dd" class="outline-2">
<h2 id="orgee3c9dd">DBの内容をsql文としてdumpとリストア</h2>
<div class="outline-text-2" id="text-orgee3c9dd">
<p> ここまでのやり方はバイナリファイルを扱うものでした。これ以外の方法としてDBの内容をSQLにdumpするというバックアップ方法もあります。これにはSQLiteの「.dump」コマンドを利用します。<br /> SQL文でダンプすればMySQLなど他のDBにインポートしたりもできます。<br /></p>

<p> コマンドラインから実行することも可能なのでシェルスクリプト化してcronで自動処理させることも可能です。<br /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% sqlite3 testdb .dump &amp;gt; testdb-bak.sql
</pre>

<p> リストアする場合は「.read」コマンドを使います。<br /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
sqlite3&amp;gt; .read test-bak.sql
</pre>

<p> コマンドラインからも実行可能です。この場合は、「.read とファイル名をクオートで囲う」必要があります。<br /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% sqlite3 testrest2 '.read test-bak.sql'
</pre>
</div>
</div>

<div id="outline-container-orgc49da49" class="outline-2">
<h2 id="orgc49da49">データのみバックアップ</h2>
<div class="outline-text-2" id="text-orgc49da49">
<p> ここまではDBをバックアップする方法でしたが、データのみを抜き出すことも可能です。使うコマンドは、「.output」、「.mode」、「select (SQL文)」です。<br /> </p>

<p> こういうのは実際に流れをみてもらった方がわかりやすいのでサンプルとして試してみます。<br /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% sqlite3 testdb
SQLite version 3.8.10.2 2015-05-20 18:17:19
Enter &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;.help&quot;&lt;/span&gt; for usage hints.
sqlite&amp;gt; .mode csv
sqlite&amp;gt; .output test-output-data.csv
sqlite&amp;gt; select * from tbl_test order by id;
sqlite&amp;gt; .quit

% cat test-output-data.csv
1,&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;recipe A&quot;&lt;/span&gt;,1000
2,&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;recipe B&quot;&lt;/span&gt;,2000
3,&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;recipe C&quot;&lt;/span&gt;,1700
4,&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;日本建築の本&quot;&lt;/span&gt;,1000
5,&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;海外の工芸品&quot;&lt;/span&gt;,2000
6,&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;論理的思考ほにゃらら&quot;&lt;/span&gt;,3000
</pre>

<p> DBに接続した後<br /> </p>

<ul class="org-ul">
<li>「.mode」で出力形式をCSVに指定<br /></li>
<li>「.output」でSQLの出力結果をファイルに<br /></li>
<li>「select」で任意のSQLを実行<br /></li>
</ul>

<p> という流れです。<br /> </p>
</div>
</div>

<div id="outline-container-orga49dd30" class="outline-2">
<h2 id="orga49dd30">「おまけ」SQLite v2 から v3 へのDB変換</h2>
<div class="outline-text-2" id="text-orga49dd30">
<p> 古いバージョンのSQLiteのDBをSQLite3形式に変換する方法です。Ver.2 から Ver.3に変換します。<br /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% sqlite db-name .dump | sqlite3 new-db-name</pre>

<p> これでOK！簡単です。<br /> </p>
</div>
</div>

<div id="outline-container-orgd68ae82" class="outline-2">
<h2 id="orgd68ae82">参考書籍</h2>
<div class="outline-text-2" id="text-orgd68ae82">

</div>
</div>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Masaki Inaba</name>
					</author>

		<title type="html"><![CDATA[[Emacs] Wanderlustでヘッダー情報に基づき送信元情報を自動選択する方法。（SMTPサーバー、メールアドレス等）]]></title>
		<link rel="alternate" type="text/html" href="https://www.inabamasaki.com/archives/2628" />

		<id>https://www.inabamasaki.com/?p=2628</id>
		<updated>2018-09-19T08:41:29Z</updated>
		<published>2018-01-18T06:27:00Z</published>
		<category scheme="https://www.inabamasaki.com" term="Emacs" /><category scheme="https://www.inabamasaki.com" term="Tips" /><category scheme="https://www.inabamasaki.com" term="tad" />
		<summary type="html"><![CDATA[Emacsの高機能メーラーWanderlustのちょっと便利な機能を紹介します。 メールをビジネス用途、私用と諸々のケースで使う時に、例えばビジネス用のメールアドレスとプライベートのアドレスが違うケースがあるという事はよくあると思います。仕事で使う場合でもプロジェクトによりアドレスなどが変えるケースもあるかと思います。 色々と使い分けが必要なケースはありますが、これを手動でやっていると間違いが発生したりします。プライベートアドレスで仕事...]]></summary>

					<content type="html" xml:base="https://www.inabamasaki.com/archives/2628"><![CDATA[<p> Emacsの高機能メーラーWanderlustのちょっと便利な機能を紹介します。<br  /> </p>

<p> メールをビジネス用途、私用と諸々のケースで使う時に、例えばビジネス用のメールアドレスとプライベートのアドレスが違うケースがあるという事はよくあると思います。仕事で使う場合でもプロジェクトによりアドレスなどが変えるケースもあるかと思います。<br  /> </p>

<p> 色々と使い分けが必要なケースはありますが、これを手動でやっていると間違いが発生したりします。プライベートアドレスで仕事先に送ってしまったとか。<br  /> </p>

<p> できればこういう事は自動で行ったほうがベターですが、Wanderlustではメールのヘッダー情報に基づいて、送信元情報を自動で変更する機能があるのでそれが使えます。<br  /> </p>



<div id="outline-container-orgc825841" class="outline-2">
<h2 id="orgc825841">概要</h2>
<div class="outline-text-2" id="text-orgc825841">
<p> 具体的には届いたメールに返信をする際に、差出人(From)のメールアドレスや、もしくは宛先(ToやCc)を条件に、差出人情報を自動で選択させます。差出人情報には以下のようなものを含みます。<br  /> </p>

<ul class="org-ul">
<li>各種メールアドレス (From, Bcc, Fccなど)<br  /></li>
<li>SMTPサーバー<br  /></li>
</ul>

<p> サーバーも変えられるので、条件によって時にGmailから送ったり、Yahoo!から送ったり、その他プロバイダや自社メールサーバーから送ると行った事も可能です。アドレスだけでなくこの辺を完全に分けたい方もいるかと思います。<br  /> </p>
</div>
</div>


<div id="outline-container-org745a2b0" class="outline-2">
<h2 id="org745a2b0">設定の概要</h2>
<div class="outline-text-2" id="text-org745a2b0">
<p> Wanderlustはパラメーターが多いですが、今回利用するのは主に "wl-template-alist" , "wl-draft-config-alist" です。その他細かいパラメーターも必要に応じてとなります。<br  /> </p>

<p> まず先に概略を説明すると<br  /> </p>

<table border="2" cellspacing="0" cellpadding="6">


<colgroup>
<col  class="org-left" />

<col  class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">パラメーター名</th>
<th scope="col" class="org-left">用途</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">wl-template-alist</td>
<td class="org-left">テンプレートの登録</td>
</tr>

<tr>
<td class="org-left">wl-draft-config-alist</td>
<td class="org-left">テンプレートの選択条件を設定</td>
</tr>
</tbody>
</table>

<p> といった感じになります。<br  /> </p>

<p> 上記2つのパラメーターを設定しておいて、後はフックで必要なタイミングで設定を反映させる形です。<br  /> </p>


<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>

</div>
</div>


<div id="outline-container-org722b907" class="outline-2">
<h2 id="org722b907">wl-template-alist の設定例</h2>
<div class="outline-text-2" id="text-org722b907">
<p> まずデフォルトの送信者情報やSMTPサーバーを登録しています。その後、"wl-template-alist" で "default", "biz", "private" の3つのテンプレートを登録した例です。登録内容は全て仮のものです。<br  /> </p>

<pre class="coding" style="color: #CDD3D3; background-color: #263238;">
&lt;span style=&quot;color: #546D7A;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;&amp;#12487;&amp;#12501;&amp;#12457;&amp;#12523;&amp;#12488;&amp;#12398;&amp;#36865;&amp;#20449;&amp;#32773;&amp;#24773;&amp;#22577;
&lt;/span&gt;&lt;span style=&quot;color: #FF516D;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C792EA;&quot;&gt;setq&lt;/span&gt; wl-from &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;&amp;#12411;&amp;#12370;&amp;#12387;&amp;#12392; &lt;a href=&quot;mailto:hogehogeeeee%40gmail.com&quot;&gt;&amp;lt;hogehogeeeee@gmail.com&amp;gt;&lt;/a&gt;&quot;&lt;/span&gt;
      wl-bcc &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;hogehogeeeee@gmail.com&quot;&lt;/span&gt;
      wl-fcc &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;%Sent:\&quot;hogehogeeeee@gmail.com\&quot;/clear@imap.gmail.com:993!&quot;&lt;/span&gt;
      &lt;span style=&quot;color: #FF516D;&quot;&gt;)&lt;/span&gt;

&lt;span style=&quot;color: #FF516D;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C792EA;&quot;&gt;setq&lt;/span&gt; wl-template-alist
      '&lt;span style=&quot;color: #C792EA;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D9F5DD;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;default&quot;&lt;/span&gt;                      &lt;span style=&quot;color: #546D7A;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;&amp;#12486;&amp;#12531;&amp;#12503;&amp;#12524;&amp;#12540;&amp;#12488;&amp;#21517;(&amp;#20219;&amp;#24847;)
&lt;/span&gt;         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;From&quot;&lt;/span&gt; . wl-from&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;             &lt;span style=&quot;color: #546D7A;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;&amp;#12487;&amp;#12501;&amp;#12457;&amp;#12523;&amp;#12488;&amp;#12398;&amp;#36865;&amp;#20449;&amp;#32773;&amp;#12434;&amp;#21033;&amp;#29992;
&lt;/span&gt;         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;Bcc&quot;&lt;/span&gt;  . wl-bcc&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;              &lt;span style=&quot;color: #546D7A;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;&amp;#12487;&amp;#12501;&amp;#12457;&amp;#12523;&amp;#12488;&amp;#12398;bcc&amp;#12434;&amp;#21033;&amp;#29992;
&lt;/span&gt;         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;Fcc&quot;&lt;/span&gt;  . wl-fcc&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;              &lt;span style=&quot;color: #546D7A;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;&amp;#12487;&amp;#12501;&amp;#12457;&amp;#12523;&amp;#12488;&amp;#12398;fcc&amp;#12434;&amp;#21033;&amp;#29992;
&lt;/span&gt;         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-posting-server . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;smtp.gmail.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-posting-user . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;Gmail&amp;#12450;&amp;#12459;&amp;#12454;&amp;#12531;&amp;#12488;(&amp;#12513;&amp;#12540;&amp;#12523;&amp;#12450;&amp;#12489;&amp;#12524;&amp;#12473;)&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-local-domain . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;gmail.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-authenticate-type .&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;login&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-posting-port . 465&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-connection-type . 'ssl&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #D9F5DD;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: #D9F5DD;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;biz&quot;&lt;/span&gt;
         &lt;span style=&quot;color: #546D7A;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;biz&amp;#12486;&amp;#12531;&amp;#12503;&amp;#12524;&amp;#12540;&amp;#12488;&amp;#12399;&amp;#36865;&amp;#20449;&amp;#32773;&amp;#12450;&amp;#12489;&amp;#12524;&amp;#12473;&amp;#12398;&amp;#12415;&amp;#22793;&amp;#26356;
&lt;/span&gt;         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;From&quot;&lt;/span&gt; . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;&amp;#12499;&amp;#12472;&amp;#12493;&amp;#12473;&amp;#29992;&amp;#12450;&amp;#12489;&amp;#12524;&amp;#12473; &lt;a href=&quot;mailto:hogebizhoegbiz%40gmail.com&quot;&gt;&amp;lt;hogebizhoegbiz@gmail.com&amp;gt;&lt;/a&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;Bcc&quot;&lt;/span&gt;  . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;hogebizzzz@gmail.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;Fcc&quot;&lt;/span&gt;  . wl-fcc&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;              &lt;span style=&quot;color: #546D7A;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;&amp;#12487;&amp;#12501;&amp;#12457;&amp;#12523;&amp;#12488;&amp;#12398;fcc&amp;#12434;&amp;#21033;&amp;#29992;
&lt;/span&gt;         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-posting-server . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;smtp.gmail.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-posting-user . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;Gmail&amp;#12450;&amp;#12459;&amp;#12454;&amp;#12531;&amp;#12488;(&amp;#12513;&amp;#12540;&amp;#12523;&amp;#12450;&amp;#12489;&amp;#12524;&amp;#12473;)&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-local-domain . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;gmail.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-authenticate-type .&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;login&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-posting-port . 465&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-connection-type . 'ssl&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #D9F5DD;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: #D9F5DD;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;private&quot;&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;From&quot;&lt;/span&gt; . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;&amp;#12503;&amp;#12521;&amp;#12452;&amp;#12505;&amp;#12540;&amp;#12488;&amp;#29992; &lt;a href=&quot;mailto:privattto%40example.com&quot;&gt;&amp;lt;privattto@example.com&amp;gt;&lt;/a&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;Bcc&quot;&lt;/span&gt;  . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;privattto@gmail.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;Fcc&quot;&lt;/span&gt;  . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;&quot;&lt;/span&gt;%Sent:\&quot;priprivattto@example.com\&quot;/clear@example.com:993!&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-posting-server . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;example.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-posting-user . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;privattto@example.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-local-domain . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;example.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-authenticate-type .&lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;plain&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-posting-port . 587&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;wl-smtp-connection-type . 'starttls&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #D9F5DD;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: #C792EA;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #FF516D;&quot;&gt;)&lt;/span&gt;
</pre>
</div>
</div>





<div id="outline-container-org24af6fd" class="outline-2">
<h2 id="org24af6fd">wl-draft-config-alist の設定例</h2>
<div class="outline-text-2" id="text-org24af6fd">
<p> "wl-draft-config-alist" では自動でテンプレートを切り替える条件を記載します。最初のキーワードに "reply" と記載して、その後は条件を正規表現で記載し、最後に切り替えるテンプレートを指定します。リストは必要に応じて複数記載可能です。<br  /> </p>

<pre class="coding" style="color: #CDD3D3; background-color: #263238;">
&lt;span style=&quot;color: #FF516D;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C792EA;&quot;&gt;setq&lt;/span&gt; wl-draft-config-alist
      '&lt;span style=&quot;color: #C792EA;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D9F5DD;&quot;&gt;(&lt;/span&gt;reply
         &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;^&lt;/span&gt;&lt;span style=&quot;color: #546D7A; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #FFC400; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;To&lt;/span&gt;&lt;span style=&quot;color: #546D7A; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #FFC400; font-weight: bold;&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;Cc&lt;/span&gt;&lt;span style=&quot;color: #546D7A; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #FFC400; font-weight: bold;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;:.*@hogehogeeeee@gmail\\.com.*&quot;&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;template . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;default&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #D9F5DD;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: #D9F5DD;&quot;&gt;(&lt;/span&gt;reply
         &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;^&lt;/span&gt;&lt;span style=&quot;color: #546D7A; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #FFC400; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;To&lt;/span&gt;&lt;span style=&quot;color: #546D7A; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #FFC400; font-weight: bold;&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;Cc&lt;/span&gt;&lt;span style=&quot;color: #546D7A; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #FFC400; font-weight: bold;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;:.*hogebizzzz@gmail\\.com.*&quot;&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;template . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;biz&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #D9F5DD;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: #D9F5DD;&quot;&gt;(&lt;/span&gt;reply
         &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;^&lt;/span&gt;&lt;span style=&quot;color: #546D7A; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #FFC400; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;From&lt;/span&gt;&lt;span style=&quot;color: #546D7A; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #FFC400; font-weight: bold;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;:.+@foobar\\.com.*&quot;&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;template . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;biz&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #D9F5DD;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: #D9F5DD;&quot;&gt;(&lt;/span&gt;reply
         &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;^&lt;/span&gt;&lt;span style=&quot;color: #546D7A; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #FFC400; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;To&lt;/span&gt;&lt;span style=&quot;color: #546D7A; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #FFC400; font-weight: bold;&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;Cc&lt;/span&gt;&lt;span style=&quot;color: #546D7A; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #FFC400; font-weight: bold;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #C2E982;&quot;&gt;:.*privattto@example\\.com*&quot;&lt;/span&gt;
         &lt;span style=&quot;color: #74CBC4;&quot;&gt;(&lt;/span&gt;template . &lt;span style=&quot;color: #C2E982;&quot;&gt;&quot;private&quot;&lt;/span&gt;&lt;span style=&quot;color: #74CBC4;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #D9F5DD;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: #C792EA;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #FF516D;&quot;&gt;)&lt;/span&gt;
</pre>
</div>
</div>

<div id="outline-container-org556a163" class="outline-2">
<h2 id="org556a163">テンプレートを自動で切り替えるフックを設定</h2>
<div class="outline-text-2" id="text-org556a163">
<p> フックに登録することでテンプレートの動的変更が有効になります。<br  /> </p>

<pre class="coding" style="color: #CDD3D3; background-color: #263238;">
&lt;span style=&quot;color: #546D7A;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;&amp;#12469;&amp;#12510;&amp;#12522;&amp;#12514;&amp;#12540;&amp;#12489;&amp;#12363;&amp;#12425; &quot;A&quot; (wl-summary-reply-with-citation) &amp;#31561;&amp;#12391;
&lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;&amp;#12489;&amp;#12521;&amp;#12501;&amp;#12488;&amp;#12496;&amp;#12483;&amp;#12501;&amp;#12449;&amp;#20316;&amp;#25104;&amp;#26178;&amp;#12395;&amp;#21205;&amp;#30340;&amp;#22793;&amp;#26356;&amp;#12434;&amp;#33258;&amp;#21205;&amp;#36969;&amp;#29992;
&lt;/span&gt;&lt;span style=&quot;color: #FF516D;&quot;&gt;(&lt;/span&gt;add-hook 'wl-mail-setup-hook 'wl-draft-config-exec&lt;span style=&quot;color: #FF516D;&quot;&gt;)&lt;/span&gt;

&lt;span style=&quot;color: #546D7A;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;&amp;#12469;&amp;#12510;&amp;#12522;&amp;#12514;&amp;#12540;&amp;#12489;&amp;#12363;&amp;#12425; &quot;E&quot; (wl-summary-reedit) &amp;#12391;&amp;#12513;&amp;#12540;&amp;#12523;&amp;#12434;&amp;#32232;&amp;#38598;&amp;#12377;&amp;#12427;&amp;#26178;
&lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;&amp;#12395;&amp;#12418;&amp;#33258;&amp;#21205;&amp;#30340;&amp;#12395;&amp;#21205;&amp;#30340;&amp;#22793;&amp;#26356;&amp;#12434;&amp;#36969;&amp;#29992;
&lt;/span&gt;&lt;span style=&quot;color: #FF516D;&quot;&gt;(&lt;/span&gt;add-hook 'wl-draft-reedit-hook 'wl-draft-config-exec&lt;span style=&quot;color: #FF516D;&quot;&gt;)&lt;/span&gt;
</pre>

<p> また wl-interactive-send を non-nil にすることで、送信前に変更内容を確認できるので有効にしておいた方が良いです。<br  /> </p>

<pre class="coding" style="color: #CDD3D3; background-color: #263238;">
&lt;span style=&quot;color: #546D7A;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #546D7A;&quot;&gt;&amp;#12513;&amp;#12540;&amp;#12523;&amp;#36865;&amp;#20449;&amp;#26178;&amp;#12395;&amp;#21205;&amp;#30340;&amp;#22793;&amp;#26356;&amp;#12434;&amp;#30906;&amp;#35469;&amp;#12377;&amp;#12427;
&lt;/span&gt;&lt;span style=&quot;color: #FF516D;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #C792EA;&quot;&gt;setq&lt;/span&gt; wl-interactive-send t&lt;span style=&quot;color: #FF516D;&quot;&gt;)&lt;/span&gt;
</pre>

<p> 設定は以上です。<br  /> </p>
</div>
</div>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Masaki Inaba</name>
					</author>

		<title type="html"><![CDATA[CASIO AW-80 の時計合わせの方法まとめ]]></title>
		<link rel="alternate" type="text/html" href="https://www.inabamasaki.com/archives/2616" />

		<id>https://www.inabamasaki.com/?p=2616</id>
		<updated>2018-09-20T08:27:06Z</updated>
		<published>2017-12-27T05:16:00Z</published>
		<category scheme="https://www.inabamasaki.com" term="Gadjet" /><category scheme="https://www.inabamasaki.com" term="CASIO" /><category scheme="https://www.inabamasaki.com" term="manual" /><category scheme="https://www.inabamasaki.com" term="tad" /><category scheme="https://www.inabamasaki.com" term="時計" />
		<summary type="html"><![CDATA[チープカシオ「AW-80」の時計合わせの方法です。この機種はデジタル部分とアナログ部分を別個に時計合わせする必要があります。時計合わせは日々やるものではないのでやり方を忘れてしまうんですよね。なので簡単にまとめておきます。 ボタン位置 まず「AW-80」のボタン位置と名称です。写真は「AW-80-1AJF」です。 A: 左上 B: 右上 C: 左下 D: 右下 左上がAボタンで、そこから「Z」を描く形でBボタン、Cボタン、Dボタンとなり...]]></summary>

					<content type="html" xml:base="https://www.inabamasaki.com/archives/2616"><![CDATA[<p> チープカシオ「AW-80」の時計合わせの方法です。この機種はデジタル部分とアナログ部分を別個に時計合わせする必要があります。時計合わせは日々やるものではないのでやり方を忘れてしまうんですよね。なので簡単にまとめておきます。<br  /> </p>



<div id="outline-container-org3bee77e" class="outline-2">
<h2 id="org3bee77e">ボタン位置</h2>
<div class="outline-text-2" id="text-org3bee77e">
<p> まず「AW-80」のボタン位置と名称です。写真は「AW-80-1AJF」です。<br  /> </p>

<div class="figure"> <p><a href="https://www.inabamasaki.com/wp-content/uploads/F-AW80.jpg"><img decoding="async" src="https://www.inabamasaki.com/wp-content/uploads/F-AW80.jpg" alt="F-AW80.jpg" /></a><br  /> </p> </div>

<table border="2" cellspacing="0" cellpadding="6">


<colgroup>
<col  class="org-left" />

<col  class="org-left" />
</colgroup>
<tbody>
<tr>
<td class="org-left">A: 左上</td>
<td class="org-left">B: 右上</td>
</tr>

<tr>
<td class="org-left">C: 左下</td>
<td class="org-left">D: 右下</td>
</tr>
</tbody>
</table>

<p> 左上がAボタンで、そこから「Z」を描く形でBボタン、Cボタン、Dボタンとなります。<br  /> </p>


<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>

</div>
</div>

<div id="outline-container-org10b7c29" class="outline-2">
<h2 id="org10b7c29">AW-80の時計合わせについて</h2>
<div class="outline-text-2" id="text-org10b7c29">
<p> この機種はアナログ針とデジタル表示部分がありますが、計合わせはそれぞれ別個に行う必要があります。アナログ部分とデジタル部分は連動していません。<br  /> </p>
</div>
</div>

<div id="outline-container-org6f9c1a3" class="outline-2">
<h2 id="org6f9c1a3">デジタル部の時計合わせのやり方</h2>
<div class="outline-text-2" id="text-org6f9c1a3">
</div><div id="outline-container-org690e7dd" class="outline-3">
<h3 id="org690e7dd">秒合わせのやり方</h3>
<div class="outline-text-3" id="text-org690e7dd">
<ol class="org-ol">
<li>Aを1秒押下しデジタル部を点滅させる<br  /></li>
<li>Dボタンで秒合わせ (00/30秒)<br  /> （ボタンを押すと0-29秒の時は00秒に、30-59秒の時は30秒に戻る）<br  /></li>
<li>Aでセット完了<br  /></li>
</ol>
</div>
</div>


<div id="outline-container-org26a99c9" class="outline-3">
<h3 id="org26a99c9">サマータイムと年月日時分の合わせ方</h3>
<div class="outline-text-3" id="text-org26a99c9">
<ol class="org-ol">
<li>Aを1秒押下しデジタル部を点滅させる<br  /></li>
<li>Cボタンでサマータイム、年月日時分の項目が遷移<br  /> (「秒」 -&gt; 「サマータイム」 -&gt; 「時」 -&gt; 「分」 -&gt; 「年」 -&gt; 「月」 -&gt; 「日」の順)<br  /></li>
<li>各項目をDボタン（進む）、Bボタン（戻る）で合わせる<br  /></li>
<li>Aでセット完了<br  /></li>
</ol>
</div>
</div>
</div>

<div id="outline-container-org2dbc350" class="outline-2">
<h2 id="org2dbc350">アナログ針の時計合わせのやり方</h2>
<div class="outline-text-2" id="text-org2dbc350">
<ol class="org-ol">
<li>Cボタンを数回押してH-S(ハンドセット)モードにする<br  /> (「通常」 -&gt; 「TEL」 -&gt; 「W.T」 -&gt; 「AL1(AL2,SNZ,SIG)」 -&gt; 「TMR」 -&gt; 「STW」 -&gt; 「H-S」の順)<br  /></li>
<li>Aを1秒押下しデジタル部を点滅させる<br  /></li>
<li>Dで針の回転<br  /> ("D+B"の同時押しで自動回転可能。止める時はいずれかのボタンを押す)<br  /></li>
<li>Aでセット完了<br  /></li>
</ol>

<p> ※ モードの説明<br  /> </p>

<ul class="org-ul">
<li>TEL: テレメモ<br  /></li>
<li>W.T: ワールドタイム<br  /></li>
<li>AL1: アラーム1<br  /></li>
<li>AL2: アラーム2<br  /></li>
<li>SNZ: スヌーズ<br  /></li>
<li>SIG: 時報<br  /></li>
<li>TMR: タイマー<br  /></li>
<li>STW: ストップウォッチ<br  /></li>
<li>H-S: ハンドセット<br  /></li>
</ul>
</div>
</div>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Masaki Inaba</name>
					</author>

		<title type="html"><![CDATA[CASIO F-91W, F-105W の時計合わせの方法まとめ]]></title>
		<link rel="alternate" type="text/html" href="https://www.inabamasaki.com/archives/2607" />

		<id>https://www.inabamasaki.com/?p=2607</id>
		<updated>2018-09-20T08:27:49Z</updated>
		<published>2017-12-27T04:33:00Z</published>
		<category scheme="https://www.inabamasaki.com" term="Gadjet" /><category scheme="https://www.inabamasaki.com" term="CASIO" /><category scheme="https://www.inabamasaki.com" term="manual" /><category scheme="https://www.inabamasaki.com" term="tad" /><category scheme="https://www.inabamasaki.com" term="時計" />
		<summary type="html"><![CDATA[チープカシオの代名詞「F-91W」、「F-105W」の時計合わせの方法です。この機種は3つボタンがありますが、時計合わせは日々やるものではないのでやり方を忘れてしまうんですよね。なので簡単にまとめておきます。 ボタン位置 まず「F-91W」、「F-105W」のボタン位置と名称です。写真はF-105Wです。 B: 左上 &#xa0; C: 左下 A: 右下 右下がAボタンで、そこから反時計回りにBボタン、Cボタンとなります。右上にはボタン...]]></summary>

					<content type="html" xml:base="https://www.inabamasaki.com/archives/2607"><![CDATA[<p> チープカシオの代名詞「F-91W」、「F-105W」の時計合わせの方法です。この機種は3つボタンがありますが、時計合わせは日々やるものではないのでやり方を忘れてしまうんですよね。なので簡単にまとめておきます。<br  /> </p>




<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>


<div id="outline-container-org78e9aad" class="outline-2">
<h2 id="org78e9aad">ボタン位置</h2>
<div class="outline-text-2" id="text-org78e9aad">
<p> まず「F-91W」、「F-105W」のボタン位置と名称です。写真はF-105Wです。<br  /> </p>

<div class="figure"> <p><a href="https://www.inabamasaki.com/wp-content/uploads/F-105W.jpg"><img decoding="async" src="https://www.inabamasaki.com/wp-content/uploads/F-105W.jpg" alt="F-105W.jpg" /></a><br  /> </p> </div>

<table border="2" cellspacing="0" cellpadding="6">


<colgroup>
<col  class="org-left" />

<col  class="org-left" />
</colgroup>
<tbody>
<tr>
<td class="org-left">B: 左上</td>
<td class="org-left">&#xa0;</td>
</tr>

<tr>
<td class="org-left">C: 左下</td>
<td class="org-left">A: 右下</td>
</tr>
</tbody>
</table>

<p> 右下がAボタンで、そこから反時計回りにBボタン、Cボタンとなります。右上にはボタンはありません。<br  /> </p>
</div>
</div>

<div id="outline-container-orgc424538" class="outline-2">
<h2 id="orgc424538">秒合わせのやり方</h2>
<div class="outline-text-2" id="text-orgc424538">
<ol class="org-ol">
<li>Cボタンで時計セットモードにする<br  /> （押す毎に「通常」 -&gt; 「AL」 -&gt; 「ST」 -&gt; 「時計セットモード」と変化）<br  /></li>
<li>時報などに合わせてAを押す (00/30秒)<br  /> （Aボタンを押すと0-29秒の時は00秒に、30-59秒の時は30秒に戻る）<br  /></li>
<li>Cでセット完了<br  /></li>
</ol>
</div>
</div>

<div id="outline-container-orga7199a3" class="outline-2">
<h2 id="orga7199a3">年月日時分の合わせ方</h2>
<div class="outline-text-2" id="text-orga7199a3">
<ol class="org-ol">
<li>Cボタンで時計セットモードにする<br  /></li>
<li>Bボタンで変更項目を選択<br  /> （押す毎に「秒」 -&gt; 「時」 -&gt; 「分」 -&gt; 「月」 -&gt; 「日」 -&gt; 「曜日」）<br  /></li>
<li>Aボタンで各項目を合わせる<br  /> （押す毎に数字が1つずつ進む）<br  /></li>
<li>以下項目2 - 項目3の繰り返し<br  /> Bボタンで項目を選び、Aボタンで合わせる<br  /></li>
<li>最後にCでセット完了<br  /></li>
</ol>
</div>
</div>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Masaki Inaba</name>
					</author>

		<title type="html"><![CDATA[search-one-word.el アップデート。リピート移動をより便利に]]></title>
		<link rel="alternate" type="text/html" href="https://www.inabamasaki.com/archives/2580" />

		<id>https://www.inabamasaki.com/?p=2580</id>
		<updated>2018-09-30T06:31:40Z</updated>
		<published>2017-12-19T04:36:00Z</published>
		<category scheme="https://www.inabamasaki.com" term="Emacs" /><category scheme="https://www.inabamasaki.com" term="Tips" /><category scheme="https://www.inabamasaki.com" term="elisp" /><category scheme="https://www.inabamasaki.com" term="tad" />
		<summary type="html"><![CDATA[「Vimの一文字検索を実装してみる」として先日 search-one-word.el を公開しました。ただ実際使っていく中でいくつか不便に感じる部分があったのでアップデートしました。]]></summary>

					<content type="html" xml:base="https://www.inabamasaki.com/archives/2580"><![CDATA[<p> 「Vimの一文字検索を実装してみる」として先日 "search-one-word.el" を公開しました。ただ実際使っていく中でいくつか不便に感じる部分があったのでアップデートしました。<br  /> </p>




<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>


<div id="outline-container-org6f536a3" class="outline-2">
<h2 id="org6f536a3">以前のバージョン</h2>
<div class="outline-text-2" id="text-org6f536a3">
<p> 以前のバージョンは下記記事で公開しました。<br  /> </p>

<iframe style="width:100%;height:190px;max-height:250px;margin:10px 0px;display:block;" src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.inabamasaki.com%2Farchives%2F2538" class="embed-card embed-blogcard" height="190" width="500" frameborder="0" scrolling="no"></iframe>

<p> こちらもそれなりに便利だったのですがやや不便に感じる面がありました。例えば "search-forward-repeat-with-char" を "H-f" にキーバインドしたとして、文字"d"の位置にカーソルをリピート移動させようとすると、<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;H-f&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;d&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;H-f&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;H-f&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;H-f&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;H-b&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;H-f&quot;&lt;/span&gt;
</pre>

<p> といった具合に移動する必要がありました。移動先の文字をタイプした後、再度コマンド起動キーを押す必要があり指の移動に問題がありました。<br  /> </p>
</div>
</div>

<div id="outline-container-org1d48259" class="outline-2">
<h2 id="org1d48259">アップデート版(v2.0)概要</h2>
<div class="outline-text-2" id="text-org1d48259">
<p> というわけで下記のように移動できるように改変しました。今回のバージョンではコマンドを起動するとカーソル移動モードに入るようになっています。<br  /> </p>

<p> 先ほどと同じように "d" の位置にカーソルをリピート移動させる場合<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;H-f&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;d&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;d&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;d&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;d&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;d&quot;&lt;/span&gt; .....
</pre>

<p> この操作で可能になります。<br  /> </p>

<p> また最初に "d" の位置に移動させていたけれどやはり "k" の位置に移動させたいといった場合<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;H-f&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;d&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;d&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;k&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;k&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;k&quot;&lt;/span&gt; .....
</pre>

<p> こういった感じで途中で押すキーを変えれば良いだけです。非常に簡単です。<br  /> </p>

<p> また行き過ぎて戻りたいといった場合は "C-s" (forward) と "C-r" (backward) が使えます。 具体的にはこんな感じで。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;H-f&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;d&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;d&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;C-r&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;C-r&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;C-s&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;C-r&quot;&lt;/span&gt; .....
</pre>

<p> カーソル移動モードを抜けるには "C-g (or C-q, ESC)" をタイプします。こんな感じでカーソル移動がより便利になりました。<br  /> </p>


<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>

</div>
</div>

<div id="outline-container-orgdbbbe77" class="outline-2">
<h2 id="orgdbbbe77">ソース</h2>
<div class="outline-text-2" id="text-orgdbbbe77">
<p> ソースはこんな感じ。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;require&lt;/span&gt; '&lt;span style=&quot;color: #99CC99;&quot;&gt;cl-lib&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;defvar&lt;/span&gt; &lt;span style=&quot;color: #c5c8c6; background-color: #1d1f21;&quot;&gt;last-search-char&lt;/span&gt; nil&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;

&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;defun&lt;/span&gt; &lt;span style=&quot;color: #FFD2A7;&quot;&gt;direct-search-forward-char&lt;/span&gt; &lt;span style=&quot;color: #93a8c6;&quot;&gt;()&lt;/span&gt;
  &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;interactive&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
  &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;cl-loop&lt;/span&gt;
   &lt;span style=&quot;color: #b0b1a3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;let&lt;/span&gt; &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;char &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;read-key &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;Move to Char: &quot;&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;
     &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;cond&lt;/span&gt; &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;member &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt; '&lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;&amp;#17;&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;&amp;#7;&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;&amp;#27;&quot;&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;cl-return&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
           &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;string= &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;&amp;#19;&quot;&lt;/span&gt; &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; last-search-char
                &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;progn&lt;/span&gt;
                  &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;when&lt;/span&gt; &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;char-equal &lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;char-after &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;point&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt; last-search-char&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;
                    &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;forward-char&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;search-forward &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;string last-search-char&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;backward-char&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;
              &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;progn&lt;/span&gt;
                &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;let&lt;/span&gt; &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;char &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;read-key &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;Move to Char: &quot;&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;char-equal &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;char-after &lt;span style=&quot;color: #b0b1a3;&quot;&gt;(&lt;/span&gt;point&lt;span style=&quot;color: #b0b1a3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt; char&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;forward-char&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;search-forward &lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;backward-char&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; last-search-char char&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
           &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;string= &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;&amp;#18;&quot;&lt;/span&gt; &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; last-search-char
                &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;search-backward &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;string last-search-char&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;
              &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;progn&lt;/span&gt;
                &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;let&lt;/span&gt; &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;char &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;read-key &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;Move backward to Char: &quot;&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;search-backward &lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; last-search-char char&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
           &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;t
            &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;when&lt;/span&gt; &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;char-equal &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;char-after &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;point&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt; char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;forward-char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;search-forward &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;backward-char&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; last-search-char char&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
           &lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b1a3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;

&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;defun&lt;/span&gt; &lt;span style=&quot;color: #FFD2A7;&quot;&gt;direct-search-backward-char&lt;/span&gt; &lt;span style=&quot;color: #93a8c6;&quot;&gt;()&lt;/span&gt;
  &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;interactive&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
  &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;cl-loop&lt;/span&gt;
   &lt;span style=&quot;color: #b0b1a3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;let&lt;/span&gt; &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;char &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;read-key &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;Move to Char: &quot;&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;
     &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;cond&lt;/span&gt; &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;member &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt; '&lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;&amp;#17;&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;&amp;#7;&quot;&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;&amp;#27;&quot;&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;cl-return&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
           &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;string= &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;&amp;#19;&quot;&lt;/span&gt; &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; last-search-char
                &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;progn&lt;/span&gt;
                  &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;when&lt;/span&gt; &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;char-equal &lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;char-after &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;point&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt; last-search-char&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;
                    &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;forward-char&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;search-forward &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;string last-search-char&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;backward-char&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;
              &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;progn&lt;/span&gt;
                &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;let&lt;/span&gt; &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;char &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;read-key &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;Move to Char: &quot;&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;char-equal &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;char-after &lt;span style=&quot;color: #b0b1a3;&quot;&gt;(&lt;/span&gt;point&lt;span style=&quot;color: #b0b1a3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt; char&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;forward-char&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;search-forward &lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;backward-char&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; last-search-char char&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
           &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;string= &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;&amp;#18;&quot;&lt;/span&gt; &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; last-search-char
                &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;search-backward &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;string last-search-char&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;
              &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;progn&lt;/span&gt;
                &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;let&lt;/span&gt; &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;char &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;read-key &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;Move backward to Char: &quot;&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;search-backward &lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;
                  &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; last-search-char char&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
           &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;t
            &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;search-backward &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; last-search-char char&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
           &lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b1a3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;
</pre>
</div>
</div>

<div id="outline-container-orgdb52492" class="outline-2">
<h2 id="orgdb52492">ダウンロード</h2>
<div class="outline-text-2" id="text-orgdb52492">
<p> 下記からソースをダウンロードしてload-pathの通った所に置いて (require 'search-one-word) としても利用可能です。<br  /> <a href="https://www.inabamasaki.com/arc/search-one-word.el">https://www.inabamasaki.com/arc/search-one-word.el</a><br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
# シェルで
$ cd ~/emacs.d/elisp
$ wget https://www.inabamasaki.com/arc/search-one-word.el
;; Emacs
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;require&lt;/span&gt; '&lt;span style=&quot;color: #99CC99;&quot;&gt;search-one-word&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;</pre>
</div>
</div>

<div id="outline-container-org6d564ba" class="outline-2">
<h2 id="org6d564ba">使い方まとめ</h2>
<div class="outline-text-2" id="text-org6d564ba">
<p> M-x direct-search-forward-char もしくは M-x direct-search-backward-char で起動し minibufferの"Move to Char: "プロンプトに移動したい文字をタイプ。<br  /> </p>

<p> リピートは文字を繰り返しタイプするか、"C-s"、"C-r" で移動。終わる時は"C-g"、または"C-q"か"ESC"。<br  /> </p>

<p> キーバインドはお好みで。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;bind-keys&lt;/span&gt; &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;C-{&quot;&lt;/span&gt; . direct-search-backward-char&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
           &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;C-}&quot;&lt;/span&gt; . direct-search-forward-char&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;
</pre>
</div>
</div>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Masaki Inaba</name>
					</author>

		<title type="html"><![CDATA[Emacsやnkfを使ってFTPのアスキーモードを再現してみる（バイナリモード -&gt; アスキーモードへのファイル変換）]]></title>
		<link rel="alternate" type="text/html" href="https://www.inabamasaki.com/archives/2574" />

		<id>https://www.inabamasaki.com/?p=2574</id>
		<updated>2018-09-30T06:34:58Z</updated>
		<published>2017-12-18T07:33:00Z</published>
		<category scheme="https://www.inabamasaki.com" term="Emacs" /><category scheme="https://www.inabamasaki.com" term="Tips" /><category scheme="https://www.inabamasaki.com" term="nkf" /><category scheme="https://www.inabamasaki.com" term="shell" /><category scheme="https://www.inabamasaki.com" term="tad" />
		<summary type="html"><![CDATA[「index.cgiを実行っと。あれ？500 Internal Server Errorだ...」 FTPにはBinary modeとASCII modeがあります。この2つには微妙な違いがあって、またその違いによりCGIで冒頭の「500 Internal Server Error」が発生する原因になります。 この記事ではその辺の詳細解説と、Emacsでアスキーモードを利用する方法、またシェルのコマンドレベルでアスキーモードを利用する方...]]></summary>

					<content type="html" xml:base="https://www.inabamasaki.com/archives/2574"><![CDATA[<p> 「index.cgiを実行っと。あれ？500 Internal Server Errorだ...」<br  /> </p>

<p> FTPにはBinary modeとASCII modeがあります。この2つには微妙な違いがあって、またその違いによりCGIで冒頭の「500 Internal Server Error」が発生する原因になります。<br  /> </p>

<p> この記事ではその辺の詳細解説と、Emacsでアスキーモードを利用する方法、またシェルのコマンドレベルでアスキーモードを利用する方法を解説します。正確にはバイナリモードで転送してしまってエラーが出るファイルをアスキーモードの形に変換するという話です。それでは本論に入ります。<br  /> </p>




<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>


<div id="outline-container-orgb9cac49" class="outline-2">
<h2 id="orgb9cac49">FTPはバイナリモードで行うべき？</h2>
<div class="outline-text-2" id="text-orgb9cac49">
<p> エンジニアの人は「FTPはバイナリモードで行っておけば問題ない」的な話しを先輩から聞いたことがあるかも知れません。そしてこれは概ね正しいのですが稀に問題が置きます。<br  /> </p>

<p> 昨今のFTPソフトは自動判定モードがありますのでそれを使った場合は問題ないかとは思いますが、あえてバイナリーモードを選んだり、FTPコマンドを使った場合などに問題が起こるケースがあります。それ以外にもcgiのzipファイルをローカルで解凍してからFTPで転送するのではなく、サーバーに転送してからzipを解凍した場合にも問題が発生する場合があります。<br  /> </p>
</div>
</div>

<div id="outline-container-org217bb9e" class="outline-2">
<h2 id="org217bb9e">"500 Internal Server Error"</h2>
<div class="outline-text-2" id="text-org217bb9e">
<p> この問題というのはCGIの場合に起こります。htmlやcss、js、phpなどでは起こりません。起こるのは改行コードを解釈する場合です。<br  /> </p>
</div>
</div>

<div id="outline-container-org1992ac1" class="outline-2">
<h2 id="org1992ac1">FTPのバイナリモードとアスキーモードの違い</h2>
<div class="outline-text-2" id="text-org1992ac1">
<p> ここでFTPのバイナリモードとアスキーモードの違いを見ておきます。「バイナリモードはファイルを何も変更せずに転送、アスキーモードはサーバー側の環境に文字コードや改行コードを合わせて転送」とざっくり思っている方もいるかもしれませんがこれは違います。<br  /> </p>

<p> 実際には<br  /> </p>

<table border="2" cellspacing="0" cellpadding="6">


<colgroup>
<col  class="org-left" />

<col  class="org-left" />

<col  class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-left">文字コード</th>
<th scope="col" class="org-left">改行コード</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">バイナリモード</td>
<td class="org-left">そのまま</td>
<td class="org-left">そのまま</td>
</tr>

<tr>
<td class="org-left">アスキーモード</td>
<td class="org-left">そのまま</td>
<td class="org-left">転送先に合わせる</td>
</tr>
</tbody>
</table>

<p> こういった形です。勘違いしやすいですが「文字コードは変更されません」。変更されるのは「改行コード」のみです。<br  /> </p>
</div>

<div id="outline-container-org21801e7" class="outline-3">
<h3 id="org21801e7">WindowからLinuxサーバーへの転送</h3>
<div class="outline-text-3" id="text-org21801e7">
<p> 具体例で見てみます。Windowsで作ったファイルをLinuxサーバーに転送するケースです。<br  /> </p>

<p> この場合まずWindowsで作ったテキストファイルの文字コードは「shift_jis」で、改行コードは「CRLF」です。このファイルをFTPのアスキーモードでLinuxサーバーに転送すると文字コードは「shift_jis」のままで改行コードのみ「LF」に変更されます。<br  /> </p>

<p> これを表で表すと<br  /> </p>

<table border="2" cellspacing="0" cellpadding="6">


<colgroup>
<col  class="org-left" />

<col  class="org-left" />

<col  class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-left">文字コード</th>
<th scope="col" class="org-left">改行コード</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Windows</td>
<td class="org-left">shift_jis</td>
<td class="org-left">CRLF</td>
</tr>
</tbody>
</table>

<p> --&gt; FTPのアスキーモードでLinuxサーバーに転送<br  /> </p>

<table border="2" cellspacing="0" cellpadding="6">


<colgroup>
<col  class="org-left" />

<col  class="org-left" />

<col  class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-left">文字コード</th>
<th scope="col" class="org-left">改行コード</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Linuxサーバ</td>
<td class="org-left">shift_jis</td>
<td class="org-left">LF</td>
</tr>
</tbody>
</table>

<p> となります。<br  /> </p>
</div>
</div>

<div id="outline-container-org4725d76" class="outline-3">
<h3 id="org4725d76">MacからLinuxサーバーへの転送</h3>
<div class="outline-text-3" id="text-org4725d76">
<p> 同様にMacで作成したファイルのケースも見てみます。<br  /> </p>

<table border="2" cellspacing="0" cellpadding="6">


<colgroup>
<col  class="org-left" />

<col  class="org-left" />

<col  class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-left">文字コード</th>
<th scope="col" class="org-left">改行コード</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Mac</td>
<td class="org-left">utf-8</td>
<td class="org-left">LF</td>
</tr>
</tbody>
</table>

<p> --&gt; FTPのアスキーモードでLinuxサーバーに転送<br  /> </p>

<table border="2" cellspacing="0" cellpadding="6">


<colgroup>
<col  class="org-left" />

<col  class="org-left" />

<col  class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-left">文字コード</th>
<th scope="col" class="org-left">改行コード</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Linuxサーバ</td>
<td class="org-left">utf-8</td>
<td class="org-left">LF</td>
</tr>
</tbody>
</table>

<p> となります。<br  /> </p>

<p> 現在のmacOSは、OSX時代からUnixベースになりました。なので基本的な部分ではLinuxと似ています。なおOSX以前のMacの場合は改行コードに「CR」を使うなど現在から見ると少し変則的です。<br  /> </p>


<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>

</div>
</div>
</div>

<div id="outline-container-org98a2304" class="outline-2">
<h2 id="org98a2304">改行コードをCGIで解釈できないと</h2>
<div class="outline-text-2" id="text-org98a2304">
<p> 改行コードをCGIで解釈できない場合に「構文エラーとなり "500 Internal Server Error"」が発生します。そしてLinuxサーバーでは文字コードは"utf-8"か"euc-jp"の場合がありますが、改行コードは「LF」です。<br  /> </p>

<p> ですのでより具体的な解説としては「CRLF」の改行コードを持つCGIファイルをLinuxサーバーで実行させた時にエラーが発生します。<br  /> </p>
</div>
</div>

<div id="outline-container-org9ab6f25" class="outline-2">
<h2 id="org9ab6f25">もうひとつのCGIの文字コードの問題</h2>
<div class="outline-text-2" id="text-org9ab6f25">
<p> 改行コードだけでなく文字コードの問題もあります。<br  /> </p>

<p> もしnkf等を使って下記のようにファイルを変換してしまうと<br  /> </p>

<table border="2" cellspacing="0" cellpadding="6">


<colgroup>
<col  class="org-left" />

<col  class="org-left" />

<col  class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-left">文字コード</th>
<th scope="col" class="org-left">改行コード</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">元ファイル</td>
<td class="org-left">shift_jis</td>
<td class="org-left">CRLF</td>
</tr>

<tr>
<td class="org-left">変換したファイル</td>
<td class="org-left">utf-8</td>
<td class="org-left">LF</td>
</tr>
</tbody>
</table>

<p> エラーにはならないものの「文字化け」が発生したりします。これは元ファイルが"shift_jis"だった為、下記の様にhtmlレベルで文字コードにshift_jisが指定してあるだろうからです。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #7C7C7C;&quot;&gt;&amp;lt;!-- html5  --&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #cdc9c9;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #8b8989;&quot;&gt;meta&lt;/span&gt; &lt;span style=&quot;color: #cdc9c9;&quot;&gt;charset&lt;/span&gt;&lt;span style=&quot;color: #cdc9c9;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;shift_jis&quot;&lt;/span&gt; &lt;span style=&quot;color: #cdc9c9;&quot;&gt;/&amp;gt;&lt;/span&gt;

&lt;span style=&quot;color: #7C7C7C;&quot;&gt;&amp;lt;!-- html --&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #cdc9c9;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #8b8989;&quot;&gt;meta&lt;/span&gt; &lt;span style=&quot;color: #cdc9c9;&quot;&gt;http-equiv&lt;/span&gt;&lt;span style=&quot;color: #cdc9c9;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;Content-Type&quot;&lt;/span&gt; &lt;span style=&quot;color: #cdc9c9;&quot;&gt;content&lt;/span&gt;&lt;span style=&quot;color: #cdc9c9;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;text/html; charset=shift_jis&quot;&lt;/span&gt;&lt;span style=&quot;color: #cdc9c9;&quot;&gt;/&amp;gt;&lt;/span&gt;
</pre>

<p> ですので改行コードだけでなく文字コードまで変更してしまうと問題が起きることがあります。この辺はCGIの作者がどこまで考慮しているかにも依りますね。<br  /> </p>
</div>
</div>

<div id="outline-container-orgd2f391b" class="outline-2">
<h2 id="orgd2f391b">シェルで改行コードの確認</h2>
<div class="outline-text-2" id="text-orgd2f391b">
<p> 改行コードを確認する方法を解説します。いくつか方法があるかと思いますが "od" コマンドが手軽です。実行結果の末尾が "\r\n" であれば改行コードは「CRLF」、"\n" であれば「LF」です。下記に例を載せておきます。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% od -c ftp-ascii-test-sjis-CRLF.cgi
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;0000000    #   !   /   u   s   r   /   l   o   c   a   l   /   b   i   n
0000020    /   p   e   r   l  \r  \n  \r  \n   p   r   i   n   t       &quot;
0000040    C   o   n   t   e   n   t   -   t   y   p   e   :       t   e
0000060    x   t   /   h   t   m   l   \   n   &quot;   ;  \r  \n   p   r   i
0000100    n   t       &quot;   \   n   &quot;   ;  \r  \n   p   r   i   n   t
0000120    &quot;   &amp;lt;   h   t   m   l   &amp;gt;   \   n   &quot;   ;  \r  \n   p   r   i
0000140    n   t       &quot;   &amp;lt;   h   e   a   d   &amp;gt;   \   n   &quot;   ;  \r  \n
0000160    p   r   i   n   t       &quot;   &amp;lt;   m   e   t   a       c   h   a
0000200    r   s   e   t   =   \   &quot;   s   h   i   f   t   _   j   i   s
0000220    \   &quot;   &amp;gt;   \   n   &quot;   ;  \r  \n   p   r   i   n   t       &quot;
0000240    &amp;lt;   t   i   t   l   e   &amp;gt; 203   e 203   X 203   g   &amp;lt;   /   t
0000260    i   t   l   e   &amp;gt;   \   n   &quot;   ;  \r  \n   p   r   i   n   t
0000300        &quot;   &amp;lt;   /   h   e   a   d   &amp;gt;   \   n   &quot;   ;  \r  \n   p
0000320    r   i   n   t       &quot;   &amp;lt;   b   o   d   y   &amp;gt;   \   n   &quot;   ;
0000340   \r  \n   p   r   i   n   t       &quot; 202 261 202 352 202 315   C
0000360    G   I 202    &amp;#771;  **   e 203   X 203   g 202   &amp;#322;  ** 267 201   B
0000400    \   n   &quot;   ;  \r  \n   p   r   i   n   t       &quot;   &amp;lt;   /   b
0000420    o   d   y   &amp;gt;   \   n   &quot;   ;  \r  \n   p   r   i   n   t
0000440    &quot;   &amp;lt;   /   h   t   m   l   &amp;gt;   \   n   &quot;   ;  \r  \n  \r  \n
0000460&lt;/span&gt;

% od -c ftp-ascii-test-utf8-LF.cgi
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;0000000    #   !   /   u   s   r   /   l   o   c   a   l   /   b   i   n
0000020    /   p   e   r   l  \n  \n   p   r   i   n   t       &quot;   C   o
0000040    n   t   e   n   t   -   t   y   p   e   :       t   e   x   t
0000060    /   h   t   m   l   \   n   &quot;   ;  \n   p   r   i   n   t
0000100    &quot;   \   n   &quot;   ;  \n   p   r   i   n   t       &quot;   &amp;lt;   h   t
0000120    m   l   &amp;gt;   \   n   &quot;   ;  \n   p   r   i   n   t       &quot;   &amp;lt;
0000140    h   e   a   d   &amp;gt;   \   n   &quot;   ;  \n   p   r   i   n   t
0000160    &quot;   &amp;lt;   m   e   t   a       c   h   a   r   s   e   t   =   \
0000200    &quot;   U   T   F   -   8   \   &quot;   &amp;gt;   \   n   &quot;   ;  \n   p   r
0000220    i   n   t       &quot;   &amp;lt;   t   i   t   l   e   &amp;gt;  &amp;#12486;  **  **  &amp;#12473;
0000240   **  **  &amp;#12488;  **  **   &amp;lt;   /   t   i   t   l   e   &amp;gt;   \   n   &quot;
0000260    ;  \n   p   r   i   n   t       &quot;   &amp;lt;   /   h   e   a   d   &amp;gt;
0000300    \   n   &quot;   ;  \n   p   r   i   n   t       &quot;   &amp;lt;   b   o   d
0000320    y   &amp;gt;   \   n   &quot;   ;  \n   p   r   i   n   t       &quot;  &amp;#12371;  **
0000340   **  &amp;#12428;  **  **  &amp;#12399;  **  **   C   G   I  &amp;#12398;  **  **  &amp;#12486;  **  **
0000360   &amp;#12473;  **  **  &amp;#12488;  **  **  &amp;#12391;  **  **  &amp;#12377;  **  **  &amp;#12290;  **  **   \
0000400    n   &quot;   ;  \n   p   r   i   n   t       &quot;   &amp;lt;   /   b   o   d
0000420    y   &amp;gt;   \   n   &quot;   ;  \n   p   r   i   n   t       &quot;   &amp;lt;   /
0000440    h   t   m   l   &amp;gt;   \   n   &quot;   ;  \n  \n
0000453&lt;/span&gt;
</pre>
</div>
</div>

<div id="outline-container-org977aa1b" class="outline-2">
<h2 id="org977aa1b">シェルからnkfで変換</h2>
<div class="outline-text-2" id="text-org977aa1b">
<p> 次にFTPのバイナリモードで転送してしまったファイルを変換する方法を解説します。ASCIIモードで再度転送しなくても変換することが可能です。変換にはnkfを利用します。<br  /> </p>

<p> 文字コードは「shift_jis」で改行コードが「CRLF」のファイルを、文字コードを変えずに改行コードのみ「LF」にしてみます。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% nkf -Lu --overwrite file

or

% nkf -sLu --overwrite file
</pre>

<p> こんな感じで変換できます。パラメーターを解説すると、-s が「shift_jisで出力」、-Lu が「改行コードをUnix形式(LF)で出力」、--overwrite が「出力結果でファイルを上書き」です。<br  /> </p>

<p> findと組み合わせれば一括置換も可能です。例えばこんな感じです。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% find . -iregex &quot;.+\.cgi&quot; -exec nkf -sLu --overwrite {} \;

or

% find . -iregex &quot;.+\.cgi&quot; | xargs nkf -sLu --overwrite
</pre>


<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>

</div>
</div>

<div id="outline-container-org0b7fe88" class="outline-2">
<h2 id="org0b7fe88">Emacsで改行コードの確認</h2>
<div class="outline-text-2" id="text-org0b7fe88">
<p> 同様の事をEmacsでもやってみます。<br  /> </p>

<p> まず改行コードの確認は<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
M-x describe-coding-system (&amp;lt;f1&amp;gt; C) RET

or

M-x describe-current-coding-system
</pre>

<p> で行えます。<br  /> </p>

<p> 例えば文字コードが「シフトJIS」で改行コードが「CRLF」というWindowsで一般的なファイルであればこの様に表示されます。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
Coding system for saving this buffer:
  S -- japanese-shift-jis-dos (alias: shift_jis-dos sjis-dos)
</pre>

<p> 「japanese-shift-jis-dos」 の "japanese-shift-jis" 部分が文字コード、"dos"の部分が改行コードです。"dos"は「CRLF」を表します。<br  /> </p>

<p> また文字コードが「utf-8」で改行コードが「LF」というLinuxやMacで一般的なファイルであればこの様に表示されます。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
Coding system for saving this buffer:
  U -- utf-8-unix (alias: mule-utf-8-unix utf8-unix UTF8-unix UTF-8-unix)
</pre>

<p> 同様に「utf-8-unix」の "utf-8" 部分が文字コード、"unix" 部分が改行コードです。"unix"は「LF」を表します。<br  /> </p>
</div>
</div>


<div id="outline-container-org053da4a" class="outline-2">
<h2 id="org053da4a">Emacsで改行コードのみLFに変換</h2>
<div class="outline-text-2" id="text-org053da4a">
<p> Emacsで改行コードのみ変更するには下記のように操作します。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
C-x RET f (M-x set-buffer-file-coding-system) unix
</pre>

<p> 変更したいファイルを開き、"C-x RET f" とタイプし "unix" とだけ入力します。これで文字コードはそのままで改行コードのみ変更されます。<br  /> </p>

<p> ちなみに文字コードも変更したい時は同様の操作で<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
C-x RET f (M-x set-buffer-file-coding-system) utf-8-unix
</pre>

<p> といった感じで指定します。<br  /> </p>
</div>
</div>

<div id="outline-container-orgd520d19" class="outline-2">
<h2 id="orgd520d19">[参考] EmacsでFTP</h2>
<div class="outline-text-2" id="text-orgd520d19">
</div><div id="outline-container-org5788031" class="outline-3">
<h3 id="org5788031">trampを使ったFTPの利用</h3>
<div class="outline-text-3" id="text-org5788031">
<p> ちなみにEmacsではtrampを使えばFTPも利用できます。ファイルを転送したり、サーバーにあるファイルを直接編集したりといった事が可能です。trampはそれなりに細かい設定も可能ですが今回はFTP部分を抜粋してみます。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;;&lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;------------------------------------------------------------------------
&lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;tramp&amp;#12398;&amp;#35373;&amp;#23450;
&lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;------------------------------------------------------------------------
&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;require&lt;/span&gt; '&lt;span style=&quot;color: #99CC99;&quot;&gt;tramp&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;

&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;FTP&amp;#12399;Passive&amp;#12514;&amp;#12540;&amp;#12489;&amp;#12434;&amp;#21033;&amp;#29992;&amp;#12377;&amp;#12427;
&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; ange-ftp-try-passive-mode t&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;

&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;FTP&amp;#12398;binary/ascii&amp;#12514;&amp;#12540;&amp;#12489;
&lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;binary&amp;#36578;&amp;#36865;&amp;#12375;&amp;#12383;&amp;#12356;&amp;#12501;&amp;#12449;&amp;#12452;&amp;#12523;&amp;#12434;&amp;#27491;&amp;#35215;&amp;#34920;&amp;#29694;&amp;#12391;&amp;#25351;&amp;#23450;
&lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;&amp;#12381;&amp;#12398;&amp;#20182;&amp;#12399;&amp;#12450;&amp;#12473;&amp;#12461;&amp;#12540;&amp;#12514;&amp;#12540;&amp;#12489;&amp;#12391;&amp;#36578;&amp;#36865;&amp;#12373;&amp;#12428;&amp;#12427;
&lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;default: &quot;&quot; (ver24.1&amp;#12363;&amp;#12425;&amp;#22793;&amp;#26356;&amp;#12373;&amp;#12428;&amp;#12383;)
&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; ange-ftp-binary-file-name-regexp &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;^.*\\.\\(jpe?g\\|gif\\|png\\)$&quot;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;

&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;&amp;#12456;&amp;#12521;&amp;#12540;&amp;#12364;&amp;#20986;&amp;#12427;&amp;#26178;&amp;#12399;&amp;#25351;&amp;#23450;&amp;#12434;&amp;#22793;&amp;#12360;&amp;#12427;
&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; dired-listing-switches &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;-alFh&quot;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;
</pre>

<p> trampは裏でange-ftpを利用しているので、ange-ftpのパラメーターを変更することで「Binary/ASCII mode」の指定や「Active/Passive mode」の切り替えが可能です。<br  /> </p>

<p> 接続時にユーザー名とパスワードを毎回打っても可能ですが、それはあまり現実的ではない為認証情報を ~/.netrc で管理します。こんな感じで定義します。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
machine         example.com
login           ftpusername
password        ftppass
</pre>

<p> なおhostsファイルを使えばmachine名に実際のホスト名ではなく任意の名称を使うことが可能です。<br  /> </p>

<p> 上記を設定した状態で "C-x C-f" (M-x find-file) 等を実行してミニバッファに下記の様にホスト名とサーバー上のファイル名やディレクトリ名を入れればOKです。EmacsからFTPでサーバー上のファイルを直接編集できます。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
/ftp:example.com:/public_html/index.cgi
</pre>

<p> また同様の指定でdiredを使ったFTPでのファイル転送も可能です。<br  /> </p>
</div>
</div>


<div id="outline-container-orgec24791" class="outline-3">
<h3 id="orgec24791">diredを使ってFTPクライアント化</h3>
<div class="outline-text-3" id="text-orgec24791">
<p> ちなみにEmacsをよりFTPクライアントらしくする事も可能です。下記のパラメーターを追加します。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; dired-dwim-target t&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;
</pre>

<p> 設定後 "C-x 2" (M-x split-window-below) や "C-x 3" (M-x split-window-right) などでウインドウを分割します。そしてそれぞれのウインドウで"M-x find-dired"などで「PCのディレクトリ」と「サーバのディレクトリ」を開きます。そうすると後は通常のdiredの操作でFTPクライアントの様にファイル転送が行えます。<br  /> </p>

<div class="figure"> <p><a href="https://www.inabamasaki.com/wp-content/uploads/emacs-dired-ftp.gif"><img decoding="async" src="https://www.inabamasaki.com/wp-content/uploads/emacs-dired-ftp.gif" alt="emacs-dired-ftp.gif" /></a><br  /> </p> </div>

<p> 例えばPC側のウインドウでファイルやディレクトリを選んで "C" を押して実行すれば、サーバー側にファイルやディレクトリを丸ごと転送可能です。ほとんどFTPクライアントライクな使い方が可能です。<br  /> </p>

<p>なおtrampではftp以外にも、sshやscp、rsyncなども使えます。これはサーバー側のウインドウをどのメソッドで開いたかに依存します。例えば "C-x C-f /ssh:example.com:/..." とすればsshといった感じで。</p>
</div>
</div>
</div>

<div id="outline-container-org1787837" class="outline-2">
<h2 id="org1787837">一言</h2>
<div class="outline-text-2" id="text-org1787837">
<p> 仕組みを理解すれば予想外のエラーにもスムーズに対応できます。それでは長くなりましたがこの辺で。<br  /> </p>
</div>
</div>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Masaki Inaba</name>
					</author>

		<title type="html"><![CDATA[EmacsにVimの1文字移動コマンドの実装してみる（Emacsトラノマキ版にundo機能などを追加）]]></title>
		<link rel="alternate" type="text/html" href="https://www.inabamasaki.com/archives/2538" />

		<id>https://www.inabamasaki.com/?p=2538</id>
		<updated>2017-12-19T05:23:47Z</updated>
		<published>2017-12-09T06:49:00Z</published>
		<category scheme="https://www.inabamasaki.com" term="Emacs" /><category scheme="https://www.inabamasaki.com" term="Tips" /><category scheme="https://www.inabamasaki.com" term="tad" />
		<summary type="html"><![CDATA[Vimにはf{char}という便利なコマンドがあるとの事で、fの後に任意の文字を打つとそこまでカーソルが移動する。[Enter]キーを押す必要も無いので確かに便利。いわゆる一文字検索。これをEmacsでより便利に実装してみるという話。元ネタにないundo機能などを実装。]]></summary>

					<content type="html" xml:base="https://www.inabamasaki.com/archives/2538"><![CDATA[<p> Vimにはf{char}という便利なコマンドがあるとの事で、fの後に任意の文字を打つとそこまでカーソルが移動する。[Enter]キーを押す必要も無いので確かに便利。いわゆる一文字検索。これをEmacsでより便利に実装してみるという話。<br  /> </p>



<div id="outline-container-orga610256" class="outline-2">
<h2 id="orga610256">元ネタ</h2>
<div class="outline-text-2" id="text-orga610256">
<p> 元ネタはSoftWare Design誌掲載の下記記事。<br  /> </p>

<iframe loading="lazy" style="width:100%;height:190px;max-height:250px;margin:10px 0px;display:block;" src="https://hatenablog-parts.com/embed?url=http%3A%2F%2Fdev.ariel-networks.com%2Fwp%2Fdocuments%2Faritcles%2Femacs%2Fpart16" class="embed-card embed-blogcard" height="190" width="500" frameborder="0" scrolling="no"></iframe>
</div>
</div>

<div id="outline-container-orge47f8d1" class="outline-2">
<h2 id="orge47f8d1">Vimの動作確認</h2>
<div class="outline-text-2" id="text-orge47f8d1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">


<colgroup>
<col  class="org-left" />

<col  class="org-left" />
</colgroup>
<tbody>
<tr>
<td class="org-left">f{char}</td>
<td class="org-left">指定文字までカーソルを前方移動</td>
</tr>

<tr>
<td class="org-left">F{char}</td>
<td class="org-left">指定文字までカーソルを後方移動</td>
</tr>

<tr>
<td class="org-left">;</td>
<td class="org-left">一文字検索を繰り返し (検索のリピート)</td>
</tr>

<tr>
<td class="org-left">,</td>
<td class="org-left">一文字検索を逆に繰り返し (検索のundo)</td>
</tr>
</tbody>
</table>

<p> ※ 実践Vimによるとt{char},T{char}もある。<br  /> </p>

<p> なお実際に試してみるとこの動きは行をまたげない模様。なので現在の行でのカーソル移動である。この辺は設定で回避できるのかもしれないけれど調べていない。<br  /> </p>
</div>
</div>

<div id="outline-container-org10bb665" class="outline-2">
<h2 id="org10bb665">Emacsで実装してみる</h2>
<div class="outline-text-2" id="text-org10bb665">
</div><div id="outline-container-org0b44de4" class="outline-3">
<h3 id="org0b44de4">現在行だけの縛りは無くして、現在のバッファ上を自由に動けるようにする。</h3>
<div class="outline-text-3" id="text-org0b44de4">
<p> これについては元ネタで既に実装済。<br  /> </p>
</div>
</div>


<div id="outline-container-org310b5a4" class="outline-3">
<h3 id="org310b5a4">リピート系の実装</h3>
<div class="outline-text-3" id="text-org310b5a4">
<p> 実践Vimによるといきすぎる事がよくあるとの事なので、undo的な動作も実装したい。<br  /> </p>


<blockquote>f{char}コマンドと;コマンドはとても強力な組み合わせであり(snip)。ただし、カーソルがいきつく先がどこかがハッキリしない。結果、;キーをとにかく連打してしまいやすい。そして、いきすぎてしまう。</blockquote>
</div>
</div>

<div id="outline-container-orgba902a2" class="outline-3">
<h3 id="orgba902a2">キーの省略</h3>
<div class="outline-text-3" id="text-orgba902a2">
<p> 例えばキーバインドは何でも構わないけれど前方一文字検索に "H-f"、後方一文字検索に "H-b"、一文字検索リピートに "H-]"、一文字検索undoに "H-[" と割り当てると4つのキーバインドの定義が必要。これは勿体無いしやや面倒。<br  /> </p>

<p> そこで前方一文字検索に "H-f"、後方一文字検索に "H-b"。加えて一文字検索リピートにも "H-f"、一文字検索undoにも "H-b" という形で検索とリピートのキーを同一にしたい。こうすれば2つのキーバインドで済むし、指の移動も少なくなりそう。<br  /> </p>


<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>

</div>
</div>
</div>

<div id="outline-container-orgba7e824" class="outline-2">
<h2 id="orgba7e824">実際の実装</h2>
<div class="outline-text-2" id="text-orgba7e824">
<p> というわけで元ネタをベースにこんな感じで実装してみました。検索とリピートは同じキーで利用可能です。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;------------------------------------------------------------------------
&lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;&amp;#19968;&amp;#25991;&amp;#23383;&amp;#26908;&amp;#32034;&amp;#12398;&amp;#35373;&amp;#23450;
&lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;http://dev.ariel-networks.com/wp/documents/aritcles/emacs/part16
&lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;------------------------------------------------------------------------
&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;defvar&lt;/span&gt; &lt;span style=&quot;color: #c5c8c6; background-color: #1d1f21;&quot;&gt;last-search-char&lt;/span&gt; nil&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; search-clear-idle-time 1&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;

&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;update:
&lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;20171208: ignore-case&amp;#23550;&amp;#24540;
&lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;;           &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;search-forward/backward&amp;#12392;repeat&amp;#12434;&amp;#32113;&amp;#21512;
&lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;;           &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;&amp;#12450;&amp;#12452;&amp;#12489;&amp;#12523;&amp;#12479;&amp;#12452;&amp;#12510;&amp;#12540;&amp;#12434;&amp;#36861;&amp;#21152;
&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;defun&lt;/span&gt; &lt;span style=&quot;color: #FFD2A7;&quot;&gt;search-forward-repeat-with-char&lt;/span&gt; &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;arg&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
  &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;interactive&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;p&quot;&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
  &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;cl-case&lt;/span&gt; arg
    &lt;span style=&quot;color: #b0b1a3;&quot;&gt;(&lt;/span&gt;4 &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;let&lt;/span&gt; &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;char &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;read-key &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;Move to Char: &quot;&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;when&lt;/span&gt; &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;char-equal &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;char-after &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;point&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt; char&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;forward-char&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;search-forward &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;backward-char&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; last-search-char char&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b1a3;&quot;&gt;)&lt;/span&gt;
    &lt;span style=&quot;color: #b0b1a3;&quot;&gt;(&lt;/span&gt;1 &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; last-search-char
           &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;progn&lt;/span&gt;
             &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;when&lt;/span&gt; &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;char-equal &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;char-after &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;point&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt; last-search-char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;
               &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;forward-char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
             &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;search-forward &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;string last-search-char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;
             &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;backward-char&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;progn&lt;/span&gt;
           &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;let&lt;/span&gt; &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;char &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;read-key &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;Move to Char: &quot;&lt;/span&gt;&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;
             &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;char-equal &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;char-after &lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;point&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt; char&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;forward-char&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;
             &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;search-forward &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;backward-char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;
             &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; last-search-char char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b1a3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
  &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;run-with-idle-timer
   search-clear-idle-time nil
   '&lt;span style=&quot;color: #b0b1a3;&quot;&gt;(&lt;/span&gt;lambda &lt;span style=&quot;color: #97b098;&quot;&gt;()&lt;/span&gt; &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; last-search-char nil&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b1a3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
  &lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;

&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;defun&lt;/span&gt; &lt;span style=&quot;color: #FFD2A7;&quot;&gt;search-backward-repeat-with-char&lt;/span&gt; &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;arg&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
  &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;interactive&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;p&quot;&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
  &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;cl-case&lt;/span&gt; arg
    &lt;span style=&quot;color: #b0b1a3;&quot;&gt;(&lt;/span&gt;4 &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;let&lt;/span&gt; &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;char &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;read-key &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;Move backward to Char: &quot;&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;search-backward &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; last-search-char char&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b1a3;&quot;&gt;)&lt;/span&gt;
    &lt;span style=&quot;color: #b0b1a3;&quot;&gt;(&lt;/span&gt;1 &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; last-search-char
           &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;search-backward &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;string last-search-char&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
         &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;progn&lt;/span&gt;
           &lt;span style=&quot;color: #b0b0b3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;let&lt;/span&gt; &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;char &lt;span style=&quot;color: #9cb6ad;&quot;&gt;(&lt;/span&gt;read-key &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;Move backward to Char: &quot;&lt;/span&gt;&lt;span style=&quot;color: #9cb6ad;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;
             &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;search-backward &lt;span style=&quot;color: #a2b6da;&quot;&gt;(&lt;/span&gt;string char&lt;span style=&quot;color: #a2b6da;&quot;&gt;)&lt;/span&gt; nil t&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;
             &lt;span style=&quot;color: #90a890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; last-search-char char&lt;span style=&quot;color: #90a890;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b0b3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b1a3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
  &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;run-with-idle-timer
   search-clear-idle-time nil
   '&lt;span style=&quot;color: #b0b1a3;&quot;&gt;(&lt;/span&gt;lambda &lt;span style=&quot;color: #97b098;&quot;&gt;()&lt;/span&gt; &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; last-search-char nil&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b1a3;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
  &lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;
</pre>


<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>

</div>
</div>

<div id="outline-container-org0f6d9fb" class="outline-2">
<h2 id="org0f6d9fb">使い方</h2>
<div class="outline-text-2" id="text-org0f6d9fb">
<ul class="org-ul">
<li>検索とリピートは同じコマンドです<br  /></li>
<li>一旦検索すると検索した文字が保存されるのでリピート可能です<br  /></li>
<li>保存された検索文字は指定のアイドル時間経過後に消去されます<br  /></li>
<li>検索文字が保存されている状態でprefix付きで実行すれば強制的に検索文字を指定可能です。<br  /></li>
</ul>

<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">


<colgroup>
<col  class="org-left" />

<col  class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">M-x search-forward-repeat-with-char</th>
<th scope="col" class="org-left">指定文字までカーソルを前方移動</th>
</tr>

<tr>
<th scope="col" class="org-left">M-x search-backward-repeat-with-char</th>
<th scope="col" class="org-left">指定文字までカーソルを後方移動</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">M-x search-forward-repeat-with-char</td>
<td class="org-left">一文字検索を前方に繰り返し</td>
</tr>

<tr>
<td class="org-left">M-x search-backward-repeat-with-char</td>
<td class="org-left">一文字検索を後方に繰り返し</td>
</tr>
</tbody>
</table>

<p> 保存した文字はデフォルトでは1秒のアイドル時間後に消去されます。アイドル時間を調整したい時は下記パラメーターで。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; search-clear-idle-time 1&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;
</pre>

<p> またC-u M-x search-forward-repeat-with-char でアイドル時間内でも強制的にプロンプトから文字の再指定が可能です。<br  /> </p>

<p> また僕はこんな感じでキーバインドを設定しています。view-mode時に利用するのも便利。こちらはf{char}、b{char}で移動できる。この辺はお好みで。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; mac-right-option-modifier 'hyper&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;bind-keys&lt;/span&gt; &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;H-b&quot;&lt;/span&gt; . search-backward-repeat-with-char&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
           &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;H-f&quot;&lt;/span&gt; . search-forward-repeat-with-char&lt;span style=&quot;color: #93a8c6;&quot;&gt;))&lt;/span&gt;
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;bind-keys&lt;/span&gt; &lt;span style=&quot;color: #DAD085;&quot;&gt;:map&lt;/span&gt; view-mode-map
           &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;b&quot;&lt;/span&gt; . search-backward-repeat-with-char&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
           &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;f&quot;&lt;/span&gt; . search-forward-repeat-with-char&lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;
</pre>
</div>
</div>

<div id="outline-container-orgf4a49d9" class="outline-2">
<h2 id="orgf4a49d9">ダウンロード</h2>
<div class="outline-text-2" id="text-orgf4a49d9">
<p> 下記からソースをダウンロードしてload-pathの通った所に置いて (require 'search-one-word) としても利用可能です。<br  /> <a href="https://www.inabamasaki.com/arc/search-one-word.el">https://www.inabamasaki.com/arc/search-one-word.el</a><br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
# シェル
$ cd ~/emacs.d/elisp
$ wget https://www.inabamasaki.com/arc/search-one-word.el
;; Emacs
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;require&lt;/span&gt; '&lt;span style=&quot;color: #99CC99;&quot;&gt;search-one-word&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;</pre>
</div>
</div>

<div id="outline-container-org6812bc3" class="outline-2">
<h2 id="org6812bc3">追記 (2017.12.19)</h2>
<div class="outline-text-2" id="text-org6812bc3">
<p> 機能強化しました。<br  /> </p>

<iframe loading="lazy" style="width:100%;height:190px;max-height:250px;margin:10px 0px;display:block;" src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.inabamasaki.com%2Farchives%2F2580" class="embed-card embed-blogcard" height="190" width="500" frameborder="0" scrolling="no"></iframe>
</div>
</div>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Masaki Inaba</name>
					</author>

		<title type="html"><![CDATA[[Mac][Emacs] [Mac][Emacs] ライブ変換をマイナーモードに変更した]]></title>
		<link rel="alternate" type="text/html" href="https://www.inabamasaki.com/archives/2522" />

		<id>https://www.inabamasaki.com/?p=2522</id>
		<updated>2018-09-30T06:42:49Z</updated>
		<published>2017-12-06T05:12:00Z</published>
		<category scheme="https://www.inabamasaki.com" term="Emacs" /><category scheme="https://www.inabamasaki.com" term="Mac" /><category scheme="https://www.inabamasaki.com" term="Tips" /><category scheme="https://www.inabamasaki.com" term="tad" />
		<summary type="html"><![CDATA[Macのライブ変換にまだ慣れない事もあり面倒に感じることがありました。特に急いでいる時にライブ変換が有効になってしまいタイプミスというケースなど。というわけでマイナーモード化して必要に応じてライブ変換を利用する形に変更しました。]]></summary>

					<content type="html" xml:base="https://www.inabamasaki.com/archives/2522"><![CDATA[<p> 以前Macのライブ変換をEmacsで利用する云々の記事を書きました。<br  /> </p>

<iframe loading="lazy" style="width:100%;height:190px;max-height:250px;margin:10px 0px;display:block;" src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.inabamasaki.com%2Farchives%2F2430" class="embed-card embed-blogcard" height="190" width="500" frameborder="0" scrolling="no"></iframe>

<p> そして実際ライブ変換を利用してみましたが、まだ慣れない事もあり面倒に感じることがありました。特に急いでいる時にライブ変換が有効になってしまいタイプミスというケースなど。というわけでマイナーモード化して必要に応じてライブ変換を利用する形に変更しました。この記事はその辺の話です。<br  /> </p>




<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>


<div id="outline-container-org899dc40" class="outline-2">
<h2 id="org899dc40">概要</h2>
<div class="outline-text-2" id="text-org899dc40">
<p> 状況によりライブ変換を使いたくないこともあるので「M-x global-live-henkan-mode」で切り替えられるようにした。<br  /> </p>

<p> 「"C-\" (M-x toggle-input-method)」の動作を通常時（モード無効時）は「半角英語 &lt;-&gt; 日本語」、ライブ変換モード有効時は「半角英語 -&gt; 日本語 -&gt; ライブ変換」のトグルで動作する形に。<br  /> </p>
</div>
</div>

<div id="outline-container-org15d411d" class="outline-2">
<h2 id="org15d411d">グローバルマイナーモードの定義を追加</h2>
<div class="outline-text-2" id="text-org15d411d">
<p> 下記のグローバルマイナーモードの定義を追加。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #7C7C7C;&quot;&gt;;; &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;&amp;#12521;&amp;#12452;&amp;#12502;&amp;#22793;&amp;#25563;&amp;#12398;&amp;#12464;&amp;#12525;&amp;#12540;&amp;#12496;&amp;#12523;&amp;#12510;&amp;#12452;&amp;#12490;&amp;#12540;&amp;#12514;&amp;#12540;&amp;#12489;&amp;#23450;&amp;#32681;
&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;define-minor-mode&lt;/span&gt; &lt;span style=&quot;color: #FFD2A7;&quot;&gt;global-live-henkan-mode&lt;/span&gt;
  &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;Mac&amp;#12398;&amp;#12521;&amp;#12452;&amp;#12502;&amp;#22793;&amp;#25563;&amp;#12434;&amp;#21033;&amp;#29992;&amp;#21487;&amp;#33021;&amp;#12395;&amp;#12377;&amp;#12427;&quot;&lt;/span&gt;
  &lt;span style=&quot;color: #DAD085;&quot;&gt;:global&lt;/span&gt; t
  &lt;span style=&quot;color: #DAD085;&quot;&gt;:init-value&lt;/span&gt; nil
  &lt;span style=&quot;color: #DAD085;&quot;&gt;:lighter&lt;/span&gt; &lt;span style=&quot;color: #8AE234;&quot;&gt;&quot; LiveIME&quot;&lt;/span&gt;
  &lt;span style=&quot;color: #93a8c6;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; global-live-henkan-mode
      &lt;span style=&quot;color: #b0b1a3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;progn&lt;/span&gt;
          &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;advice-add 'toggle-input-method &lt;span style=&quot;color: #DAD085;&quot;&gt;:override&lt;/span&gt; 'my/toggle-input-method&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;
          &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;add-hook 'minibuffer-setup-hook 'my/minibuffer-setup-hook&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;
          &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;featurep&lt;/span&gt; '&lt;span style=&quot;color: #99CC99;&quot;&gt;cursor-chg&lt;/span&gt;&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
              &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; curchg-change-cursor-on-input-method-flag nil&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b1a3;&quot;&gt;)&lt;/span&gt;
    &lt;span style=&quot;color: #b0b1a3;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;progn&lt;/span&gt;
      &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;advice-remove 'toggle-input-method 'my/toggle-input-method&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;
      &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;remove-hook 'minibuffer-setup-hook 'my/minibuffer-setup-hook&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;
      &lt;span style=&quot;color: #97b098;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;featurep&lt;/span&gt; '&lt;span style=&quot;color: #99CC99;&quot;&gt;cursor-chg&lt;/span&gt;&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;
          &lt;span style=&quot;color: #aebed8;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;setq&lt;/span&gt; curchg-change-cursor-on-input-method-flag t&lt;span style=&quot;color: #aebed8;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #97b098;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b0b1a3;&quot;&gt;)&lt;/span&gt;
      &lt;span style=&quot;color: #93a8c6;&quot;&gt;)&lt;/span&gt;
  &lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;
</pre>
</div>
</div>

<div id="outline-container-orgb95fd82" class="outline-2">
<h2 id="orgb95fd82">利用方法</h2>
<div class="outline-text-2" id="text-orgb95fd82">
<p> これでライブ変換を使いたい時だけ使えるようになりました。「M-x global-live-henkan-mode」を実行することで通常モードとライブ変換モードのトグルが可能です。コマンド実行毎に有効／無効が切り替わります。またライブ変換有効時はモードラインに「LiveIME」の表示がでるので現在有効か否かを確認できます。<br  /> </p>
</div>
</div>

<div id="outline-container-org01157e0" class="outline-2">
<h2 id="org01157e0">ダウンロード</h2>
<div class="outline-text-2" id="text-org01157e0">
<p> 下記からソースをダウンロードしてload-pathの通った所に置いて (require 'live-henkan) としても利用可能です。<br  /> <a href="https://www.inabamasaki.com/arc/live-henkan.el">https://www.inabamasaki.com/arc/live-henkan.el</a><br  /> </p>

<p> 例えばelispにload-pathを通していれば<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
$ cd ~/emacs.d/elisp
$ wget https://www.inabamasaki.com/arc/live-henkan.el
</pre>

<p> でダウンロードして<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #8c8c8c;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #96CBFE;&quot;&gt;require&lt;/span&gt; '&lt;span style=&quot;color: #99CC99;&quot;&gt;live-henkan&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;)&lt;/span&gt;</pre>

<p> こんな感じで。<br  /> </p>
</div>
</div>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Masaki Inaba</name>
					</author>

		<title type="html"><![CDATA[seqによる数の減算（デクリメント）時の注意点]]></title>
		<link rel="alternate" type="text/html" href="https://www.inabamasaki.com/archives/2505" />

		<id>https://www.inabamasaki.com/?p=2505</id>
		<updated>2017-12-04T02:24:02Z</updated>
		<published>2017-12-03T06:04:00Z</published>
		<category scheme="https://www.inabamasaki.com" term="シェルスクリプト" /><category scheme="https://www.inabamasaki.com" term="Linux" /><category scheme="https://www.inabamasaki.com" term="Mac" /><category scheme="https://www.inabamasaki.com" term="Tips" /><category scheme="https://www.inabamasaki.com" term="tad" />
		<summary type="html"><![CDATA[シェルスクリプトでseqによるデクリメント処理を使う場合、gnu seq と BSD seq では動作が微妙に違うので注意が必要です。]]></summary>

					<content type="html" xml:base="https://www.inabamasaki.com/archives/2505"><![CDATA[<p> seqを使ったデクリメントはローテート処理を自作する場合などに便利です。ただBSDとgnuのseqでは動作が微妙に違うのでスクリプト化するときには注意が必要です。<br  /> </p>



<div id="outline-container-orgc069955" class="outline-2">
<h2 id="orgc069955">インクリメントの動作チェック</h2>
<div class="outline-text-2" id="text-orgc069955">
<p> 先にインクリメントの動作を確認してみます。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% seq 1 3
1
2
3
% gseq 1 3
1
2
3
</pre>

<p> 両者とも特に違いはありません。<br  /> </p>
</div>
</div>

<div id="outline-container-orgdc41e9c" class="outline-2">
<h2 id="orgdc41e9c">デクリメントの動作チェック</h2>
<div class="outline-text-2" id="text-orgdc41e9c">
<p> 今度はデクリメントの動作をチェックしてみます。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% seq 3 1
3
2
1
% gseq 1 3
%
</pre>

<p> BSDのseqはこの記述でも問題ありません。実際BSD seqのmanでもこの記述が載っています。しかしgnuのseqでは何も表示されません。<br  /> </p>
</div>
</div>


<div class="dp_sc_fl_box lemon_cream">
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="dp_sc_fl_item">
<span class="ft10px">スポンサーリンク</span><br>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- レクタングル（大） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:336px;height:280px"
     data-ad-client="ca-pub-2021439964953217"
     data-ad-slot="5722323252"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</div>


<div id="outline-container-org218e578" class="outline-2">
<h2 id="org218e578">gnu seqでデクリメント</h2>
<div class="outline-text-2" id="text-org218e578">
<p> gnuのseqで減算してみます。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% gseq 3 -1 1
3
2
1
</pre>

<p> gnu seqの場合は、スタートの数値と最後の数値の間に、減算数を指定する必要があります。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
$ seq first increment last
</pre>
</div>
</div>

<div id="outline-container-org1b64c7f" class="outline-2">
<h2 id="org1b64c7f">BSD seq で同様に</h2>
<div class="outline-text-2" id="text-org1b64c7f">
<p> この記述はBSD seqでも同様に使えます。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% seq 3 -1 1
3
2
1
</pre>
</div>
</div>

<div id="outline-container-org1e2166e" class="outline-2">
<h2 id="org1e2166e">加算時のインクリメントの指定</h2>
<div class="outline-text-2" id="text-org1e2166e">
<p> 加算時にもインクリメントの指定が可能です。これは1以外の加算時に利用するケースが多いかと思います。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
% seq 1 2 10
1
3
5
7
9
% gseq 1 2 10
1
3
5
7
9
</pre>
</div>
</div>

<div id="outline-container-orgf8253d5" class="outline-2">
<h2 id="orgf8253d5">応用例</h2>
<div class="outline-text-2" id="text-orgf8253d5">
<p> これはバックアップファイルをローテートさせる場合などに使えます。例えばこういった感じでバックアップファイルのローテートを行いたい場合<br  /> </p>

<p> bkup   (最新)<br  /> bkup.0 (1世代前)<br  /> bkup.1 (2世代前)<br  /> bkup.2 (3世代前)<br  /> bkup.3 ...<br  /> bkup.4 ...<br  /> bkup.5 ...<br  /> </p>

<p> 下記のように記述します。<br  /> </p>

<pre class="coding" style="color: #c5c8c6; background-color: #1d1f21;">
&lt;span style=&quot;color: #c5c8c6; background-color: #1d1f21;&quot;&gt;BKFILE&lt;/span&gt;=&lt;span style=&quot;color: #8AE234;&quot;&gt;&quot;&amp;#12496;&amp;#12483;&amp;#12463;&amp;#12450;&amp;#12483;&amp;#12503;&amp;#12501;&amp;#12449;&amp;#12452;&amp;#12523;&amp;#21517;&quot;&lt;/span&gt;

&lt;span style=&quot;color: #96CBFE;&quot;&gt;for&lt;/span&gt; i&lt;span style=&quot;color: #96CBFE;&quot;&gt; in&lt;/span&gt; &lt;span style=&quot;color: #fa8072;&quot;&gt;`seq 4 -1 0`&lt;/span&gt;
  &lt;span style=&quot;color: #96CBFE;&quot;&gt;do&lt;/span&gt;
    &lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; &lt;a href=&quot;nil:nil&quot;&gt;&#091;&#091; -e $&lt;/a&gt;&lt;span style=&quot;color: #c5c8c6; background-color: #1d1f21;&quot;&gt;&lt;a href=&quot;nil:nil&quot;&gt;BKFILE&lt;/a&gt;&lt;/span&gt;&lt;a href=&quot;nil:nil&quot;&gt;.$&lt;/a&gt;&lt;span style=&quot;color: #c5c8c6; background-color: #1d1f21;&quot;&gt;&lt;a href=&quot;nil:nil&quot;&gt;i&lt;/a&gt;&lt;/span&gt;&lt;a href=&quot;nil:nil&quot;&gt; &#093;&#093;&lt;/a&gt;; &lt;span style=&quot;color: #96CBFE;&quot;&gt;then&lt;/span&gt;
      mv $&lt;span style=&quot;color: #c5c8c6; background-color: #1d1f21;&quot;&gt;BKFILE&lt;/span&gt;.$&lt;span style=&quot;color: #c5c8c6; background-color: #1d1f21;&quot;&gt;i&lt;/span&gt; $&lt;span style=&quot;color: #c5c8c6; background-color: #1d1f21;&quot;&gt;BKFILE&lt;/span&gt;.$((i + 1))
    &lt;span style=&quot;color: #96CBFE;&quot;&gt;fi&lt;/span&gt;
&lt;span style=&quot;color: #96CBFE;&quot;&gt;done&lt;/span&gt;

&lt;span style=&quot;color: #96CBFE;&quot;&gt;if&lt;/span&gt; &lt;a href=&quot;nil:nil&quot;&gt;&#091;&#091; -e $&lt;/a&gt;&lt;span style=&quot;color: #c5c8c6; background-color: #1d1f21;&quot;&gt;&lt;a href=&quot;nil:nil&quot;&gt;BKFILE&lt;/a&gt;&lt;/span&gt;&lt;a href=&quot;nil:nil&quot;&gt; &#093;&#093;&lt;/a&gt;; &lt;span style=&quot;color: #96CBFE;&quot;&gt;then&lt;/span&gt;
  mv $&lt;span style=&quot;color: #c5c8c6; background-color: #1d1f21;&quot;&gt;BKFILE&lt;/span&gt; $&lt;span style=&quot;color: #c5c8c6; background-color: #1d1f21;&quot;&gt;BKFILE&lt;/span&gt;.0
&lt;span style=&quot;color: #96CBFE;&quot;&gt;fi&lt;/span&gt;

&lt;span style=&quot;color: #7C7C7C;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #7C7C7C;&quot;&gt;&amp;#20197;&amp;#19979;&amp;#12395;&amp;#12496;&amp;#12483;&amp;#12463;&amp;#12450;&amp;#12483;&amp;#12503;&amp;#20966;&amp;#29702;&amp;#12434;&amp;#35352;&amp;#36848;
&lt;/span&gt;tar czf $&lt;span style=&quot;color: #c5c8c6; background-color: #1d1f21;&quot;&gt;BKFILE&lt;/span&gt; ./
</pre>
</div>
</div>


<div id="outline-container-org61a58e6" class="outline-2">
<h2 id="org61a58e6">まとめ</h2>
<div class="outline-text-2" id="text-org61a58e6">
<p> gnu seq利用時に、安易に例えば "seq 3 0" といった記述を書くと動かなくなるので注意が必要です。Macでは動くけれどLinuxでは動かないといった事が起こります。より汎用性の高いスクリプトを書く為に押さえておくべきポイントかと思います。<br  /> </p>
</div>
</div>
]]></content>
		
			</entry>
	</feed>
