スパム対策として書込み時にID/PWを要求されますが、ローマ字で ほげ/ホゲ で書き込めるようになります。

ターミナルの vim でも :browse をエミュレート

  • ページ: tips
  • カテゴリー: バッファ・ウィンドウ
  • 投稿日: 2006-08-19 00:27:01 (土)

メッセージ

http://d.hatena.ne.jp/parasporospa/20060817/1155807123 より

外部コマンドを使うことによって、kterm や Cygwin の vim でも
:browse コマンド(「ファイルを開く」ダイアログで選択したファイルを開く)
と同等の機能を実現することができる。

準備として「ファイルを開く」ダイアログを開き、選択したファイルの名前を
標準出力に出力するコマンドを作っておく。
そして次を .vimrc に書く。

function! Browse()
  let a = system(用意しておいた外部コマンドのパス) 
  let path = strpart(a, 0, strlen(a)-2)
  if path != ""
    exe "e " . escape(path, ' \')
  endif
endfunction

このようにしておいて、

:call Browse()

とすると、用意しておいた外部ファイルが実行され、「ファイルを開くダイアログ」
が現れ、そこで選択したファイルが vim で開かれる。

VBScript を使う場合

Dim ComDlg, WshShell
Set ComDlg =  WScript.CreateObject("MSComDlg.CommonDialog")
Set WshShell = WScript.CreateObject ("WScript.Shell")
ComDlg.MaxFileSize = 256                            'ファイル名を格納する場所のサイズ
ComDlg.DialogTitle = "ファイルを開く"  'ウインドウタイトル
ComDlg.Filter = "*.*|*.*"            
ComDlg.CancelError = True                           'キャンセルボタンが押されたときにエラーを発生させる
On Error Resume Next                                'エラーが発生しても処理を続ける
ComDlg.ShowOpen                                     '「ファイルを開く」ダイアログを開く
If Err.Number <> 32755 Then                         'エラーナンバー32755(キャンセルボタンが押された)以外なら実行する
    path = ComDlg.FileName
    WScript.Echo path
End If

Set WshShell = Nothing 
Set ComDlg = Nothing

Browse() の中には

system("cscript //nologo このVBScriptファイル名")

と書く。

Qt を使う場合

#include <qapplication.h>
#include <qfiledialog.h>

int main( int argc, char **argv )
{    
	QApplication a( argc, argv );
	 QString s( QFileDialog::getOpenFileName( QString::null, "All Files (*)", 0, "OpenFile", "Open File" ) );

	if ( ! s.isEmpty() ) { 
		 printf("%s", (const char*)s); 
	 }

	return 0;
}




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-10-14 (火) 01:13:17 (1320d)