テキスト処理

罫線とか引けますか?

管理番号
52
更新日時
2005/06/26 23:04:51
セクション
テキスト処理

[ツール]→[罫線モード] で罫線モードを呼び出すと,以下の処理を実行することができます。

 Ctrl + 矢印キー         : 罫線描画
 Ctrl + Shift + 矢印キー : 消去
 Ctrl + Alt + 矢印キー   : 矢印描画(もしくは,Esc Ctrl + 矢印キー)

太線を引く場合は,[ツール]→[太い罫線] にチェックを入れます。


undo 後のカーソル位置を削除範囲の末尾にしたいのですが…。

管理番号
69
更新日時
2005/06/26 23:05:17
セクション
テキスト処理

初期化ファイルに,

 ; ナイスアンドゥ
 (setq *move-forward-after-undo-deletion* t)

と書いておいてください。


C-s や C-r でインクリメンタルサーチをしたいのですが…。

管理番号
71
更新日時
2003/07/25 00:23:35
セクション
テキスト処理

専用のライブラリを読みこませる必要があります。したがって初期化ファイルに,

  ; インクリメンタルサーチ
  (load-library "isearch")

と書いておいてください。


選択範囲を指定してドラッグ&ドロップによる編集ってできますか?

管理番号
77
更新日時
2005/06/26 23:05:54
セクション
テキスト処理

共通設定の [さまざま]→[D&D編集する] をチェックしてください。


文章を整形したいのですが…。

管理番号
96
更新日時
2005/06/26 23:06:25
セクション
テキスト処理

[編集]→[段落]→[詰め込み] するか M-q で,カーソル位置の段落を 1 行 72桁で改行してくれます。


自動的に文書整形することはできませんか?

管理番号
97
更新日時
2005/06/26 23:06:59
セクション
テキスト処理

auto-fill-mode を使います。M-x auto-fill-mode して下さい。auto-fill-mode を使うと,文章入力時に適当なタイミングで自動改行してくれます。

自動整形を止める場合も同じく M-x auto-fill-mode します。auto-fill-mode が有効になっていると,モード行のモード名に「Fill」と表示されます。

また,text-mode で常時自動的に文書整形したいは,初期化ファイルに,

  (add-hook '*text-mode-hook* #'(lambda () (auto-fill-mode t)))

と書いておいてください。


詰め込み桁数は,どうやって変更するのですか?

管理番号
99
更新日時
2005/06/26 23:07:38
セクション
テキスト処理

例えば半角で 60 文字にしたい場合,M-6 0 C-x f と入力してください。M-6 は Alt を押しながら 6 を押します。0 を押すときは Alt を押していても離していても可です。

また,文字数を指定せずに C-x f と入力すると,そのときカーソルのある位置が折り返し位置になります。

この値は,設定したバッファでのみ有効です。詰め込み桁数の既定値を変更したい場合は,初期化ファイルに,

  (setq-default fill-column 62)

と書いておいてください。


もっと複雑な文章整形をしたいのですが…。

Type
拡張機能
管理番号
102
更新日時
2005/06/26 23:08:22
セクション
テキスト処理

Junichiro Kita さんの flex-fill.l が便利です。

flex-fill.l を使うと,詰め込み時に # を行頭に追加したり,行頭にスペースを入れて字下げしたり,番号付きリストなども字下げしたりしてくれます。


タブが入力できません…。

管理番号
106
更新日時
2005/06/26 23:08:54
セクション
テキスト処理

C-q TAB で入力することができます。

これは編集モードによって,TAB キーがインデント用コマンドなどに割り当てられているためです。


繰返し処理を簡単に実行することはできませんか?

管理番号
118
更新日時
2005/06/26 23:10:29
セクション
テキスト処理

キーボードマクロを使うと,Lisp を記述することなく繰り返し処理を実行することができます。使い方は,以下の通り。

  1. [ツール]→[キーボードマクロ記録開始] または C-x ( で記録を開始する。
  2. 繰返し行いたい処理を実行する。
  3. [ツール]→[キーボードマクロ記録終了] または C-x ) で記録を終了する。
  4. [ツール]→[キーボードマクロ実行] または C-x e でマクロを実行する。

但し,メニューでの処理は記憶できません。(キーボードマクロなので)

ここで記録したマクロは,次のマクロを記録したり xyzzy を終了させたりすると消えてしまいまが,保存しておくこともできます。

保存しておきたい場合は,[ツール]→[キーボードマクロおまけ]→[保存] を,保存したマクロを読み込む場合は,[ツール]→[キーボードマクロおまけ]→[読み込み] です。

また,保存を実行すると,マクロは .xyzzy.history に記録されますが,これをファイルに書き出すには,[ツール]→[キーボードマクロおまけ]→[ファイルへ保存] を実行します。★他の PC とかで使うため?

Seealso
キーボードマクロで登録したキー操作にキーを割り当てて使えませんか?
キーボードマクロ選択ダイアログをキーバインド一発で出すことはできませんか?
キーボードマクロの実行で,C-x e を連打するのがつらいのですが…。

もっと簡単に繰返し処理を実行することはできませんか?

Type
拡張機能
管理番号
123
更新日時
2005/08/08 22:13:54
セクション
テキスト処理

増井俊之さんの dmacro.l (xyzzy対応 by kia さん)を使うと便利です。くぼーんさんちで公開されてます。

また,連番の機能を持たせた kia さんの ndmacro.l もあります。

dmacro.l を使うと直前に繰返し実行した操作を記憶しているので,意図的にマクロの記録/終了を行なうことなく繰返し処理を行うことができます。

2 度繰り返すのも苦痛な長い処理や後でまた使う処理などにはキーボードマクロを,そうでない使い捨てな処理には dmacro.l を,と使い分けると便利かもしれません。


キーボードマクロの実行で,C-x e を連打するのがつらいのですが…。

管理番号
128
更新日時
2003/06/24 21:32:03
セクション
テキスト処理

例えば同じ処理を 10 回繰り返す場合,以下のような方法があります。

  C-u 1 0 C-x e
  ESC 1 0 C-x e
  Alt-1 0 C-x e
  Alt-1 Alt-0 C-x e

カーソル位置からバッファの末尾まで繰り返す場合は,以下のようにします。

  ESC 0 C-x e
  Alt-0 C-x e

この方法で特定の範囲に対して処理を行う場合は,ナロウイング機能を使うと便利です。

また,適当に何回か繰り返す場合は,以下のようにすると便利です。

  C-u C-x e             :   4 回実行
  C-u C-u C-x e         :  16 回実行
  C-u C-u C-u C-x e     :  64 回実行
  C-u C-u C-u ... C-x e : ... 回実行

C-u の後ろに数字でもマイナス記号でもない文字を入力すると," 4 倍する" という特別の意味になります。よって,C-u を 2 回入力すると 16 倍になります。

Seealso
ナロウイングとはなんですか?

連続する重複行を 1 行だけ残して削除するにはどうしたら良いでしょう?

管理番号
129
更新日時
2003/06/21 23:05:42
セクション
テキスト処理

unix 系のツール入れてるのなら uniq を使えば一発です。

  C-x # uniq

更新日付を自動的に挿入したいのですが…。

Type
拡張機能
管理番号
141
更新日時
2005/08/08 22:14:45
セクション
テキスト処理

Junichiro Kita さんの auto-time-stamp.l を使いましょう。

例えば,初期化ファイルに,

 (require "auto-time-stamp")
 (define-key ctl-x-map #\C-s 'save-buffer-with-time-stamp)

とか書いておくと,C-x C-s 実行時に,

 Last updated: "2003/06/24 21:51:27"

とかの記述があれば,自動でタイムスタンプを入れてくれます。

kia さんの拡張ものもあります。


制御コードが入力したいのですが…。

管理番号
155
更新日時
2003/07/18 19:19:29
セクション
テキスト処理

M-x control-code-dialog-box してください。ダイアログボックスから選択して入力することができます。