[xyzzy:08951] Re: リストから取得した要素について
- Subject: [xyzzy:08951] Re: リストから取得した要素について
- From: Kataoka Yumi <tu93a@xxxxxxxxxxx>
こんにちは、つるりんです。
ささださん。やなぎうらさんお返事ありがとうございました。
既出かもしれませんが、目指していた機能が実現できましたの
で掲載させていただきます。
c/cpp ファイルと同名の h ファイルを開く関数です。
その逆もありです。
インデントが滅茶苦茶、もっと効率良くできる等
問題は多々あるかと思います。(--;
後、ディレクトリに ".h" ".cpp" ".c" が含まれると
多分動かないです。(未検証)
この辺りまだまだ修正の余地ありです。
では皆さん、色々とアドバイスありがとうございました。
--
つるりん tu93a@xxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; c/cpp → h ファイル開く / h → c/cpp ファイル開く
2003/11/10
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;; 拡張子を変更
(defun change-extension (fullpath ext-src ext-dst)
(substitute-string fullpath ext-src ext-dst)
)
;;;;;;; バッファを読み込み、カレントバッファに設定
(defun show-buffer (fullpath)
(if (dolist (x (mapcar (function get-buffer-file-name)
(buffer-list)))
(if (string-equal x fullpath) (return t)))
(progn (switch-to-buffer (get-file-buffer fullpath)))
(progn (find-file fullpath)
(switch-to-buffer (get-file-buffer
fullpath)))
)
)
;;;;;;; c/cpp → h ファイル開く / h → c/cpp ファイル開
く
(defun open-c-cpp-h ()
(interactive)
(let (ext new-fname buff-fullpath)
(setq buff-fullpath (get-buffer-file-name))
(setq ext (pathname-type buff-fullpath))
(cond
((string-equal ext "cpp")
(setq new-fname (change-extension buff-fullpath "cpp"
"h"))
(if (file-exist-p new-fname)
(show-buffer new-fname)
(message-box "そんな h ファイル無いです。")
))
((string-equal ext "c")
(setq new-fname (change-extension buff-fullpath "c"
"h"))
(if (file-exist-p new-fname)
(show-buffer new-fname)
(message-box "そんな h ファイル無いです。")
))
((string-equal ext "h")
(setq new-fname (change-extension buff-fullpath "h"
"cpp"))
(if (file-exist-p new-fname)
(show-buffer new-fname)
(progn
(setq new-fname (change-extension buff-fullpath "h"
"c"))
(if (file-exist-p new-fname)
(show-buffer new-fname)
(message-box "そんな c/cpp ファイル無いです。"))
)
))
(t (message-box "c/cpp/h ファイル以外お断り。"))
)
)
)
(global-set-key #\C-F9 'open-c-cpp-h)