604 lines
18 KiB
HTML
604 lines
18 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|||
|
<html>
|
|||
|
<head>
|
|||
|
<title>More 2 Cent Tips & Tricks Issue 11</title>
|
|||
|
</head>
|
|||
|
|
|||
|
<BODY BACKGROUND="../gx/spirbind.gif">
|
|||
|
<table>
|
|||
|
<tr><td><img src="../gx/blank.gif" width=50></td>
|
|||
|
<td>
|
|||
|
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
|
|||
|
"Linux Gazette...<I>making Linux just a little less scary!</I>
|
|||
|
"<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
|
|||
|
<hr>
|
|||
|
|
|||
|
<!-- QUICK TIPS SECTION ================================================== -->
|
|||
|
<center><H1><A NAME="tips"><IMG ALIGN=MIDDLE ALT="" SRC="../gx/twocent.gif">More 2¢ Tips!
|
|||
|
</A></H1> <BR>
|
|||
|
Send Linux Tips and Tricks to <A HREF="mailto:gazette@ssc.com">
|
|||
|
gazette@ssc.com</A>.</center>
|
|||
|
|
|||
|
<p><hr><p>
|
|||
|
<H3>Contents:</H3>
|
|||
|
<ul>
|
|||
|
<li><a HREF="#xterm">Another XTerm Title Trick</a>
|
|||
|
<li><a HREF="#file">File Decompression</a>
|
|||
|
<li><a HREF="#quick">Quick Tricks from John Fisk</a>
|
|||
|
<li><a HREF="#two">Two Tips for the Price of One</a>
|
|||
|
<li><a HREF="#emacs">The Ultimate Emacs Control M Trick</a>
|
|||
|
<li><a HREF="#vi">VI Trick</a>
|
|||
|
<li><a HREF="#xdm">XDM Replacement</a>
|
|||
|
</ul>
|
|||
|
|
|||
|
<P> <hr> <P>
|
|||
|
<!--================================================================-->
|
|||
|
|
|||
|
</td></tr>
|
|||
|
</table>
|
|||
|
<a name="xterm">
|
|||
|
<p></a>
|
|||
|
<table>
|
|||
|
<td><img src="../gx/blank.gif" width=50></td>
|
|||
|
<td>
|
|||
|
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">Another XTerm
|
|||
|
Titlebar Trick</H3>
|
|||
|
<P>
|
|||
|
Date: Wed, 2 Oct 1996 16:11:35 -0700 (PDT)<BR>
|
|||
|
From: Jonathan Gross <BR>
|
|||
|
<P>
|
|||
|
I have a quick stupid shell script to change the titlebar on the
|
|||
|
fly:
|
|||
|
<PRE>
|
|||
|
#!/bin/bash
|
|||
|
echo "]0;$1"
|
|||
|
</PRE>
|
|||
|
where the ^[ is done in Emacs by typing C-q Esc and the ^G is done
|
|||
|
by typing C-q C-g, or in vi by typing C-v instead of C-q before each
|
|||
|
control sequence.
|
|||
|
<P>
|
|||
|
Then you type:
|
|||
|
<PRE>
|
|||
|
linux$ titlebar "string for window title"
|
|||
|
</PRE>
|
|||
|
Where "titlebar" is the name of your shell script. Dumb, simple,
|
|||
|
but easy to use...
|
|||
|
<PRE>
|
|||
|
Jonathan Gross
|
|||
|
Specialized Systems Consultants, 206-782-7733
|
|||
|
"A jewel mine of courtesies and a living casket of diplomacy"
|
|||
|
</PRE>
|
|||
|
|
|||
|
<P> <hr> <P>
|
|||
|
</td></tr>
|
|||
|
<tr>
|
|||
|
</table>
|
|||
|
<a name="file">
|
|||
|
<p></a>
|
|||
|
<table>
|
|||
|
<tr>
|
|||
|
<td><img src="../gx/blank.gif" width=50></td>
|
|||
|
<td>
|
|||
|
|
|||
|
<!-- ===================================================================== -->
|
|||
|
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">File Decompressing</H3>
|
|||
|
|
|||
|
<P>
|
|||
|
Date: Fri, 27 Sep 1996 08:32:37 +0200 (MET DST) <BR>
|
|||
|
From: Xabier Vazquez Gallardo, <A HREF="mailto:sixconse@sc.ehu.es">sixconse@sc.ehu.es </A><BR>
|
|||
|
<P>
|
|||
|
Hi there:
|
|||
|
<P>
|
|||
|
Here is a script I wrote two years ago, but I think it can
|
|||
|
be useful for everybody. It can also help in learning shell script
|
|||
|
programming.
|
|||
|
<P>
|
|||
|
The function of this script is to help ppl decompressing
|
|||
|
compressed files with tar, gzip, compress, arj, zip, etc, and any
|
|||
|
combination of these compression tools. Just type "gus filename" and the
|
|||
|
script will call the necessary decompression program.
|
|||
|
<P>
|
|||
|
Thanx in advance, <BR>
|
|||
|
Xabier Vazquez Gallardo
|
|||
|
<PRE>
|
|||
|
------------ 8< --------- 8< ---------- 8< ----------- 8< ------------
|
|||
|
#!/bin/sh
|
|||
|
# If you are under ULTRIX use /bin/sh5 instead of /bin/sh (too buggy)
|
|||
|
################################################################################
|
|||
|
# @(#)gus,v 2.8 11/22/1994 (c) XaBier Vazquez Gallardo <sixconse@sc.ehu.es>
|
|||
|
# You'll need this external programs:
|
|||
|
# gzip, tar, sed, awk, unarj, lha, zoo, unzip, test, pgp, uncompress, echo and
|
|||
|
# uudecode. If you don't have all those programs maybe gus won't work.
|
|||
|
#
|
|||
|
# Program Description:
|
|||
|
# Decompress all this kind of files and combinations of them:
|
|||
|
# .arc .zip .ZIP .arj .zoo .lzh .lha .lzh .Z .z .tar .tgz .shar .pgp
|
|||
|
# .[1-8ln] .man .uu and .uue
|
|||
|
# * Man type files will be displayed
|
|||
|
#
|
|||
|
# Please send suggestions or gub reports to XaBi <sixconse@sc.ehu.es>
|
|||
|
# Sorry about my English, but it's better than Spanish, isn't it?
|
|||
|
################################################################################
|
|||
|
gus_version="V2.8"
|
|||
|
gus_date="11/22/1994"
|
|||
|
|
|||
|
# Show a long help :)
|
|||
|
do_help ()
|
|||
|
{
|
|||
|
echo
|
|||
|
echo This script helps you decompressing Unix archives compressed with compress,
|
|||
|
echo gzip, tar, shar, lha, arj, zip, zoo, pgp, arc and uuencode. It also formats
|
|||
|
echo manual pages. Now you don\'t need to type all those long lines to decompress
|
|||
|
echo a tar + gz archive, only type \'gus file\' and it will do all the work.
|
|||
|
echo "GUS knows this extensions and combinations of them (tar + gzip, etc):"
|
|||
|
echo ".Z .z .zip .arj .zoo .arc .lha .lz .pgp .tar .tgz .shar .[1-8ln] .man .uu .uue"
|
|||
|
echo
|
|||
|
echo "USAGE: '`basename $0` [-h | [[-r | -rf] f1 [f2] ...]' will decompress f1, f2, ..."
|
|||
|
echo " '-h' show you this help"
|
|||
|
echo " '-r' remove with prompt compressed file after decompress it"
|
|||
|
echo " '-rf' remove without prompt compressed file after decompress it"
|
|||
|
echo "ie: '`basename $0` file1 -rf file2 file3' will do this:"
|
|||
|
echo " decompress file[123] and remove file[23] without any ask"
|
|||
|
echo " *WARNING* Be careful with option '-rf'"
|
|||
|
exit 0
|
|||
|
}
|
|||
|
|
|||
|
# Find a file in your path
|
|||
|
# input : "filename"
|
|||
|
# output: $filresult=full_path/filename || $filename="" + error message
|
|||
|
# ie : findfile zip
|
|||
|
findfile ()
|
|||
|
{
|
|||
|
sifs=$IFS
|
|||
|
IFS=:
|
|||
|
fileresult=""
|
|||
|
for dir in $PATH; do
|
|||
|
test -z "$dir" && dir=.
|
|||
|
if [ -x $dir/$1 ] ; then
|
|||
|
fileresult="$dir/$1"
|
|||
|
break
|
|||
|
fi
|
|||
|
done
|
|||
|
IFS=$sifs
|
|||
|
test -z "$fileresult" && echo ERROR: Can\'t find $1
|
|||
|
}
|
|||
|
|
|||
|
# Change status variables
|
|||
|
# input: " | decompress_command_line" \
|
|||
|
# " decompress_program_name +" \
|
|||
|
# 1 (if gus must create a decompressed file) || 0 (if not) \
|
|||
|
# 1 (if decompress program can pipe it result) || 0 (if not) \
|
|||
|
# 1 (if decompress program accepts stdin pipes) || 0 (if not)
|
|||
|
# output: none
|
|||
|
# ie : changevars " | tar xvfo -" " tar +" 0 1 1
|
|||
|
changevars ()
|
|||
|
{
|
|||
|
command=$command$1
|
|||
|
message=$message$2
|
|||
|
create=$3
|
|||
|
exit_f=$4
|
|||
|
do_cat=$5
|
|||
|
}
|
|||
|
|
|||
|
# Ask Y/N before remove a file
|
|||
|
# input : "filename"
|
|||
|
# output : $removeit = 0 (if answer is no) || 1 (if is yes)
|
|||
|
# ie : makeask /usr/local/foo.bar.tar
|
|||
|
makeask ()
|
|||
|
{
|
|||
|
exit_ask=0
|
|||
|
while [ $exit_ask = 0 ] ; do
|
|||
|
echo "Do you want to remove '$1' [Y/N]? \c"
|
|||
|
read yesno
|
|||
|
case $yesno in
|
|||
|
y* | Y*)
|
|||
|
removeit=1
|
|||
|
exit_ask=1
|
|||
|
;;
|
|||
|
n* | N*)
|
|||
|
removeit=0
|
|||
|
exit_ask=1
|
|||
|
;;
|
|||
|
esac
|
|||
|
done
|
|||
|
}
|
|||
|
|
|||
|
# Check program parameters and count files
|
|||
|
# input : "command_line_params"
|
|||
|
# output : $total_files=num_of_files_to_process || or help_screen
|
|||
|
# ie : check_params -rf foo.tar
|
|||
|
check_params ()
|
|||
|
{
|
|||
|
for i in $*
|
|||
|
do
|
|||
|
case $i in
|
|||
|
-rf | -r)
|
|||
|
total_files=`expr $total_files - 1`
|
|||
|
;;
|
|||
|
-h)
|
|||
|
do_help
|
|||
|
;;
|
|||
|
esac
|
|||
|
done
|
|||
|
}
|
|||
|
|
|||
|
echo GUS $gus_version [$gus_date] General Unpack Shell for Un*x \(c\) XaBi
|
|||
|
|
|||
|
total_files=$#
|
|||
|
|
|||
|
check_params $*
|
|||
|
|
|||
|
if [ $total_files = 0 ] ; then
|
|||
|
echo ERROR: not enough params
|
|||
|
echo "TRY : `basename $0` -h"
|
|||
|
exit 1
|
|||
|
fi
|
|||
|
|
|||
|
if [ $total_files = 1 ] ; then
|
|||
|
echo [ $total_files ] file to process ...
|
|||
|
else
|
|||
|
echo [ $total_files ] files to process ...
|
|||
|
fi
|
|||
|
|
|||
|
removefile=0
|
|||
|
promptbefore=0
|
|||
|
|
|||
|
for file_tmp in $*
|
|||
|
do
|
|||
|
case $file_tmp in
|
|||
|
-rf)
|
|||
|
removefile=1
|
|||
|
promptbefore=0
|
|||
|
continue
|
|||
|
;;
|
|||
|
-r)
|
|||
|
removefile=1
|
|||
|
promptbefore=1
|
|||
|
continue
|
|||
|
;;
|
|||
|
esac
|
|||
|
if test -f $file_tmp ; then
|
|||
|
exit_f=0
|
|||
|
command=""
|
|||
|
message=""
|
|||
|
do_cat=1
|
|||
|
create=1
|
|||
|
file=`basename $file_tmp`
|
|||
|
while [ $exit_f -eq 0 ] ; do
|
|||
|
old_file=$file
|
|||
|
extension=`echo $file | sed -e 's/.*\.//'`
|
|||
|
if [ "$extension" = "$file" ] ; then
|
|||
|
extension=""
|
|||
|
else
|
|||
|
file=`echo $file | sed -e s/\.$extension$//`
|
|||
|
fi
|
|||
|
case $extension in
|
|||
|
tar)
|
|||
|
changevars " | tar xvfo -" " tar +" 0 1 1
|
|||
|
;;
|
|||
|
Z)
|
|||
|
changevars " | uncompress" " compress +" 1 0 1
|
|||
|
;;
|
|||
|
z | gz)
|
|||
|
changevars " | gzip -d" " gzip +" 1 0 1
|
|||
|
;;
|
|||
|
tgz)
|
|||
|
changevars " | gzip -d | tar xvfo -" " tar + gzip +" 0 1 1
|
|||
|
;;
|
|||
|
uu | uue)
|
|||
|
changevars " | uudecode" " uuencode +" 0 1 1
|
|||
|
;;
|
|||
|
shar)
|
|||
|
changevars " | sh" " shar +" 0 1 1
|
|||
|
;;
|
|||
|
zip | ZIP)
|
|||
|
if [ -z "$command" ] ; then
|
|||
|
findfile unzip
|
|||
|
test ! -z "$fileresult" && changevars $fileresult " zip +" 0 1 0
|
|||
|
else
|
|||
|
echo ERROR: Can\'t pipe to unzip. File partialy decompressed.
|
|||
|
fi
|
|||
|
exit_f=1
|
|||
|
;;
|
|||
|
arj | ARJ)
|
|||
|
if [ -z "$command" ] ; then
|
|||
|
findfile unarj
|
|||
|
test ! -z "$fileresult" && changevars $fileresult" x" " arj +" 0 1 0
|
|||
|
else
|
|||
|
echo ERROR: Can\'t pipe to unarj. File partialy decompressed.
|
|||
|
fi
|
|||
|
exit_f=1
|
|||
|
;;
|
|||
|
arc | ARC)
|
|||
|
if [ -z "$command" ] ; then
|
|||
|
findfile arc
|
|||
|
test ! -z "$fileresult" && changevars $fileresult" x" " arc +" 0 1
|
|||
|
0
|
|||
|
else
|
|||
|
echo ERROR: Can\'t pipe to arc. File partialy decompressed.
|
|||
|
fi
|
|||
|
exit_f=1
|
|||
|
;;
|
|||
|
zoo | ZOO)
|
|||
|
if [ -z "$command" ] ; then
|
|||
|
findfile zoo
|
|||
|
test ! -z "$fileresult" && changevars $fileresult" x" " zoo +" 0 1 0
|
|||
|
else
|
|||
|
echo ERROR: Can\'t pipe to zoo. File partialy decompressed.
|
|||
|
fi
|
|||
|
exit_f=1
|
|||
|
;;
|
|||
|
lzh | lha | lz | LZH | LHZ | LZ)
|
|||
|
findfile lha
|
|||
|
test ! -z "$fileresult" && changevars " | "$fileresult" x -" " lha +" 0 1 1
|
|||
|
exit_f=1
|
|||
|
;;
|
|||
|
pgp)
|
|||
|
findfile pgp
|
|||
|
if [ ! -z "$fileresult" ] ; then
|
|||
|
changevars " | "$fileresult " pgp +" 0 0 1
|
|||
|
else
|
|||
|
exit_f=1
|
|||
|
fi
|
|||
|
;;
|
|||
|
[1-8nl] | man)
|
|||
|
test -z "$command" && changevars " | nroff -man | more" " man +" 0 1 1
|
|||
|
exit_f=1
|
|||
|
;;
|
|||
|
*)
|
|||
|
exit_f=1
|
|||
|
;;
|
|||
|
esac
|
|||
|
done
|
|||
|
test $create -eq 1 && command=$command" > "$old_file
|
|||
|
if [ -z "$message" ] ; then
|
|||
|
echo ERROR: Don\'t know how to handle [ $file_tmp ]
|
|||
|
else
|
|||
|
message=`echo $message | sed -e 's/ +$//'`
|
|||
|
echo "File [ `basename $file_tmp` ]"
|
|||
|
echo "Type [ $message ]"
|
|||
|
if [ $do_cat = 1 ] ; then
|
|||
|
command="cat "$file_tmp" "$command
|
|||
|
else
|
|||
|
command=$command" "$file_tmp
|
|||
|
fi
|
|||
|
eval $command && {
|
|||
|
if [ $removefile = 1 ] ; then
|
|||
|
if [ $promptbefore = 1 ] ; then
|
|||
|
makeask $file_tmp
|
|||
|
test $removeit -eq 1 && rm -f $file_tmp
|
|||
|
else
|
|||
|
rm -f $file_tmp
|
|||
|
fi
|
|||
|
fi
|
|||
|
} || echo ERROR: [ $file_tmp ] can\'t decompress ...
|
|||
|
fi
|
|||
|
else
|
|||
|
echo ERROR: [ $file_tmp ] Can\'t process it! Exists????
|
|||
|
fi
|
|||
|
done
|
|||
|
</PRE>
|
|||
|
|
|||
|
<P> <hr> <P>
|
|||
|
<!--================================================================-->
|
|||
|
</td></tr>
|
|||
|
</table>
|
|||
|
<a name="quick">
|
|||
|
<p></a>
|
|||
|
<table>
|
|||
|
<tr>
|
|||
|
<td><img src="../gx/blank.gif" width=50></td>
|
|||
|
<td>
|
|||
|
|
|||
|
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">Quick Tips from John</H3>
|
|||
|
Date: Tue, 08 Oct 1996 08:18:39 -0500 (CDT) <BR>
|
|||
|
From: John M. Fisk
|
|||
|
<A HREF="mailto:fiskjm@ctrvax.Vanderbilt.Edu">fiskjm@ctrvax.Vanderbilt.Edu </A><BR>
|
|||
|
<P>
|
|||
|
I recently ran across a "Quick Tip" that might be useful to anyone
|
|||
|
using the BASH shell. There's a rarely mentioned but very useful feature
|
|||
|
that's included with it: an online help function that describes all of
|
|||
|
its built-in functions. To use it you simply invoke it as:
|
|||
|
<PRE>
|
|||
|
% help <builtin>
|
|||
|
</PRE>
|
|||
|
and it displays a brief usage message. To get a listing of all of the
|
|||
|
topics that are available, simply type in:
|
|||
|
<PRE>
|
|||
|
% help
|
|||
|
</PRE>
|
|||
|
This displays a listing of all of BASH's builtin functions. So, for
|
|||
|
example, if you were interesting in using the "getopts" builtin in order
|
|||
|
to parse command line options for a shell script, you'd invoke the help
|
|||
|
function as:
|
|||
|
<PRE>
|
|||
|
% help getopts
|
|||
|
</PRE>
|
|||
|
which prints a helpful summary of the function and its invocation.
|
|||
|
<P>
|
|||
|
The other thing I recently ran across was the use of the "$()" construct
|
|||
|
in BASH shell programming. When I first started learning shell
|
|||
|
programming the construct which I'd seen used for command substitution was
|
|||
|
something like:
|
|||
|
<PRE>
|
|||
|
DATE=`date + "%A %B %C"`
|
|||
|
</PRE>
|
|||
|
which assigned the output of the date command to the variable DATE. I
|
|||
|
recently read that this has been deprecated and the accepted construct now
|
|||
|
for command substitution is the use of the dollar sign and parentheses.
|
|||
|
The above statement should now be written as:
|
|||
|
<PRE>
|
|||
|
DATE=$(date + "%A %B %C")
|
|||
|
</PRE>
|
|||
|
which has the same effect. This works under both BASH and the Korn shell
|
|||
|
(I'm not sure if this also works with C-shell derivatives). <BR>
|
|||
|
____________________________________________________________John M. Fisk
|
|||
|
|
|||
|
<P> <hr> <P>
|
|||
|
<!--================================================================-->
|
|||
|
</td></tr>
|
|||
|
</table>
|
|||
|
<a name="two">
|
|||
|
<p></a>
|
|||
|
<table>
|
|||
|
<tr>
|
|||
|
<td><img src="../gx/blank.gif" width=50></td>
|
|||
|
<td>
|
|||
|
|
|||
|
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">Two Tips for the Price of One</H3>
|
|||
|
<P>
|
|||
|
Date: Fri, 4 Oct 1996 18:28:05 -0500 (CDT) <BR>
|
|||
|
From: David Ishee <A HREF="mailto:ishee@erc.msstate.edu">
|
|||
|
ishee@erc.msstate.edu</A><BR>
|
|||
|
<P>
|
|||
|
Just looking at your $0.02 tips and I had some $0.01 tips to add. I liked
|
|||
|
the perl trick for removing Control-M characters so I made it an alias in
|
|||
|
my .cshrc file (for the tcsh shell):
|
|||
|
<PRE>
|
|||
|
alias tu "perl -pi.bak -e 's/\r//g;' \!^"
|
|||
|
</PRE>
|
|||
|
Now type "tu filelist" to run the above command. (tu stands for to Unix)
|
|||
|
<P>
|
|||
|
|
|||
|
Another $0.01 tip:
|
|||
|
<P>
|
|||
|
When I used the xterm title bar thingy and I was at a VT, the escape
|
|||
|
characters would just cause the Linux terminal to beep at me. I now have
|
|||
|
this in my .cshrc (for the tcsh shell):
|
|||
|
<PRE>
|
|||
|
if ($TERM == "xterm") then
|
|||
|
alias precmd 'echo -n "\033]2;"`whoami`":"`pwd`"\007"'
|
|||
|
endif
|
|||
|
</PRE>
|
|||
|
This puts my login_name:directory in my title bar, but not when I go to a
|
|||
|
Linux VT.
|
|||
|
<PRE>
|
|||
|
+--------------------------------------------------------------------+
|
|||
|
| David Ishee ishee@erc.msstate.edu |
|
|||
|
| Mechanical Engineering Senior |
|
|||
|
| Mississippi State University OS/2 and Linux user |
|
|||
|
+------------- http://www2.msstate.edu/~dmi1/index.html -------------+
|
|||
|
</PRE>
|
|||
|
|
|||
|
<P> <hr> <P>
|
|||
|
<!--================================================================-->
|
|||
|
</td></tr>
|
|||
|
</table>
|
|||
|
<a name="emacs">
|
|||
|
<p></a>
|
|||
|
<table>
|
|||
|
<tr>
|
|||
|
<td><img src="../gx/blank.gif" width=50></td>
|
|||
|
<td>
|
|||
|
|
|||
|
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">The
|
|||
|
Ultimate Emacs Control M Trick </H3>
|
|||
|
Date: Thu, 3 Oct 1996 10:19:24 -0700 <BR>
|
|||
|
From: Rick Bronson <A HREF="mailto:rick@efn.org">rick@efn.org </A><BR>
|
|||
|
<P>
|
|||
|
Hi,
|
|||
|
<P>
|
|||
|
Here is the ultimate Emacs Control M Trick:
|
|||
|
<P>
|
|||
|
Put the following line in your .emacs file:
|
|||
|
<PRE>
|
|||
|
(require 'dos-mode)
|
|||
|
</PRE>
|
|||
|
and have dos-mode.el, which for me is in ~/lisp/dos-mode.el, some where
|
|||
|
in your path by putting the following line in your .emacs file:
|
|||
|
<PRE>
|
|||
|
(setq load-path (append load-path (list "/home/rick/lisp")))
|
|||
|
</PRE>
|
|||
|
That's it! Now you can edit native DOS files without having to do
|
|||
|
any conversion at all. You won't see any ^M stuff in the DOS files,
|
|||
|
they are removed for you. You can cut and paste between DOS and UNIX
|
|||
|
buffers and the ^M stuff is handled automatically.
|
|||
|
<P>
|
|||
|
dos-mode.el is available in
|
|||
|
/ftp@archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/modes as
|
|||
|
dos-mode.el.Z
|
|||
|
<PRE>
|
|||
|
_
|
|||
|
| |
|
|||
|
/ /__
|
|||
|
.------------------------------------------------------------._______/ (___)
|
|||
|
| Rick Bronson rick@efn.org Tel 541-465-9008 _o_ | (___)
|
|||
|
| Invivo Research http://www.efn.org/~rick \|/ |_______ (___)
|
|||
|
| 745 Foothill Drive "Onde esta dinheiro?" `---' | \_(___)
|
|||
|
| Eugene, OR 97405-4651 -- Gal Costa Disk | Golf|
|
|||
|
`------------------------------------------------------------'
|
|||
|
</PRE>
|
|||
|
|
|||
|
<P> <hr> <P>
|
|||
|
<!--================================================================-->
|
|||
|
</td></tr>
|
|||
|
</table>
|
|||
|
<a name="vi">
|
|||
|
<p></a>
|
|||
|
<table>
|
|||
|
<tr>
|
|||
|
<td><img src="../gx/blank.gif" width=50></td>
|
|||
|
<td>
|
|||
|
|
|||
|
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">VI Trick</H3>
|
|||
|
Date: Sat, 26 Oct 1996 05:11:34 -0500 <BR>
|
|||
|
From: John R. Potter <A HREF="mailto:jrpotter@neosoft.com">
|
|||
|
jrpotter@neosoft.com</A><BR>
|
|||
|
<P>
|
|||
|
I thought you might be interested in my favorite vi trick, which is not a
|
|||
|
vi trick at all. I spend a lot of time in vi edit sessions, usually with
|
|||
|
two files open moving data between them using the named buffers. Often
|
|||
|
someone will come in with a 'brush fire' that needs immediate attention and
|
|||
|
I really don't want to quit my edit session and lose my buffers. So I put
|
|||
|
it to sleep with Control Z. You can start up another vi edit session,
|
|||
|
complete with named buffers and everything. They are two complete separate
|
|||
|
sessions with no ties between them. When the fire is under control you can
|
|||
|
bring back the original session with 'fg'. I know this is a very simple
|
|||
|
thing, but for a long time I didn't know you could do it so I would quit
|
|||
|
the original session.
|
|||
|
<P>
|
|||
|
- John Potter
|
|||
|
|
|||
|
<P> <hr> <P>
|
|||
|
<!--================================================================-->
|
|||
|
</td></tr>
|
|||
|
</table>
|
|||
|
<a name="xdm">
|
|||
|
<p></a>
|
|||
|
<table>
|
|||
|
<tr>
|
|||
|
<td><img src="../gx/blank.gif" width=50></td>
|
|||
|
<td>
|
|||
|
|
|||
|
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">XDM Replacement</H3>
|
|||
|
Date: Thu, 03 Oct 1996 23:26:00 -0400 <BR>
|
|||
|
From: Jim Nicholson <A
|
|||
|
HREF="mailto:pcks@cnj.digex.net">pcks@cnj.digex.net</A><BR>
|
|||
|
<P>
|
|||
|
I'm not sure how well known it is in the Linux community, but Pierre
|
|||
|
Ficheux (<A HREF="mailto:pierre@ai.alienor.fr">pierre@ai.alienor.fr</A>) has written a replacement for the
|
|||
|
XDM logon dialog that lets you set up icons for users - sort of like
|
|||
|
what you can do on an SGI machine. The file can be had via
|
|||
|
ftp://ftp.ibp.fr/pub/linux/tsx-11/sources/usr.bin.X11/xdm-photo-1.1.tar.gz;
|
|||
|
more info is available on Pierre's web site
|
|||
|
<A HREF="http://alienor.fr/~pierre/index_us.html">
|
|||
|
http://alienor.fr/~pierre/index_us.html</A><BR>
|
|||
|
<P>
|
|||
|
- Jim Nicholson
|
|||
|
|
|||
|
<P> <hr> <P>
|
|||
|
<!--================================================================-->
|
|||
|
<A HREF="./index.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
|
|||
|
CONTENTS ]"></A> <A HREF="../index.html"><IMG SRC="../gx/homenew.gif"
|
|||
|
ALT="[ FRONT PAGE ]"></A> <A HREF="lg_mail11.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
|
|||
|
<A HREF="lg_bytes11.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
|||
|
|
|||
|
<P> <hr> <P>
|
|||
|
<h5>This page maintained by the Editor of <I>Linux Gazette</I>,
|
|||
|
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR>
|
|||
|
Copyright © 1996 Specialized Systems Consultants, Inc. </H5>
|
|||
|
<P>
|
|||
|
</td></tr></table>
|
|||
|
</body>
|
|||
|
</html>
|