Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: f39b3fad8c
Fetching contributors…

Cannot retrieve contributors at this time

238 lines (201 sloc) 6.713 kB
<html>
<head>
<link rel="alternate" type="application/atom+xml" title="RSS 2.0" href="http://kjkpub.s3.amazonaws.com/vack/relnotes.xml" />
<style type="text/css">
body {
background: #ffffff;
background: #A9D1FF;
background: rgba(90,110,140,.99);
/* background: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,0)), to(rgba(90,110,140,.6))); */
}
body, td {
color: #222;
}
.header {
font-size: 20px;
font-weight: bold;
}
.dl {
color: #00468F;
//color: #B6642B;
font-size: 120%;
font-weight: bold;
}
.smaller {
font-size: 80%;
}
.lightbox {
background: #D2E8FF;
border-bottom-left-radius: 10px 10px;
border-bottom-right-radius: 10px 10px;
border-top-left-radius: 10px 10px;
border-top-right-radius: 10px 10px;
color: #222;
margin-left: 30px;
margin-right: 30px;
margin-bottom: 10px;
padding: 10px 25px;
}
a:visited {
color: #222;
}
}
</style>
<script src="http://kjkpub.s3.amazonaws.com/vack/latestver.js"
type="text/javascript"></script>
<script>
function $(id) {
if (document.all)
return document.all[id];
if (document.getElementById)
return document.getElementById(id);
for (var i=1; i<document.layers.length; i++) {
if (document.layers[i].id==id)
return document.layers[i];
}
return false;
}
function selectMain() {
var shot = $("currentscreenshot");
shot.src = "http://kjkpub.s3.amazonaws.com/blog/vack/vack-main.png";
return false;
}
function selectResult() {
var shot = $("currentscreenshot");
shot.src = "http://kjkpub.s3.amazonaws.com/blog/vack/vack-results.png";
return false;
}
function myInit() {
var html = "<a class=dl href='" + vackLatestUrl + "'>Download</a>";
$("url").innerHTML = html;
$("ver").innerHTML = "(version " + vackLatestVer + ', <a href="http://kjkpub.s3.amazonaws.com/vack/relnotes.html">release notes</a>)';
html = '<a href="' + vackLatestUrl + '">' + '<img id="currentscreenshot" src="http://kjkpub.s3.amazonaws.com/blog/vack/vack-main.png"></a>';
$("shot2").innerHTML = html;
//$("buildtime").innerHTML = vackBuiltOn;
}
window.onload = myInit;
</script>
</head>
<body>
<!--
Latest build of VisualAck for mac: <span id=url></span>, built on <span id=buildtime></span>.
<a href="http://kjkpub.s3.amazonaws.com/vack/relnotes.html">Release notes</a> (as <a href="http://kjkpub.s3.amazonaws.com/vack/relnotes.xml">rss feed</a>)
-->
<div class="lightbox">
<table cellpadding="8" cellspacing="0" border="0">
<tr>
<td valign=top>
<span class="header">Search in files. Quickly.</span>
<p>
VisualAck is like grep (or ack), except faster and with UI. For Mac.
</p>
<span id=url></span> <span id=ver></span><br><br>
<span class="smaller">Requires Mac OS X 10.5 or later.</span>
</td>
<td valign=top>
<span id=shot2></span>
</td>
</tr>
<tr>
<td></td>
<td align=center>
<a href="#" onclick="return selectMain();"><img src="http://kjkpub.s3.amazonaws.com/blog/vack/vack-main-mini.png"></a>
<a href="#" onclick="return selectResult();"><img src="http://kjkpub.s3.amazonaws.com/blog/vack/vack-results-mini.png"></a>
</td>
</tr>
</table>
</div>
<div class="lightbox">
<p>
<span class="header">Command-line arguments</span>
</p>
<p>
<code>vack [OPTIONS] PATTERN [FILE/DIRECTORY]</code>
</p>
Available options:
<ul>
<li><code>-</code> - invokes UI (instead of printing the results to stdout)</li>
<li><code>-i, --ignore-case</code> - case insensitive search</li>
<li><code>--[no]color</code> - highlight the matching text (default: on unless output is redirected)</li>
<li><code>--[no]clour</code> - same as --no[color]</li>
<li><code>--help</code> - show help</li>
<li><code>--version</code> - show version</li>
</ul>
<p>
Examples:
<ul>
<li><code>vack foo</code> - search current directory and its subdirectories for files containing 'foo'</li>
<li><code>vack - foo</code> - invoke the UI to search current directory and its subdirectories for files containing 'foo'</li>
<li><code>vack foo bar.txt</code> - search file 'bar.txt' for text 'foo', case sensitive.</li>
<li><code>vack -i foo dir1 ~/dir2</code> - search text 'foo', case insensitive in directory dir1 and ~/dir2.</li>
</ul>
</p>
<p>
Note: you must run VisualAck at least once in order for the <code>vack</code> executable to be added to <code>$PATH</code>.
</p>
</div>
<div class="lightbox">
<p>
<span class="header">How is VisualAck different than grep?</span>
</p>
<p>For one, it has both command-line version and UI.
</p>
<p>In behavior, VisualAck is modelled after <a href="http://betterthangrep.com/">ack</a> (hence the name),
except it's written as a native Cocoa application (as opposed to a perl script).</p>
Two main differences from grep are:
<ul>
<li>by default it recurses into subdirectories</li>
<li>it's faster and gives more useful results by only searching files of known types and skipping
certain directories, like .git or .svn, that usually don't contain information user is interested
in</li>
</ul>
<p>
VisualAck aims to support the same features as ack, but that reality is still far away. At the moment
it only supports the basic options.
</p>
</div>
<div class="lightbox">
<p>
<span class="header">Feedback</span>
</p>
<p>If you have suggestions on how to improve VisualAck, please
<a href="http://visualack.uservoice.com">visit forums</a>
</p>
</div>
<script type="text/javascript">
var uservoiceOptions = {
/* required */
key: 'visualack',
host: 'visualack.uservoice.com',
forum: '34392',
showTab: true,
/* optional */
alignment: 'left',
background_color:'#f00',
text_color: 'black',
hover_color: '#06C',
lang: 'en'
};
function _loadUserVoice() {
var s = document.createElement('script');
s.setAttribute('type', 'text/javascript');
s.setAttribute('src', ("https:" == document.location.protocol ? "https://" : "http://") + "cdn.uservoice.com/javascripts/widgets/tab.js");
document.getElementsByTagName('head')[0].appendChild(s);
}
_loadSuper = window.onload;
window.onload = (typeof window.onload != 'function') ? _loadUserVoice : function() { _loadSuper(); _loadUserVoice(); };
</script>
<hr>
<center>Written by <a href="/">Krzysztof Kowalczyk</a></center>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-194516-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
})();
</script>
</body>
</html>
Jump to Line
Something went wrong with that request. Please try again.