vim lookupfile插件tagfile 生成

<?php

/**

命令
    :let g:LookupFile_TagExpr = '"./filenametags"' 

    http://easwy.com/blog/archives/advanced-vim-skills-lookupfile-plugin/

 *  http://blog.csdn.net/luocm/article/details/2503016
 *
	文件名+tab键+文件全路径+tab键+数字1
	!_TAG_FILE_SORTED
 **/
$files = array();
$dir = new RecursiveDirectoryIterator(".");
foreach(new RecursiveIteratorIterator($dir) as $file)
{
	//$extension = pathinfo($info->getFilename(), PATHINFO_EXTENSION);
	$extension = pathinfo($file->getFilename(), PATHINFO_EXTENSION);
	if ($file->IsFile() &&
	substr($file->getFilename(), 0, 1) != "." &&
	$extension != 'svn-base' && $extension != 'png' && $extension != 'gif' && $extension != 'jpg')
	{
		//echo $file->getRealPath() . "\n";
		$files[$file->getFilename()] = $file->getRealPath();
	}
}
//print_r($files);
//die;
asort($files);

$filenametags = '';
//!_TAG_FILE_SORTED\t2\t/2=foldcase
$filenametags = "!_TAG_FILE_SORTED\t2\t/2=foldcase\n";
foreach($files as $name => $full_path)
{
	//文件名+tab键+文件全路径+tab键+数字1
	$filenametags .= $name . "\t" . $full_path . "\t1\n";
}

// 首先我们要确定文件存在并且可写。

// 在这个例子里,我们将使用添加模式打开$filename,
// 因此,文件指针将会在文件的开头,
// 那就是当我们使用fwrite()的时候,$somecontent将要写入的地方。
if (!$handle = fopen('filenametags', 'w')) {
	 echo "不能打开文件 $filename";
	 exit;
}

// 将$somecontent写入到我们打开的文件中。
if (fwrite($handle, $filenametags) === FALSE) {
	echo "不能写入到文件 $filename";
	exit;
}

fclose($handle);

//filenametags

vim

相关推荐