-->
./
<!-- フラ&#65533;ュが見れな&#65533;のためにここに何か書&#65533; --> フラ&#65533;ュがインス&#65533;&#65533;ルされて&#65533;&#65533;たいで&#65533;&#65533;&#65533;

2010年04月30日

2010年04月07日

[Vim]ビジュアルオペレータ

Vimの使い方
便利なビジュアルモードですが、さらに便利になる操作です。

カーソル位置の単語を選択するなら、

viw

vは選択の開始、iwがカーソル位置の単語を意味します。
カーソルが置かれている下の単語の削除なら

diw

です。これなら、カーソルが単語の途中にいるせいで、cwじゃうまく削除できないときにも使えます。
カーソル位置の単語のコピーなら

yiw

で出来ます。私は、yiwをよく使います。打ちやすいし、カーソル位置の単語をコピーしたいことはたくさんありますからね。


posted by hirono at 02:30| Comment(0) | TrackBack(0) | Vim

2010年04月05日

[Vim]正規表現でマッチする範囲を制限する

Vim-users.jp - Hack #70: 正規表現でマッチする範囲を制限する
Vim の正規表現には変わった機能として、マッチングの範囲を制限する機能があります。他の正規表現エンジンではあまり見かけない書き方ですが、使い方さえわかれば非常に便利な機能です。
\zs と \ze

\zs (start の s) と \ze (end の e) を使うことでマッチする範囲を限定することができます。例えば、

/function\s\+\zs\k\+

と検索すると、function に続く単語が検索されます。この際、function の部分はハイライトされません。なぜなら、\zs のある箇所からがマッチ対象になるためです。同様に \ze があった場合はそれ以降の文字列はマッチ対象から外れます。

 こちらで始めに目にして気になり調べてみました。これは結構使えそうです。
 例えば次のようなコードがあったとして、
for line in getline(1, 20)
        let getline_str = ""
          if line =~ "Date: "
            echo matchstr(line, 'Date: \zs.*')
          endif
        endfor

 :%s/.*\sget\zs.*\ze(/put/g
と実行すると、

for line in getput(1, 20)
        let getline_str = ""
          if line =~ "Date: "
            echo matchstr(line, 'Date: \zs.*')
          endif
        endfor
for line in getput(1, 20)
        let getline_str = ""
          if line =~ "Date: "
            echo matchstr(line, 'Date: \zs.*')
          endif
        endfor

のように変換されました。まともに単語だけ指定して置換するとgetline_strの部分も置き換わっているはずです。




posted by hirono at 02:43| Comment(0) | TrackBack(0) | Vim

2010年03月24日

autocomplpop.vimのON/OFFをトグルする

autocomplpop.vimのON/OFFをトグルする - くふんとなく(旧)
inoremap ,t \ (exists('#AutoComplPopGlobalAutoCommand#InsertEnter')) ? "\:AutoComplPopDisable\" : "\:AutoComplPopEnable\"

 オンの状態だと、gvimで日本語の入力ができません。しかし自分の環境の場合、この方法だとvimでは動作するものの、gvimではだめでした。
 もう一つ紹介されている、
inoremap ,s <ESC>:AutoComplPopDisable<CR>a
inoremap ,q <ESC>:AutoComplPopEnable<CR>a
nnoremap ,s :AutoComplPopDisable<CR>
nnoremap ,q :AutoComplPopEnable<CR>
だとgvimでも動作しました。





Powered by ScribeFire.

posted by hirono at 15:22| Comment(0) | TrackBack(0) | Vim

2010年03月21日

[Vim][Vi]操作の記録と再生

操作の記録と再生機能は超便利

 エクセルのマクロと同じような機能だと思います。いまいちありがたみが理解できず、これまでほとんど使っていなかったのですが、map関数のコードを得ることができると知り、興味を持ちました。


Powered by ScribeFire.

posted by hirono at 19:41| Comment(0) | TrackBack(0) | Vim

2010年03月20日

[vim]名前つきバッファと履歴バッファ、マークとの違い

名前つきバッファと履歴バッファ
JVimには文字列を入れておく「領域」がいくつかあって,一時的に任意の テキストを記憶させたり書き出したりできます
MacやWindowsの操作を知っている人なら「クリップボード」のようなものと 思って下さい

この特殊な「領域」は「バッファ」などと呼ばれ,JVimにはいろいろな種類の バッファを使い分けて活用できるのです
バッファには,どんな種類があって,どのように使うと便利なのかを解説します

 どうもEmacsでいうところのレジスタを、viではバッファと呼んでいるみたいです。バッファはEmacsで、メモリに読み込まれた編集対象の作業領域(多くはファイルそのもの)のことですから、明らかに言葉の意味が違っているように感じました。
 このviのレジスタ(ここではバッファ)は、これまでにちょこちょこ使いましたが、すぐに使わなくなり、そのたびに調べなおしたりしていました。昨夜初めて”(二重引用符)が使えると知ったのですが、以前見かけた記事はすべて`(バッククオート)を使っていたと思います。`(バッククオート)はあまり使わない記号ですが、UNIXでは、`(バッククオート)で囲まれた文字列をコマンドとして実行できる、危険性も併せ持ったような記号だったので、なんとなく使う気がしなかったということもありました。
 ・・・と、ここで気がついたのですが、`(バッククオート)を使うのはマークを使った範囲選択でした。レジスタ番号のようなものを使うという点では、名前付きバッファと似ていますが、よく考えると異なる操作になりそうです。

 マークを使う場合は、たとえばコマンドモードで「mj」と打ちます。するとカーソル位置にjというマークが設定されます。そのあとカーソルを移動して、「y`j」と打つとjというマークを設定した位置から、現在のカーソル位置の直前の文字列が、コピーされますので、所望の位置にいどうしてから、「p」を打つと、コピーした範囲が貼り付けられます。
 ためしてみたところ、「"jp」で貼り付けることはできず、「レジスタjには何もありません」とメッセージが出ました。しかし、「`j」で、マーク位置に移動することはできました。マークと名前付きバッファは、同じくアルファベット人文字で、印を付けますが、扱いが異なるようです。

 参考にさせていただいたページで、特に便利だと思ったのは大文字を使ったバッファへの追加です。「"ayy」「"Ayy」「"Ayy」と繰り返していくと、各行を名前付きバッファaに追加でき、「"ap」でまとめて貼り付けることができました。

 あとHというコマンドの存在も知りました。「”ay3H」で画面に表示されている3行目からカーソル位置までの範囲が名前付きバッファaに記憶されました。このHは、移動系のコマンドみたいです。Hとだけ打つと、画面に見えている範囲の先頭に移動し、3Hと打つと、同じく3行目に移動しました。



 :di でバッファの状態を確認することができるので、これはすごく便利です。


追記:
 どうも「:put a」という方法でも貼り付けることができるようで、わずかな違いですが、「:pu j」と省略することもできるみたいです。
参考:http://homepage1.nifty.com/niwatori/vi/t08.html#kiroku


Powered by ScribeFire.



posted by hirono at 16:41| Comment(0) | TrackBack(0) | Vim

2010年03月13日

vi キー操作メモ(Hishidama's vi Memo)

viキー操作メモ(Hishidama's vi Memo)
UNIXでエディタと言えば、vi(vim)かemacs。viのキー操作を覚えておけば、だいたいどこでも使える。 けど独特な上に量が多すぎて覚えにくいんだなー(嘆)
とりあえず、重要そうなキーを太字にしてみました。


posted by hirono at 23:44| Comment(0) | TrackBack(0) | Vim

2009年12月03日

viにおける文字コード自動判別と文字コードの違いによるファイルの管理

テキストエディタを比較
Vi
文字コードの自動判別機能自体は持っているが、RedHatやFedoraはデフォルトでは日本語の 文字コード判別が設定されていない。そのため、日本語ファイルを開くと次の画像のように化けてしまう。


 一昨日になりますが、大変参考にさせていただきました。これまで長い間、vimについてネットで調べ物をしたり、UNIX/Linux関係の書籍もかなりの数読んできましたが、このような情報を見たのは初めてでした。
 これまで文字コードの異なるファイルを開き編集する際はEmacsを使ってきましたが、コマンドラインにおいてちょっとしたファイルの編集にEmacsを起動するのは気が引けることもあり、多少起動に時間がかかる上、保存して終了させるのも多少面倒です。保存にはCtrl-x Ctrl-s、終了にはCtrl-c Ctrl-cでこの手間も、自分が横着すぎるのか馬鹿になりませんでした。(GUIだとメニューにアイコンなどがありますが、なぜか余り使いません。viの支持者にはEmacsのことを「指がうなるエディタ」と皮肉る人もいるようですが、ほとんどキーボードを使ってしまう習慣です。)
 viだと保存と終了を同時に、ZZ(コマンドモード)で済ますことが出来るからです。腰を入れて編集をするときはEmacsでも多少のことは苦にならないのですが、わずかな編集にEmacsを使うのは、やはり躊躇することがあります。

 nkfを使って、文字コードを変え、別ファイルとして保存することも多いですが、これもリダイレクトを使わず--overwriteオプションを使ったところで手間であり、文字コードの違いで別々のファイルを作ってしまうと、ぱっと見では、どちらの文字コードのファイルなのかもわかりません。

 おかげさまで、そんな煩わしさを一挙に解消することが出来ました。なぜにこれまでこのような方法を見かけることがなかったのか不思議といえば、不思議ですが、とにかくよかったです。
 EmacsとviはUNIXにおける宗教論争といわれるぐらいですから、自分のような両刀使いは、そもそも軟弱な邪道なのかもしれません。

 ~/.vimrcには次のように設定しました。前にどこからコピペしたのに手を加えています。先頭の”はコメントアウトになるみたいです。
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
"set fileencodings=ucs-bom,euc-jp,cp932,iso-2022-jp
"set fileencodings+=,ucs-2le,ucs-2,utf-8
set fileencodings=euc-jp,sjis,iso-2022-jp

 ただ、残念なことにメールを別名保存したISO-2022-JPのファイルをviで開くと文字化けしていました。Emacsでは大丈夫でした。指定コードの並び順によっても違いが出てくるそうですが、直接ヘッダの混じったメールファイルを開くことは滅多にないので、Shift_JISが扱えればそれでいいです。

 このファイルはまずWindowsXPで作成保存しました。Crescent Eveというフリーソフトのエディタを使っていますが、これは文字コードの自動判別を行ってくれるので、ぱっと見では違いはわかりません。見た目はシンプルなエディタですが、シンプル軽量で、多機能ではないものの使い勝手のよい高機能があり、気に入っています。
xp000000
xp000000 posted by (C)hirono-hideki

 こちらがUbuntu9.10です。左側のウィンドウでファイルをviで開いています。VMware Playerの共有フォルダを使っているので、まったく同一のファイルを交互に編集しました。
 右側のウィンドウで、文字コードと改行コードの違いを確認しました。catコマンドに-eオプションをつけると改行コードの違いがわかります。日本語のマルチバイトは化けています。わかりやすくするため、コマンドラインからヒアドキュメントとリダイレクトを組み合わせて、新規ファイルを作成しました。
u9-shiftJIS-vim_20091203
u9-shiftJIS-vim_20091203 posted by (C)hirono-hideki


 再びWindowsXPの画面ですが、WindowsXPの標準エディタである「メモ帳(NotePad)」では、やはり不具合が起きています。改行になっていません。
xp000001
xp000001 posted by (C)hirono-hideki

Powered by ScribeFire.

posted by hirono at 04:24| Comment(0) | TrackBack(0) | Vim

2009年12月01日

gvimでの日本語入力

[解決]gvim で日本語入力がうまくいかないを参考。

コマンドモードで、 :AutoComplPopDisable を実行するとOFFになりました。

Powered by ScribeFire.

posted by hirono at 23:26| Comment(0) | TrackBack(0) | Vim

2009年10月24日

メールヘッダからFromのアドレスを抜き出す。

ソースコード
#!/bin/sh
RES=`cat`

REPLY=`echo "$RES" |grep '^From: ' | cut -d' ' -f2-`
echo "cut => "$REPLY""

REPLY=`echo "$RES" |sed -n -e 's/\(^From: \)\(.\+\)$/\2/p'`
echo "sed => "$REPLY""

REPLY=`echo "$RES" |awk 'BEGIN {i=0;} /^From:/ {i<1; i++; sub(/From: /, ""); if(i == 1){print;}}'`
echo "awk => "$REPLY""

REPLY=`echo "$RES" |grep '^From: '|perl  -p -e  'if(/^From: ([^ ]+?)$/) \
{exit;} s/From: //; '`
echo "perl => "$REPLY""

REPLY=`echo "$RES" |ruby -n -e '(print  $_[ /^From:\s(.+)/,1 ]; exit;) if /^From: /'`
echo "ruby => "$REPLY""

#メールアドレスのみを取り出す。
MAIL=${REPLY##*<}
MAIL=${MAIL%%>}
echo -e "\n\nメールアドレス: $MAIL"



テストファイルの内容
Return-Path: <xxxxxx@gmail.com>
Received: from mail-xxxx.google.com (mail-xxxx.google.com [209.85.222.182])
        by www1729.sakura.ne.jp (8.14.3/8.14.3) with ESMTP id n9O6AjBI094828
        for <xxxxx@hirono-hideki-01.sakura.ne.jp>; Sat, 24 Oct 2009 15:10:45 +0900 (JST)
        (envelope-from xxxxxx@gmail.com)
Received: by pzk12 with SMTP id 12so6950032pzk.13
        for <xxxxx@hirono-hideki-01.sakura.ne.jp>; Fri, 23 Oct 2009 23:10:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=gamma;
        h=domainkey-signature:mime-version:received:in-reply-to:references
         :date:message-id:subject:from:to:content-type;
        bh=inf2k4P4zg6jFfBgBwg9Av/zkFa+dGjyV61RK1Ttvdo=;
        b=nAfF4GH8FZ+SDSWv7YZYCX8rdU4avuKXxljlQVSRPsHF4zSNhvimHPaYR4yp6cnu2H
         XHg1B7M6EYFZcrFhjkLBLDmzYEsPdieA4eMutujUgCbmPM2zmi47fHBKfWpukRoodM/c
         vs78mbbkwpEPROWOL+ib81SmhPqR3bbeMjxkE=
DomainKey-Signature: a=rsa-sha1; c=nofws;
        d=gmail.com; s=gamma;
        h=mime-version:in-reply-to:references:date:message-id:subject:from:to
         :content-type;
        b=oLHJQfupLp/ODg8gnPpPers3YBuLqBK5t+FpO3QPyjEEDV7UuvYOo8KMlPdPLtmo2F
         xmM572+H2un7qmQKndzIgL+5vkwhOpfWDHEFRF7msuvz2TuONI9+s7z7RPCNK8Yx+r8t
         LpAxtPiqaI2pg7ZSMlbQRWDRmWZxdirEBz5hU=
MIME-Version: 1.0
Received: by 10.142.67.6 with SMTP id p6mr889222wfa.20.1256364644802; Fri, 23
        Oct 2009 23:10:44 -0700 (PDT)
In-Reply-To: <200910240609.n9O69m8m0947xxxxx.sakura.ne.jp>
References: <200910240609.n9O69m8m0947xxxxx.sakura.ne.jp>
Date: Sat, 24 Oct 2009 15:10:44 +0900
Message-ID: <f00b56d20910232310r289555f7q9f79c57efe2b7a9e@mail.gmail.com>
Subject: Re: xxxxx
From: =?ISO-2022-JP?B?GyRCVyJMbj0oPHkbKEI=?= <xxxxxx@gmail.com>
To: xxxxx@hirono-hideki-01.sakura.ne.jp
Content-Type: multipart/alternative; boundary=001636e0a8bb5ca1380476a830eb

--001636e0a8bb5ca1380476a830eb
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

2009BG/10B7n24BF|15:09 <xxxxx@hirono-hideki-01.sakura.ne.jp>:

> B$F$9$H
>
>
B#o#k

--001636e0a8bb5ca1380476a830eb
Content-Type: text/html; charset=ISO-2022-JP
Content-Transfer-Encoding: base64

PGJyPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+MjAwORskQkcvGyhCMTAbJEI3bhsoQjI0
GyRCRnwbKEIxNTowOSAgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86c2swMDAx
QGhpcm9uby1oaWRla2ktMDEuc2FrdXJhLm5lLmpwIj5zazAwMDFAaGlyb25vLWhpZGVraS0wMS5z
YWt1cmEubmUuanA8L2E+Jmd0Ozwvc3Bhbj46PGJyPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9x
dW90ZSIgc3R5bGU9ImJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpOyBt
YXJnaW46IDBwdCAwcHQgMHB0IDAuOGV4OyBwYWRkaW5nLWxlZnQ6IDFleDsiPgobJEIkRiQ5JEgb
KEI8YnI+Cjxicj4KPC9ibG9ja3F1b3RlPjwvZGl2Pjxicj4bJEIjbyNrGyhCPGJyPjxicj4K
--001636e0a8bb5ca1380476a830eb--



処理結果
FU:[tmptmp]% cat mail.test |./cut-maddr.sh
cut => =?ISO-2022-JP?B?GyRCVyJMbj0oPHkbKEI=?= <xxxxxx@gmail.com>
sed => =?ISO-2022-JP?B?GyRCVyJMbj0oPHkbKEI=?= <xxxxxx@gmail.com>
awk => =?ISO-2022-JP?B?GyRCVyJMbj0oPHkbKEI=?= <xxxxxx@gmail.com>
perl => =?ISO-2022-JP?B?GyRCVyJMbj0oPHkbKEI=?= <xxxxxx@gmail.com>
ruby => =?ISO-2022-JP?B?GyRCVyJMbj0oPHkbKEI=?= <xxxxxx@gmail.com>


メールアドレス: xxxxxx@gmail.com
FU:[tmptmp]%   

 該当箇所が一つだけなら処理も簡単なのですが、二つ以上あると次のようにエラーの起こる可能性が出てきます。
FU:[tmptmp]% cat ttt |./cut-maddr.sh
cut => x111@xxxxx.xxx.js 22222222 33333333
sed => x111@xxxxx.xxx.js 22222222 33333333
awk => x111@xxxxx.xxx.js
perl => x111@xxxxx.xxx.js
ruby => x111@xxxxx.xxx.js


メールアドレス: x111@xxxxx.xxx.js
FU:[tmptmp]%    


 もっとよい方法がありそうですが、今後の参考も兼ねたメモ書きです。

Powered by ScribeFire.



posted by hirono at 18:13| Comment(0) | TrackBack(0) | Vim

2009年10月18日

検索結果のハイライト表示を消す

明日使えるVimコマンド集 [日進月歩]

検索結果のハイライト表示を消す :nohlsearch :noh と省略が可能

 今まで余り気になることがなかったのですが、昨日、画面があまりにも見にくくなったので、どうやって消すのかとしばし考え込んでしまいました。

Powered by ScribeFire.

posted by hirono at 04:26| Comment(0) | TrackBack(0) | Vim

Vim CTRLキーバインドまとめ

Vim CTRLキーバインドまとめ [日進月歩]

 検索を掛けていてたまたま見つけたのですが、実によくまとめられています。
 vimのCTRLキーバインドというのは、あまり使ったことがないというか、滅多に使うこともないのですぐに忘れてしまうのですが、とても参考になりそうです。

Powered by ScribeFire.

posted by hirono at 04:04| Comment(0) | TrackBack(0) | Vim

2009年10月14日

viで自動的にHTMLを作成するTOhtml

参考:http://nanasi.jp/articles/vim/2html_vim.html#id2

 以下は、実際に生成したソースコードをhead部分を除いて貼り付けてものです。ただ、「defun」などと関数名になっている部分だけは、 薄い黄色に色付けされていたので、置換を掛けて色の16進数コードを変えました。
 JavaScriptのシンタックスハイライトでEmacs-Lispに対応したものがないか、探していたものの見つからず、たまたま見つけたのがVimでHTMLファイルを生成するというサイトでした。
 サイトを参考に~/.vimrcに次の設定を加えました。
let html_number_lines = 0
"let html_use_css = 1
let html_no_pre = 1
 cssの部分はコメントアウトで無効にしてあります。普通にHTMLファイルを使うのであればheadにcssの設定をした方が良いのですが、bodyタグ内に貼り付ける場合、不都合だと考えたからです。
 さくらのブログでは、JavaScriptファイルの読み込みやcssによるHTML全体レイアウトの編集が可能なのですが、head内の設定がブログの記事全般に適用されるようです。もしcssのclassの定義名が、他から読み込むcssファイルとかち合ってしまう可能性もあると考え、cssの定義を使わないようにしました。


(defun h-org2pdf-processing ()
  "org-modeのLaTeXエクスポートの結果を処理する。"
  (interactive)
  (let* ((bname (buffer-name))
         (directory default-directory)
       (sname
        (progn
          (string-match "\\(.+\\)\\..+" bname)
          (replace-match "\\1.tex" nil nil bname))))
    (save-excursion
      (call-interactively 'org-export-as-latex-to-buffer))
    (switch-to-buffer "*Org LaTeX Export*")
    (save-excursion
      (beginning-of-buffer)
      (h-gtlt2escape)
      (h-tex-preamble))
    (write-file sname)
    ;処理結果表示用のフレームを作成
    (message "Create File: %s" sname)

    (let* ((tex-file
            (expand-file-name sname directory))
           (target-file
            (progn
              (string-match "\\(.+\\)\\..+$" tex-file)
              (replace-match "\\1" nil nil tex-file)))
           (repeat 3) (flag t))
      (while (< 0 repeat)
        (setq flag (call-process "platex" nil  "compile TeX" nil tex-file))
        (if (= 0 flag)
            (progn (sleep-for 1) (setq repeat (- repeat 1)))
          (error "Tex compile Error!")))

      (setq flag (call-process "dvipdfmx" nil "compile Tex" nil
                               (format "%s.dvi" target-file)))
      (if (= 0 flag)
          ()
        (error "dvipdfmx Error!"))

    (setq nfrm (make-frame))
    (select-frame nfrm)
    (setq cw (frame-selected-window))
    (select-window cw)
    (get-buffer-create "compile Tex")
    (set-window-buffer cw "compile Tex")

      (call-process "evince" nil nil nil (format "%s.pdf" target-file)))))

(defun h-copy-word (arg)
  (interactive "p")
  (copy-region-as-kill-nomark (point)
                              (progn (forward-word arg) (point))))

;2008-12-18
(defun h-search-paragraph (word)
  (interactive "sWord: ")
  (save-excursion
    (let ((string "\n\n\n")
          (file "~/tmptmp/1234.txt")
          (fp 0) (sp 0))
      (goto-char (point-min))
      (while (search-forward word nil t)
        (unless (= fp (point))
          (progn (write-region
            (progn (point) (setq sp (point))(backward-sentence))
            (forward-sentence)
            file t)
           < (defun h-org2pdf-processing ()
  "org-modeのLaTeXエクスポートの結果を処理する。"
  (interactive)
  (let* ((bname (buffer-name))
         (directory default-directory)
       (sname
        (progn
          (string-match "\\(.+\\)\\..+" bname)
          (replace-match "\\1.tex" nil nil bname))))
    (save-excursion
      (call-interactively 'org-export-as-latex-to-buffer))
    (switch-to-buffer "*Org LaTeX Export*")
    (save-excursion
      (beginning-of-buffer)
      (h-gtlt2escape)
      (h-tex-preamble))
    (write-file sname)
    ;処理結果表示用のフレームを作成
    (message "Create File: %s" sname)

    (let* ((tex-file
            (expand-file-name sname directory))
           (target-file
            (progn
              (string-match "\\(.+\\)\\..+$" tex-file)
              (replace-match "\\1" nil nil tex-file)))
           (repeat 3) (flag t))
      (while (< 0 repeat)
        (setq flag (call-process "platex" nil  "compile TeX" nil tex-file))
        (if (= 0 flag)
            (progn (sleep-for 1) (setq repeat (- repeat 1)))
          (error "Tex compile Error!")))

      (setq flag (call-process "dvipdfmx" nil "compile Tex" nil
                               (format "%s.dvi" target-file)))
      (if (= 0 flag)
          ()
        (error "dvipdfmx Error!"))

    (setq nfrm (make-frame))
    (select-frame nfrm)
    (setq cw (frame-selected-window))
    (select-window cw)
    (get-buffer-create "compile Tex")
    (set-window-buffer cw "compile Tex")

      (call-process "evince" nil nil nil (format "%s.pdf" target-file)))))

(defun h-copy-word (arg)
  (interactive "p")
  (copy-region-as-kill-nomark (point)
                              (progn (forward-word arg) (point))))

;2008-12-18
(defun h-search-paragraph (word)
  (interactive "sWord: ")
  (save-excursion
    (let ((string "\n\n\n")
          (file "~/tmptmp/1234.txt")
          (fp 0) (sp 0))
      (goto-char (point-min))
      (while (search-forward word nil t)
        (unless (= fp (point))
          (progn (write-region
            (progn (point) (setq sp (point))(backward-sentence))
            (forward-sentence)
            file t)
           (write-region string nil file t)
           (setq fp sp)))))))
font color="#ff40ff">(
write-region string nil file t)
           (setq fp sp)))))))

 ソースコードの一部です。なお、シンタックスハイライトで、空白(スペース)になる次のコードが表示されていないみたいです。
nbsp;

(defun h-org2pdf-processing ()
  "org-modeのLaTeXエクスポートの結果を処理する。"
  (interactive)
  (let* ((bname (buffer-name))
         (directory default-directory)
       (sname


Powered by ScribeFire.

posted by hirono at 02:03| Comment(0) | TrackBack(0) | Vim