Tail for Win32 - the Windows version of the UNIX
'tail -f' command.
Tail for Win32 is used to monitor changes to files; displaying the changed
lines in realtime. This makes Tail ideal for watching log files.
Tail has a plugin architecture, which allows notifications to occur when
certain keywords are detected in monitored files. At the moment a MAPI plugin is
available, and work is in progress on an SMTP version.
Features
A few features of Tail:
Watch multiple files in realtime
Detect keyword matches, and highlight occurences
Send mail notifications on keyword matches by SMTP or MAPI
Plugin architecture allows you to write specialised handlers
Can process files of any size on all types of drive (local or
networked)
Standard forms also tend to have standard answers, such as a day of the week, or a month, so a drop-down box with pre-filled selections would be useful.
Assume that you have an input cell in which the user is supposed to enter a day of the week: Monday, Tuesday, Wednesday etc.
Enter the items for your drop-down list into a list on the worksheet, one item per cell. In this example, I'll assume that the month names start in cell G1 and extend down to G7, but normally you would put them outside of the readable area. In Excel terminology, a rectangular group of cells (such as G1 to G7) is called a range.
Select the cell that will contain the drop-down list. If you'd like more than one cell to display the same list, just select them all now rather than setting them up one at a time. (Click and drag to select a range; hold down Ctrl while you click to select non-adjacent cells.)
Select the cell where you want the drop-down list.
On the Data tab, in the Data Tools group, click Data Validation
Excel Data validation
In the Allow box, click List.
To specify the location of the list of valid entries, enter a reference to your list in the Source box in this case it's (=$G$1:$G$7) or click in the Source box and then select your list in the current spread sheet to populate the reference automatically.
Make sure that the In-cell dropdown check box is selected.
To specify whether the cell can be left blank, select or clear the Ignore blank check box.
You can go one stage further and display an input message when the cell is clicked.
Click the Error Alert tab, and make sure that the Show error alert after invalid data is entered check box is selected.
Select one of the following options for the Style box:
To display an information message that does not prevent entry of invalid data, click Information.
To display a warning message that does not prevent entry of invalid data, click Warning.
To prevent entry of invalid data, click Stop.
Type the title and text for the message (up to 225 characters).
Adding an input box to a drop down list in Excel
Note If you don't enter a title or text, the title defaults to "Microsoft Excel" and the message to: "The value you entered is not valid. A user has restricted values that can be entered into this cell."
After performing these steps, you'll see a drop-down arrow whenever any of the drop-down cells you just defined is "active" (that is, selected and awaiting input). Click the arrow and choose a month from the list. If you try to type something else into the cell, you'll get scolded in the form of a pop-up message.
If you'd like to provide your own wording for invalid entries, use the Error Alert tab in the Data Validation dialog box, and enter your own text in the 'Error message' field.
If your list of items is relatively small, you can enter the list items directly into the Source field. Just separate each list item with a comma.
Cheat Sheet: Must-Know Excel Tips and TricksPart -I
While Microsoft Excel may not exactly have a reputation as the sexiest computer application in the PC world, it is a useful one. And since chances are good you’ll need to use it over the course of your scholarly, business or personal life, having a few tips and tricks up your sleeve is a good plan.
Jump to a Cell
To the left of the formula bar, you’ll find a cell listing that changes to show you exactly which row and cell you’re working in. By clicking on this area, you can type in a specific column number and row name to jump directly to that cell.
Fix Hinky Numbers
Occasionally, Excel will erroneously store certain numbers (especially 0) as text. This can really become a hassle if you’re trying to manipulate information within cells that contain those numbers. To fix the same error across the board, insert a new column. Next, enter a “1” into any empty cell in the new column. From here, you can copy the “1” you just typed, copy it to your clipboard and choose the numbers from the range you are looking to fix. From the drop-down menu under Paste, choose Paste Special. You can now pick options like Multiple or Values.
Ensure Empty Cells
Likewise, Excel will sometimes neglect to properly clear a cell. That is, a cell that should be empty isn’t. Regardless of whether or not anything actually appears in the cell, it doesn’t register as empty, making it impossible to properly use commands and formulas within it. To fix this spreadsheet faux pas, select the affected cells all the way down to the final row. Click the Delete key, and you should be good to go.
Delete Blank Rows and Columns
Sometimes, you’ll find your table data separated by blank rows or columns. Luckily, cleaning up this problem is quick and easy. Simply select a column and hot F5. From there, you can choose Special and then Blanks. Once these blank cells are zeroed in on, you can go to the Home tab and choose Delete.
Show Formulas
If you’re dealing with a giant spreadsheet full of complicated formulas, it’s often imperative to take a look at not just your final values, but how you got there. Hitting CTRL and ~ simultaneously will change your spreadsheet to show the formulas within each section. Use the same combination to go back to viewing your values.
1. Before doing anything to a document, type
the following command followed by a carriage return: :set showmode
2. VI is CaSe SEnsItiVe!!! So make sure Caps
Lock is OFF.
Starting
and Ending VI
Starting
VI
vifilename
Editsfilename
vi
-rfilename
Edits
last save version offilenameafter a crash
vi
+nfilename
Editsfilenameand places curser
at linen
vi
+filename
Editsfilenameand places curser
on last line
vi
+/stringfilename
Editsfilenameand places curser
on first occurance ofstring
vifilenamefile2...
Editsfilename, then editsfile2... After the save,
use :n
Ending
VI
ZZ
or :wq or :x
Saves
and exits VI
:w
Saves
current file but doesn't exit
:w!
Saves
current file overriding normal checks but doesn't exit
:wfile
Saves
current asfilebut doesn't exit
:w!file
Saves
tofileoverriding normal checks but doesn't
exit
:n,mwfile
Saves
linesnthroughmtofile
:n,mw >>file
Saves
linesnthroughmto the end offile
:q
Quits
VI and may prompt if you need to save
:q!
Quits
VI and without saving
:e!
Edits
file discarding any unsaved changes (starts over)
:we!
Saves
and continues to edit current file
Status
:.=
Shows
current line number
:=
Shows
number of lines in file
Control-G
Shows
filename, current line number, total lines in file, and % of file location
l
Displays
tab (^l) backslash (\) backspace (^H) newline ($) bell (^G) formfeed (^L^) of
current line
Modes
Vi
has two modes insertion mode and command mode. The editor begins in command
mode, where the cursor movement and text deletion and pasting occur.
Insertion mode begins upon entering an insertion or change command. [ESC]
returns the editor to command mode (where you can quit, for example by typing
:q!). Most commands execute as soon as you type them except for
"colon" commands which execute when you press the ruturn key.
Inserting
Text
i
Insert
before cursor
I
Insert
before line
a
Append
after cursor
A
Append
after line
o
Open
a new line after current line
O
Open
a new line before current line
r
Replace
one character
R
Replace
many characters
CTRL-vchar
While
inserting, ignores special meaning of char (e.g., for inserting characters
like ESC and CTRL) until ESC is used
:rfile
Readsfileand inserts it
after current line
:nrfile
Readsfileand inserts it
after linen
CTRL-i
or TAB
While
inserting, inserts one shift width
Things to do while in Insert Mode:
CTRL-h
or Backspace
While
inserting, deletes previous character
CTRL-w
While
inserting, deletes previous word
CTRL-x
While
inserting, deletes to start of inserted text
CTRL-v
Take
the next character literally. (i.e. To insert a Control-H, type Control-v
Control-h)
Motion
h
Move
left
j
Move
down
k
Move
up
l
Move
right
Arrow
Keys
These
do work, but they may be too slow on big files. Also may have unpredictable
results when arrow keys are not mapped correctly in client.
w
Move
to next word
W
Move
to next blank delimited word
b
Move
to the beginning of the word
B
Move
to the beginning of blank delimted word
^
Moves
to the first non-blank character in the current line
+
or
Moves
to the first character in the next line
-
Moves
to the first non-blank character in the previous line
e
Move
to the end of the word
E
Move
to the end of Blank delimited word
(
Move
a sentence back
)
Move
a sentence forward
{
Move
a paragraph back
}
Move
a paragraph forward
[[
Move
a section back
]]
Move
a section forward
0
or |
Move
to the begining of the line
n|
Moves
to the columnnin the current line
$
Move
to the end of the line
1G
Move
to the first line of the file
G
Move
to the last line of the file
nG
Move
tonth line of the file
:n
Move
tonth line of the file
fc
Move
forward toc
Fc
Move
back toc
H
Move
to top of screen
nH
Moves
tonth line from the top of the screen
M
Move
to middle of screen
L
Move
to botton of screen
nL
Moves
tonth line from the bottom of the screen
Control-d
Move
forward ½ screen
Control-f
Move
forward one full screen
Control-u
Move
backward ½ screen
Control-b
Move
backward one full screen
CTRL-e
Moves
screen up one line
CTRL-y
Moves
screen down one line
CTRL-u
Moves
screen up ½ page
CTRL-d
Moves
screen down ½ page
CTRL-b
Moves
screen up one page
CTRL-f
Moves
screen down one page
CTRL-I
Redraws
screen
z
z-carriage
return makes the current line the top line on the page
nz
Makes
the linenthe top line on the
page
z.
Makes
the current line the middle line on the page
nz.
Makes
the linenthe middle line on
the page
z-
Makes
the current line the bottom line on the page
nz-
Makes
the linenthe bottom line on
the page
%
Move
to associated ( ), { }, [ ]
Deleting
Text
Almost
all deletion commands are performed by typing d followed by a motion. For
example, dw deletes a word. A few other deletes are:
x
Delete
character to the right of cursor
nx
Deletes
n characters starting with current; omitting n deletes current character only
X
Delete
character to the left of cursor
nX
Deletes
previous n characters; omitting n deletes previous character only
D
Delete
to the end of the line
d$
Deletes
from the cursor to the end of the line
dd
or :d
Delete
current line
ndw
Deletes
the nextnwords starting with
current
ndb
Deletes
the previousnwords starting with
current
ndd
Deletesnlines beginning
with the current line
:n,md
Deletes
linesnthroughm
dMotion_cmd
Deletes
everything included in theMotion Command(e.g., dG would
delete from current position to the end of the file, and d4 would delete to
the end of the fourth sentence).
"np
Retrieves
the lastnth delete (last 9
deletes are kept in a buffer)
"1pu.u.
Scrolls
through the delete buffer until the desired delete is retrieved (repeat u.)
Yanking
Text
Like
deletion, almost all yank commands are performed by typing y followed by a
motion. For example, y$ yanks to the end of the line. Two other yank commands
are:
yy
Yank
the current line
:y
Yank
the current line
nyy
ornY
Placesnlines in the
buffer-copies
yMotion_cmd
Copies
everything from the curser to theMotion Command(e.g., yG would
copy from current position to the end of the file, and y4 would copy to the
end of the fourth sentence)
"(a-z)nyy or "(a-z)ndd
Copies
or cuts (deletes)nlines into a named
bufferathroughz; omitting n works
on current line
Changing
text
The
change command is a deletion command that leaves the editor in insert mode.
It is performed by typing c followed by a motion. For example cw changes a
word. A few other change commands are:
C
Change
to the end of the line
cc
or S
Change
the whole line until ESC is pressed
xp
Switches
character at cursor with following character
stext
Substitutes
text for the current character until ESC is used
cwtext
Changes
current word to text until ESC is used
Ctext
Changes
rest of the current line to text until ESC is used
cMotion_cmd
Changes
to text from current position toMotion Commanduntil ESC is used
<<
or >>
Shifts
the line left or right (respectively) by one shift width (a tab)
n<<
orn>>
Shiftsnlines left or right
(respectively) by one shift width (a tab)
<Motion_cmdor >Motion_cmd
Use
withMotion Commandto shift multiple
lines left or right
Putting
text
p
Put
after the position or after the line
P
Put
before the poition or before the line
"(a-z)p or "(a-z)P
Pastes
text from a named bufferathroughzafter or before the
current line
Buffers
Named
buffers may be specified before any deletion, change, yank or put command.
The general prefix has the form "c where c is any lowercase character.
for example, "adw deletes a word into buffer a. It may thereafter be put
back into text with an appropriate "ap.
Markers
Named
markers may be set on any line in a file. Any lower case letter may be a
marker name. Markers may also be used as limits for ranges.
mc
Set
markercon this line
`c
Go
to beginning of markercline.
'c
Go
to first non-blank character of markercline.
Search
for strings
/string
Search
forward forstring
?string
Search
back forstring
n
Search
for next instance ofstring
N
Search
for previous instance ofstring
%
Searches
to beginning of balancing ( ) [ ] or { }
fc
Searches
forward in current line tochar
Fc
Searches
backward in current line tochar
tc
Searches
forward in current line to character before char
Tchar
Searches
backward in current line to character before char
?str
Finds
in reverse for str
:set
ic
Ignores
case when searching
:set
noic
Pays
attention to case when searching
:n,ms/str1/str2/opt
Searches
fromntomforstr1; replacesstr1tostr2; using opt-opt can
be g for global change, c to confirm change (y to acknowledge,to suppress), and p
to print changed lines
&
Repeats
last :s command
:g/str/cmd
Runscmdon all lines that
containstr
:g/str1/s/str2/str3/
Finds
the line containingstr1, replacesstr2withstr3
:v/str/cmd
Executescmdon all lines that
do not matchstr
,
Repeats,
in reverse direction, last / or ? search command
Replace
The
search and replace function is accomplished with the :s command. It is
commonly used in combination with ranges or the :g command (below).
:s/pattern/string/flags
Replacepatternwithstringaccording toflags.
g
Flag
- Replace all occurences of pattern
c
Flag
- Confirm replaces.
&
Repeat
last :s command
Regular
Expressions
.
(dot)
Any
single character except newline
*
zero
or more occurances of any character
[...]
Any
single character specified in the set
[^...]
Any
single character not specified in the set
\<
Matches
beginning of word
\>
Matches
end of word
^
Anchor
- beginning of the line
$
Anchor
- end of line
\<
Anchor
- begining of word
\>
Anchor
- end of word
\(...\)
Grouping
- usually used to group conditions
\n
Contents
ofnth grouping
\
Escapes
the meaning of the next character (e.g., \$ allows you to search for $)
\\
Escapes
the \ character
[...] - Set Examples
[A-Z]
The
SET from Capital A to Capital Z
[a-z]
The
SET from lowercase a to lowercase z
[0-9]
The
SET from 0 to 9 (All numerals)
[./=+]
The
SET containing . (dot), / (slash), =, and +
[-A-F]
The
SET from Capital A to Capital F and the dash (dashes must be specified first)
[0-9
A-Z]
The
SET containing all capital letters and digits and a space
[A-Z][a-zA-Z]
In
the first position, the SET from Capital A to Capital Z
In the second character position, the SET containing all letters
[a-z]{m}
Look
formoccurances of the
SET from lowercase a to lowercase z
[a-z]{m,n}
Look
for at leastmoccurances, but no
more thannoccurances of the
SET from lowercase a to lowercase z
Regular Expression Examples
/Hello/
Matches
if the line contains the value Hello
/^TEST$/
Matches
if the line contains TEST by itself
/^[a-zA-Z]/
Matches
if the line starts with any letter
/^[a-z].*/
Matches
if the first character of the line is a-z and there is at least one more of
any character following it
/2134$/
Matches
if line ends with 2134
/\(21|35\)/
Matches
is the line contains 21 or 35
Note the use of ( ) with the pipe symbol to specify the 'or' condition
/[0-9]*/
Matches
if there are zero or more numbers in the line
/^[^#]/
Matches
if the first character is not a # in the line
Notes:
1. Regular expressions are case sensitive
2. Regular expressions are to be used wherepatternis specified
Counts
Nearly
every command may be preceded by a number that specifies how many times it is
to be performed. For example, 5dw will delete 5 words and 3fe will move the
cursor forward to the 3rd occurence of the letter e. Even insertions may be
repeated conveniently with this method, say to insert the same line 100
times.
Ranges
Ranges
may precede most "colon" commands and cause them to be executed on
a line or lines. For example :3,7d would delete lines 3-7. Ranges are
commonly combined with the :s command to perform a replacement on several
lines, as with :.,$s/pattern/string/g to make a replacement from the current
line to the end of the file.
:n,m
Range
- Linesn-m
:.
Range
- Current line
:$
Range
- Last line
:'c
Range
- Markerc
:%
Range
- All lines in file
:g/pattern/
Range
- All lines that containpattern
Shell
Functions
:!
cmd
Executes
shell command cmd; you can add these special characters to indicate:% name of
current file# name of last file edited
!!
cmd
Executes
shell command cmd, places output in file starting at current line
:!!
Executes
last shell command
:r!
cmd
Reads
and inserts output from cmd
:f
file
Renames
current file to file
:w
!cmd
Sends
currently edited file to cmd as standard input and execute cmd
:cd
dir
Changes
current working directory to dir
:sh
Starts
a sub-shell (CTRL-d returns to editor)
:so
file
Reads
and executes commands in file (file is a shell script)
!Motion_cmd
Sends
text from current position toMotion Commandto shell commandcmd
!}sort
Sorts
from current position to end of paragraph and replaces text with sorted text
Files
:wfile
Write
tofile
:rfile
Readfilein after line
:n
Go
to next file
:p
Go
to previous file
:efile
Editfile
!!program
Replace
line with output fromprogram
VI
Settings
--noto
Note: Options given are default. To
change them, enter type :set option to turn them on or :set nooptioni to
turn them off.To make them execute every time you open VI, create a file in
your HOME directory called .exrc and type the options without the colon (:)
preceding the option
Set
Default
Description
:set
ai
noai
Turns
on auto indentation
:set
all
--
Prints
all options to the screen
:set
ap
aw
Prints
line after d c J m :s t u commands
:set
aw
noaw
Automatic
write on :n ! e# ^^ :rew ^} :tag
:set
bf
nobf
Discards
control characters from input
:set
dir=tmp
dir
= /tmp
Setstmpto directory or
buffer file
:set
eb
noed
Precedes
error messages with a bell
:set
ed
noed
Precedes
error messages with a bell
:set
ht=
ht
= 8
Sets
terminal hardware tabs
:set
ic
noic
Ignores
case when searching
:set
lisp
nolisp
Modifies
brackets for Lisp compatibility.
:set
list
nolist
Shows
tabs (^l) and end of line ($)
:set
magic
magic
Allows
pattern matching with special characters
:set
mesg
mesg
Allows
others to send messages
:set
nooption
Turns
offoption
:set
nu
nonu
Shows
line numbers
:set
opt
opt
Speeds
output; eliminates automatic RETURN
:set
para=
para
= LIlPLPPPQPbpP
macro
names that start paragraphs for { and } operators
:set
prompt
prompt
Prompts
for command input with :
:set
re
nore
Simulates
smart terminal on dumb terminal
:set
remap
remap
Accept
macros within macros
:set
report
noreport
Indicates
largest size of changes reported on status line
:set
ro
noro
Changes
file type to "read only"
:set
scroll=n
scroll
= 11
set
n lines for CTRL-d and z
:set
sh=shell_path
sh
= /bin/sh
set
shell escape (default is /bin/sh) toshell_path
:set
showmode
nosm
Indicates
input or replace mode at bottom
:set
slow
slow
Pospone
display updates during inserts
:set
sm
nosm
Show
matching { or ( as ) or } is typed
:set
sw=n
sw
= 8
Sets
shift width toncharacters
:set
tags=x
tags
= /usr/lib/tags
Path
for files checked for tags (current directory included in default)
:set
term
$TERM
Prints
terminal type
:set
terse
noterse
Shorten
messages with terse
:set
timeout
Eliminates
one-second time limit for macros
:set
tl=n
tl
= 0
Sets
significance of tags beyondncharacters (0 means
all)
:set
ts=n
ts
= 8
Sets
tab stops tonfor text input
:set
wa
nowa
Inhibits
normal checks before write commands
:set
warn
warn
Warns
"no write since last change"
:set
window=n
window
= n
Sets
number of lines in a text window ton
:set
wm=n
wm
= 0
Sets
automatic wraparoundnspaces from right
margin.
:set
ws
ws
Sets
automatic wraparoundnspaces from right
margin.
Key
Mapping
NOTE: Map allows you to define
strings of VI commands. If you create a file called ".exrc" in your
home directory, any map or set command you place inside this file will be
executed every time you run VI. To imbed control characters like ESC in the
macro, you need to precede them with CTRL-v. If you need to include quotes
("), precede them with a \ (backslash). Unused keys in vi are: K V g q v
* = and the function keys. Example (The actual VI commands are in
blue): :map v /I CTRL-v ESCdwiYou
CTRL-vESC ESC Description: When v is pressed, search for
"I" (/I ESC), delete word (dw), and insert "You" (iYou
ESC). CTRL-v allows ESC to be inserted
:mapkeycmd_seq
Defineskeyto runcmd_seqwhen pressed
:map
Displays
all created macros on status line
:unmap
key
Removes
macro definition for key
:abstrstring
Whenstris input, replaces
it withstring
:ab
Displays
all abbreviations
:unastr
Unabbreviatesstr
Other
~
Toggle
upper and lower case
J
Join
lines
nJ
Joins
the nextnlines together;
omitting n joins the beginning of the next line to the end of the current
line
.
Repeat
last text-changing command
u
Undo
last change (Note: u in combination with . can allow multiple levels of undo
in some versions)
U
Undo
all changes to line
;
Repeats
last f F t or T search command
:N
or :E
You
can open up a new split-screen window in (n)vi and then use ^w to switch
between the two.